首页 > 代码库 > 利用JDBC连接到数据库

利用JDBC连接到数据库

利用JDBC连接到数据库一般需要几个步骤:

1.装载驱动程序。

2.建立连接。

3.发送和执行SQL语句。

4.释放资源

 

首先建立一个数据库:

脚本如下:

 1 create database csdn; 2 use csdn; 3 -- 创建用户表 4 CREATE TABLE USERS  5 ( 6   ID INT(7) NOT NULL AUTO_INCREMENT,  7   NAME VARCHAR(50) ,  8   PWD VARCHAR(50),  9   PHONE VARCHAR(50) ,10   PRIMARY KEY (id),11   -- 登录用户名唯一约束12   constraint name_unique unique(name)13 );14 15 16 17 -- 向数据库插入模拟数据18 insert into Users (id, name, pwd, phone) values ( 1,Tom, 123, 110);19 insert into Users (id, name, pwd, phone) values (2,Jerry, abc, 119);20 insert into Users (id, name, pwd, phone) values ( 3,Andy, 456, 112);21 22 select * from users;

 

java连接代码如下:

新建一个项目并导入需要的jar包,完整代码如下:

 

 

 

 

  1 package com.daliu.jdbc;  2   3 import java.sql.Connection;  4 import java.sql.DriverManager;  5 import java.sql.ResultSet;  6 import java.sql.SQLException;  7 import java.sql.Statement;  8   9 /** 10  * 测试使用JDBC连接mysql数据库 11  *  12  * @author Administrator 13  */ 14 public class DBUtil { 15  16     public static void main(String[] args) { 17  18         Connection conn = null; 19         Statement stmt = null; 20         ResultSet rs = null; 21  22         /* 23          * 1.装载驱动程序。 当出现了: java.lang.ClassNotFoundException: 24          * oracle.jdbc.driver.OracleDriver 25          *  26          * 这个异常时,说明数据库的驱动jar包没有 导入到项目中。 若导入了jar包还报这个错误,大部分原因是 书写的驱动有错误 27          */ 28  29         try { 30             Class.forName("com.mysql.jdbc.Driver"); 31  32             /* 33              * 2.建立连接。 34              *  35              * 通过调用DriverManager的getConnection方法,获取Connection类的对象,建立连接。 36              */ 37             String URL = "jdbc:mysql://localhost:3306/csdn"; 38  39             conn = DriverManager.getConnection(URL, "root", "123456"); 40  41             // 测试一下是否连接成功 42             System.out.println(conn); 43  44             /* 45              * 3.通过Connection的createStatement()方法获取数据库操作对象Statement。 46              * 通过调用Statement对象的executeQuery方法来执行SQL语句。 47              */ 48             stmt = conn.createStatement(); 49             rs = stmt.executeQuery("SELECT * FROM csdn.users"); 50  51             /* 52              * 4. 53              * Statement的executeQuery方法的返回值为ResultSet对象。ResultSet表示数据库查询操作的结果集。 54              * 它具有指向其当前数据行的光标。最初,光标被置于第一行之前,调用其next 方法将光标移动到下一行,该方法在 ResultSet 55              * 对象没有下一行时返回 false,因此可以在 while 循环中使用它来迭代结果集。 56              */ 57             while (rs.next()) { 58                 System.out.println(rs.getInt("ID") + "," 59                         + rs.getString("NAME") + "," 60                         + rs.getString("PWD") + "," 61                         + rs.getString("PHONE")); 62             } 63  64             /* 65              * ResultSet提供了getXXX(String column)方法,例如:getInt(String 66              * column)等,获取当前ResultSet 对象的当前行中指定列名的值,其中参数column表示数据库表中的列名字。 67              */ 68         } catch (ClassNotFoundException e) { 69             e.printStackTrace(); 70             System.out.println("驱动类无法找到!"); 71             throw new RuntimeException(e); 72  73         } catch (SQLException e) { 74             e.printStackTrace(); 75             System.out.println("数据库访问异常!"); 76             throw new RuntimeException(e); 77         } finally { 78  79             /* 80              *5. 在finally块中,依次关闭ResultSet对象、Statement对象以及Connection对象。 81              */ 82             try { 83                 if (rs != null) { 84                     rs.close(); 85                 } 86                 if (stmt != null) { 87                     stmt.close(); 88                 } 89                 if (conn != null) { 90                     conn.close(); 91                 } 92             } catch (SQLException e) { 93                 System.out.println("关闭连接时发生异常"); 94             } 95  96         } 97  98     } 99 100 }

 

效果如下:

利用JDBC连接到数据库