📅  最后修改于: 2023-12-03 15:35:53.448000             🧑  作者: Mango
Java Database Connectivity(JDBC)是Java语言中用于连接和操作关系数据库的API。它是一个标准化的API,使得Java开发人员可以使用相同的API连接和操作各种类型的关系数据库,而无需了解底层数据库的细节。
JDBC为Java应用程序提供了一种简单、一致、通用的方法来连接和操作关系数据库,使得Java开发人员可以使用Java语言的优势来处理任意类型的数据库。
JDBC API定义了一组Java类和接口,它们提供了连接、查询、更新和删除关系数据库的方法。JDBC API的核心是以下接口:
连接数据库的第一步是加载数据库驱动程序。JDBC加载程序通过使用一组驱动程序管理器类来加载数据库驱动程序。
Class.forName("com.mysql.jdbc.Driver");
接下来,需要使用DriverManager类建立到数据库的连接。
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
这里的URL是包含数据库的主机名、端口号和数据库名称的字符串,而用户名和密码是访问数据库所需的凭据。
一旦建立了连接,就可以使用Statement对象执行SQL查询语句。
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable");
查询结果存储在ResultSet对象中,可以对其进行迭代和处理。
while(resultSet.next()) {
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
// 处理查询结果
}
除了查询,JDBC还提供了更新和删除操作。使用Statement对象执行SQL更新和删除语句。
Statement statement = connection.createStatement();
int rowsAffected = statement.executeUpdate("UPDATE mytable SET age=30 WHERE name='John'");
这里的rowsAffected包含被更新的行数。
在执行SQL查询、更新和删除操作时,为避免SQL注入攻击,最好使用预编译的SQL语句。PreparedStatement接口提供了一种更好的方法来执行预编译的SQL语句。
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM mytable WHERE age > ?");
preparedStatement.setInt(1, 25);
ResultSet resultSet = preparedStatement.executeQuery();
这里的“?”表示使用PreparedStatement对象预编译的SQL语句中的参数。使用setInt()和其他参数设置方法将参数值传递给预编译的SQL语句。
最后,一定要关闭连接以释放数据库资源。
resultSet.close();
statement.close();
connection.close();
JDBC为Java应用程序提供了一种简单、一致、通用的方法来连接和操作关系数据库。无论是查询、更新还是删除,JDBC都提供了各种方法来执行这些操作。预编译的SQL语句和使用PreparedStatement对象可以提高性能并减少SQL注入攻击的风险。最后,记得关闭连接以释放数据库资源。