📅  最后修改于: 2023-12-03 15:16:39.041000             🧑  作者: Mango
JDBC(Java Database Connectivity)是Java语言操作数据库的通用API。在使用JDBC连接数据库时,需要编写大量重复的代码,为了简化这些重复性的工作,Java开发者提供了JDBC实用程序类来简化JDBC的使用。
JDBC实用程序类是一组通用的类,它们封装了JDBC中的重复性操作,简化了程序员的工作。这些类可以用于简化数据库操作,从而降低了程序员的开发难度。
DbUtils
类DbUtils
是JDBC实用程序类中最为常见的类,它提供了一组简化的JDBC操作方法。这些方法包括查询、更新、批量操作等,可以大大简化JDBC的使用。
DbUtils
类中主要方法有:
query
:执行查询语句并返回结果集update
:执行更新语句batch
:批量执行多条语句以下是一个使用DbUtils
类查询数据库的例子:
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
public class Example {
public static void main(String[] args) throws SQLException {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
QueryRunner qr = new QueryRunner();
List<User> userList = qr.query(conn, "SELECT * FROM user", new BeanListHandler<User>(User.class));
conn.close();
System.out.println(userList);
}
}
BasicDataSource
类BasicDataSource
类是JDBC实用程序类中的一个连接池实现。它提供了一组简单易用的操作方法,可以有效地管理连接池。
以下是一个使用BasicDataSource
类的例子:
import org.apache.commons.dbcp2.BasicDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Example {
public static void main(String[] args) throws SQLException {
BasicDataSource ds = new BasicDataSource();
ds.setUrl("jdbc:mysql://localhost:3306/test");
ds.setUsername("root");
ds.setPassword("password");
Connection conn = ds.getConnection();
PreparedStatement stmt = conn.prepareStatement("INSERT INTO user (name, age) VALUES (?, ?)");
stmt.setString(1, "Tom");
stmt.setInt(2, 18);
stmt.executeUpdate();
conn.close();
}
}
QueryRunner
类QueryRunner
类是DbUtils
类的底层实现。它提供了一组简单易用的操作方法,可以实现基本的数据库操作。
以下是一个使用QueryRunner
类的例子:
import org.apache.commons.dbutils.QueryRunner;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Example {
public static void main(String[] args) throws SQLException {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
QueryRunner qr = new QueryRunner();
int rowCount = qr.update(conn, "INSERT INTO user (name, age) VALUES (?, ?)", "Tom", 18);
conn.close();
System.out.println(rowCount);
}
}
JDBC实用程序类是一组非常实用而且常用的工具类,可以大大简化Java程序员使用JDBC的难度。其中,DbUtils
类和BasicDataSource
类是JDBC实用程序类中最为常见的类。QueryRunner
类是DbUtils
类的底层实现,但也可以直接使用。