JDBC入门

简介

JDBC(Java DataBase Connectivity, Java数据库连接)使Java可以操作各种关系数据库。

JDBC的API在java.sql包中,主要的类和接口:

  • DriverManager类:加载各种数据库驱动程序。(可以同时加载多个数据库的驱动程序)
  • Connection接口:建立数据库连接。
  • Statement, PreparedStatement, CallableStatement接口:用于处理增删改查。
  • ResultSet:处理操作结果。

数据库的选择

因为JDBC操作数据库使用的是SQL语句,所以还是推荐使用关系型数据库,这里以MySQL为例:

至于JDBC操作MongoDB,可以关注此项目:https://github.com/erh/mongo-jdbc

JDBC操作数据库的步骤

传统的使用JDBC操作数据库的步骤是:

  1. 加载需要的JDBC驱动程序
  2. 建立与数据库的连接
  3. 通过SQL语句,执行增删改查
  4. 处理结果集
  5. 断开和数据库的连接

下面逐一介绍:

1.加载需要的JDBC驱动程序

Class.forName("驱动程序包名");    // 如果是MySQL,包名一般为com.mysql.cj.jdbc.Driver

2.建立与数据库的连接

Connection conn = DriverManager.getConnection(url)
// jdbc:mysql://127.0.0.1:3306/servlet_db?serverTimezone=UTC

3.通过SQL语句,执行增删改查

查询需要先创建一个Statement对象,然后使用该对象执行SQL语句。

Statement对象有三种:

  1. Statement
  2. PreparedStatement
  3. CallableStatement

1 - 使用Statement:

Statement stmt = conn.createStatement();
ResultSet results = stmt.executeQuery("SQL查询语句");
stmt.executeUpdate("SQL增删改语句");

2 - 使用PreparedStatement:

预编译SQL语句,适合重复执行SQL语句的场合。

PreparedStatement prepStmt = conn.prepareStatement("SQL语句");  // 对SQL语句预编译
ResultSet results = prepStmt.executeQuery();             // 执行查询使用executeQuery()
prepStmt.executeUpdate();                         // 执行更新使用executeUpdate()

这里可以使用【带参数的SQL语句】,其中参数用?表示。例如:

PreparedStatement ptmt = conn.prepareStatement("UPDATE servlet_db.users SET userID = ? WHERE username = ?");
ptmt.setInt(1, 16427);        // 设置第一个参数
ptmt.setString(2, "ValdisW");    // 设置第二个参数
ptmt.executeUpdate();         // 执行更新

3 - 使用CallableStatement:

CallableStatement callStmt = conn.prepareCall();
callStmt.setInt(1, 123);
callStmt.setInt(2, 456);
callStmt.execute();

4.处理结果集

这里以打印为例:

while(results.next()){
    System.out.println(results.getInt(1));
    System.out.println(results.getString(2));
}

5.断开和数据库的连接

results.close();    // 关闭ResultSet对象
stmt.close();       // 关闭Statement对象
conn.close();       // 关闭Connection对象

 

posted @ 2019-04-07 14:54  鳄鱼伏特加  阅读(251)  评论(0编辑  收藏  举报