数据库的使用是现代计算机应用中非常关键的要素之一。大多数应用程序使用数据库进行数据存储和查询,在应用程序中使用数据访问层和数据模型可以轻松地抽象出数据库基础结构的复杂性,并使程序员能够专注于业务逻辑。
JDBC(Java Database Connectivity)是Sun Microsystems定义的用于Java语言连接数据库的一组API。JDBC API是Java SE的一部分,可以独立于具体的实现提供标准化的数据库访问。
在本文中,我们将讨论如何使用JDBC API连接到关系型数据库,并实现基本的CRUD(Create, Read, Update, Delete)数据操作。
1. JDBC驱动程序
首先,在您的Java应用程序中使用JDBC API连接数据库,您需要为数据库选择JDBC驱动程序。
JDBC驱动程序是一个Java库,由数据库供应商提供,用于与数据库进行通信。不同的数据库供应商提供不同的JDBC驱动程序,因此您需要选择适用于您使用的数据库的JDBC驱动程序。
2. 创建数据库连接
对于使用JDBC API的Java应用程序,连接到数据库的第一步是创建一个数据库连接。您可以通过以下步骤创建一个数据库连接:
2.1 加载JDBC驱动程序
Class.forName(driverClassName);
JDBC驱动程序提供一个类,他的完全限定名通常是一个字符串。该字符串通常由供应商提供,也可以在JDBC驱动程序的文档中找到。使用Class.forName()加载驱动程序类。
2.2 创建数据库连接
Connection connection = DriverManager.getConnection(url, username, password);
使用DriverManager.getConnection()方法创建一个连接对象。您需要传递要连接的数据库的URL、用户名和密码作为参数。以下是Oracle数据库的示例URL:
"jdbc:oracle:thin:@hostname:port:database"
这是MySQL数据库的示例URL:
"jdbc:mysql://hostname:port/databaseName"
3. 执行SQL查询
一旦您创建了数据库连接,就可以执行SQL查询了。在JDBC API 中,您可以使用PreparedStatement类预先编译回执。
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
使用Connection.prepareStatement() 方法和SQL语句创建PreparedStatement。当您调用PreparedStatement.executeQuery()方法时,它将返回一个ResultSet 对象,包含从数据库检索的数据。
以下是将查询结果保存在List中的示例代码:
String sql = "select * from users";
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
List
while(rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
user.setEmail(rs.getString("email"));
userList.add(user);
}
4. 执行SQL语句
除了查询,JDBC API 还可以执行更新、插入和删除操作。使用PreparedStatement.executeUpdate() 方法执行update, insert和delete操作。
String sql = "update users set age = ? where id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 30);
ps.setInt(2, 1);
int affectedRows = ps.executeUpdate();
ps.close();
5. 结束数据库连接
当您完成对数据库的访问时,可以使用close()方法结束连接。
connection.close();
结束数据库连接后,您的应用程序将释放资源并关闭与数据库的连接。
本文中,我们讨论了如何使用JDBC API连接到关系型数据库,实现基本的CRUD数据操作。JDBC API是用于Java语言连接数据库的标准化API,使开发人员可以更轻松地实现Java应用程序中的数据访问层。