Java 链接mysql数据库操作
java链接mysql
首先加载mysql在java中的jdbc驱动
Class.forName("com.mysql.jdbc.Driver");
其次建立与mysql已有数据库建立连接
String url = "jdbc:mysql://localhost:3306/mydata?userUnicode=true&characterEncoding=utf-8&useSSL=false"
其中jdbc是调用jdbc驱动,mysql是指数据库类型此处为mysql数据库,localhost指链接地址,此处指本地mysql数据库,3306为mysql所使用的端口号,useUnicode=true&characterEncoding=utf-8是显示数据库数据时所使用的编码格式,useSSl=false制定ssl 链接为关闭,在较高版本中必须制定ssl是否连接,否则会报错
Strinf user = “root”; String psaawd = "123456"
user为mysql用户名,passwd为密码
Connection con = DriverManager.getConnection(url,user,passwd);
作为初始化的一部分,DriverManager 类会尝试加载在 "jdbc.drivers" 系统属性中引用的驱动程序类
getConnection(String url, String user, String password) 官网:www.fhadmin.org 方法试图建立到给定数据库 URL 的连接
自此就与数据库建立了链接
1 2 3 4 5 6 7 8 9 10 11 12 13 | public static Connection getConnection () throws SQLException, java.lang.ClassNotFoundException { //加载mysql的jdbc驱动 Class.forName( "com.mysql.jdbc.Driver" ); //取得连接的url和用户名和密码 String url = "jdbc:mysql://localhost:3306/mydate?useUnicode=true&characterEncoding=utf-8&useSSL=false" ; String user = "root" ; String passwd = "123456" ; //创建与数据库的实例连接官网:www.fhadmin.org Connection con = DriverManager.getConnection(url, user,passwd); return con; } |
验证:
建立一个sql静态语句执行对象,可以静态执行sql语句
Statement sql = con.createStatement()Statement 静态执行sql语句,一个Strmaen对象只能打开一个ResultSet对象,因此,如果Statement读取多个ResultSet对象,必须有多个Statement对象与之相对应,如果有Statement对象打开了当前ResultSet对象,则其他读取该ResultSet对象的Statement必去隐式关闭他。
创建新的表
sql.executeUpdate("create table person(id int(4) not null,name varchar(20),sex char(1),primary key(id))");
添加新成员
sql.executeUpdate("insert into person(1,"王二","M")");
查看表中的内容
String query = "select * from student";
ResultSet result = sql.executeQuery(query);
while(result.next()){
System.out.println("Id:" + resuli.getInt("id") + " name:" + result.getString("name") + " sex:"+ result.getString("sex"));
}
断开连接
sql.close();
con.close();
//完整代码 import java.sql.*; public class Mysql2{ public static Connection getConnection () throws SQLException, java.lang.ClassNotFoundException { //加载mysql的jdbc驱动 Class.forName("com.mysql.jdbc.Driver"); //取得连接的url和用户名和密码官网:www.fhadmin.org String url = "jdbc:mysql://localhost:3306/mydate?useUnicode=true&characterEncoding=utf-8&useSSL=false"; String user = "root"; String passwd = "123456"; //创建与数据库的实例连接 Connection con = DriverManager.getConnection(url, user,passwd); return con; } public static void main(String[] args) { try { Connection con = getConnection(); Statement sql = con.createStatement(); //如果同名数据库存在就删除官网:www.fhadmin.org //sql.executeUpdate("insert person values(, 'liying',)"); //执行一个sql语句,生成一为student的表 sql.executeUpdate("create table student (id int(20) not null auto_int not nullt, name varchar() not null default 'name', sex char(2) not null default , primary key (id) ); "); sql.executeUpdate("insert into student values(321,'liying','w')"); sql.executeUpdate("insert into student values(123,'wangjiawu','w')"); sql.executeUpdate("insert into student values(132,'Baili','w')"); //查询操作,用ResultSet类,返回结果 String query = "select * from student"; ResultSet result = sql.executeQuery(query); //显示查询内容 System.out.println("Student 表中的内容:"); System.out.println("---------------------------------"); System.out.println(" 序号" + " | " + "姓名" +" | "+ "性别"); System.out.println("--------------------------------"); //对查询结果进行处理 while (result.next()) { int id = result.getInt("id"); String name = result.getString("username"); String mathsorce = result.getString("sex"); System.out.println(" |" + id + " |" + name + " |" + mathsorce); } sql.close();//关闭数据库 con.close();//断开连接 }catch (java.lang.ClassNotFoundException e){ System.out.println("Error"); }catch (SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } } }