Java Database Connectivity(JDBC)是一种Java API,用于与关系型数据库进行交互。JDBC提供了一种标准的方式来访问各种数据库,并且对许多不同类型的数据库都有驱动程序可用。
一、准备工作
在使用JDBC连接数据库之前,需要完成以下准备工作:
1、 在计算机上安装数据库软件
2、 下载并安装与所使用数据库对应的JDBC驱动程序
3、 开发环境中添加对应的JDBC驱动程序
4、 导入JDBC相关的类库
二、连接数据库
连接数据库是JDBC中的第一步。
1、加载并注册驱动程序(以MySQL为例):
// 加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver");
2、创建连接对象:
// 定义MySQL连接字符串 String url = "jdbc:mysql://localhost:3306/test"; // 创建连接对象 Connection conn = DriverManager.getConnection(url, "root", "password");
3、关闭连接对象:
conn.close();
三、执行SQL语句
在连接数据库之后,就可以执行SQL语句了。
1、创建执行SQL语句的Statement对象:
// 创建Statement对象 Statement stmt = conn.createStatement();
2、执行SQL语句并返回结果集:
// 执行查询语句 ResultSet rs = stmt.executeQuery("SELECT * FROM user"); // 处理结果集 while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id:" + id + ", name:" + name + ", age:" + age); } // 关闭结果集 rs.close();
3、关闭Statement对象:
stmt.close();
四、使用PreparedStatement执行SQL语句
PreparedStatement是Statement的子类,可以防止SQL注入攻击。
1、创建PreparedStatement对象:
// 创建PreparedStatement对象 PreparedStatement pstmt = conn.prepareStatement("INSERT INTO user(name, age) VALUES(?, ?)");
2、设置占位符的值:
// 设置占位符的值 pstmt.setString(1, "Tom"); pstmt.setInt(2, 18);
3、执行SQL语句:
// 执行SQL语句 int rows = pstmt.executeUpdate(); System.out.println(rows + " rows affected!"); // 关闭PreparedStatement对象 pstmt.close();
五、事务处理
JDBC也支持事务处理,可以通过以下方式来实现:
1、开启事务:
// 关闭自动提交 conn.setAutoCommit(false);
2、执行一系列操作:
// 创建Statement对象 Statement stmt = conn.createStatement(); // 执行SQL语句 stmt.executeUpdate("UPDATE user SET age = age + 1 WHERE age < 18"); stmt.executeUpdate("INSERT INTO user(name, age) VALUES('Mike', 17)"); // 提交事务 conn.commit(); // 关闭Statement对象 stmt.close();
3、回滚事务:
// 回滚事务 conn.rollback();
六、异常处理
JDBC连接数据库时可能会出现各种异常情况,可以通过try-catch语句来进行异常处理。
try { // JDBC操作 } catch(SQLException e) { e.printStackTrace(); }
七、总结
本文详细介绍了JDBC连接数据库的方法以及一些常见的操作。在实际应用中,JDBC是我们编写Java程序连接数据库的重要工具,熟练掌握JDBC的使用方法对于Java程序员而言非常必要。