java链接并操作数据库
-
链接准备
- MySQL数据库驱动(连接器)。mysql-connector-java-x.x.xx.jar会在MySQL安装时提供,若Mysql是默认安装路径,则连接器在:C:\Program Files (x86)\MySQL\Connector.J 5.1文件夹里,然后在项目中建立一个lib文件夹,拷贝连接器放进去:
2.将数据库驱动导入至项目的工作空间中,使得其内部包含的包和类都加入到编译环境中。(导入方式,选中上面一步的连接器,右键Buid path)
下面建立一个链接操作类来描述链接和操作方法:
- 建立一个类Test
1 public class Test { 2 3 public static void main(String[] args) { 4 5 } 6 }
- 第一步:在代码中初始化数据库驱动:Class.forName("com.mysql.jdbc.Driver").newInstance();,并添加异常处理块。
1 //第一步,在代码中初始化数据库驱动: 2 Class.forName("com.mysql.jdbc.Driver").newInstance();//初始化数据库驱动
- 第二步:使用DriverManager链接数据库:
1 //第二步,使用DriverManager链接数据库: 2 Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydbone", "root", "199751hwl");
- 第三步:获得一个会话:
1 //3.获得一个会话: 2 statement = con.createStatement();
- 第四步:statement.execute执行SQL语句并返回结果:
- 查操作
1 if (statement.execute("SELECT * from person")) {//查 2 4 rs = statement.getResultSet(); 5 while( rs.next() ) { // 依次获得查询结果,每次执行nest,换一行 6 String name = rs.getString("persName");//获取字段 7 String sex = rs.getString("persSex"); 8 System.out.println(name+"\t"+sex); 9 } 11 } 12 else { 13 System.out.println("没有数据!"); 14 } 15
-
- 增操作
1 if (statement.execute("INSERT into person VALUE(7,'小发发','男','学习')")) { 2 System.out.println("异常!");//增操作这里没有返回 3 } 4 else { 5 System.out.println("增加成功!"); 6 }
- 第五步,关闭结果获取,关闭会话和链接
1 finally { 2 try { 3 //第五步,关闭结果获取,关闭会话和链接 4 statement.close(); 5 con.close(); 6 rs.close(); 7 } catch (SQLException e1) { 8 e1.printStackTrace(); 9 } 10 }
- 一个完整的小栗子:
1 import java.sql.*; 2 3 public class TestOne { 4 5 public static void main(String[] args) { 6 7 ResultSet rs = null; 8 Statement statement = null; 9 Connection con = null; 10 11 try { 12 13 //第一步,在代码中初始化数据库驱动: 14 Class.forName("com.mysql.jdbc.Driver").newInstance();//初始化数据库驱动 15 //第二步,使用DriverManager链接数据库:指定链接数据库的信息 16 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydbone?useUnicode=true&characterEncoding=UTF-8","root","199751hwl"); 17 //第三步,获得一个会话: 18 statement = con.createStatement(); 19 //第四步,执行SQL并查除结果集合 20 if (statement.execute("SELECT * from person")) {//查 21 rs = statement.getResultSet(); 22 while( rs.next() ) { // 依次获得查询结果,每次执行nest,换一行 23 String name = rs.getString("persName");//获取字段 24 String sex = rs.getString("persSex"); 25 System.out.println(name+"\t"+sex); 26 } 27 } 28 else { 29 System.out.println("增加成功!"); 30 } 31 32 } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) { 33 e.printStackTrace(); 34 }finally { 35 try { 36 //第五步,关闭结果获取,关闭会话和链接 37 statement.close(); 38 con.close(); 39 rs.close(); 40 } catch (SQLException e1) { 41 e1.printStackTrace(); 42 } 43 } 44 } 45 }