JDBC(Java Database Connectivity)是Java语言中用于数据库连接的一种技术。它提供了一组API,允许Java应用程序与支持SQL的数据库进行交互。JDBC API由java.sql包和javax.sql包中的类和接口组成。
一、JDBC的使用方式:
1. 加载JDBC驱动:
- 使用'Class.forName()'动态加载驱动类。
2. 建立连接:
- 使用'DriverManager.getConnection()'方法获取数据库连接。
3. 创建Statement或PreparedStatement对象:
- 通过连接对象创建用于执行SQL语句的对象。
4. 执行SQL语句:
- 使用'executeQuery()'方法执行查询操作。
- 使用'executeUpdate()'方法执行更新(增删改)操作。
5. 处理结果集:
- 对于查询操作,处理'ResultSet'对象,获取查询结果。
6. 关闭连接:
- 释放资源,关闭'ResultSet'、'Statement'和'Connection'对象。
二、特点:
- 平台无关性:JDBC是Java的一部分,继承了Java的平台无关性。
- 标准API:提供了一套标准的数据库操作接口。
- 数据库可移植性:通过不同的数据库驱动,可以实现与多种数据库的连接。
三、与其他技术的比较:
- 与ODBC比较:JDBC是专为Java设计的,而ODBC是为C语言设计的。JDBC更加适合Java应用程序。
- 与JPA/Hibernate比较:JPA和Hibernate提供了更高级的数据持久化抽象层,而JDBC更接近底层,提供了更多的灵活性。
四、高级应用:
- 连接池:通过复用连接,提高数据库操作的性能。
- 分布式事务:JDBC支持分布式事务处理。
五、示例代码:
以下是一个简单的JDBC操作示例,用于查询数据库中的数据:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcExample {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 加载JDBC驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db", "username", "password");
// 创建Statement对象
stmt = conn.createStatement();
// 执行SQL查询
rs = stmt.executeQuery("SELECT * FROM example_table");
// 处理查询结果
while (rs.next()) {
System.out.println(rs.getString("column1") + ", " + rs.getString("column2"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
在这个示例中,我们首先加载了MySQL的JDBC驱动,然后建立了与名为'test_db'的数据库的连接。之后,我们创建了一个'Statement'对象并使用它来执行一个SQL查询。最后,我们处理了查询结果,并在完成操作后关闭了所有资源。这只是一个非常基础的示例,实际应用中可能会涉及更多高级功能和最佳实践。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)