JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的API,它提供了一种标准的方式来访问各种类型的数据库。MySQL是一种常见的关系型数据库,本文将介绍如何使用JDBC连接MySQL数据库。
一、安装MySQL驱动
在使用JDBC连接MySQL之前,需要先安装MySQL的JDBC驱动程序。可以从MySQL官网下载最新的驱动程序,或者使用Maven等构建工具引入依赖。
二、建立连接
JDBC连接MySQL需要使用java.sql包中的接口和类。首先需要使用Class.forName()方法加载MySQL驱动程序:
```
Class.forName("com.mysql.jdbc.Driver");
```
然后使用DriverManager.getConnection()方法建立与MySQL数据库的连接:
```
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
```
其中,第一个参数是连接字符串,指定了要连接的MySQL服务器地址、端口号和数据库名称;第二个和第三个参数是登录MySQL服务器的用户名和密码。
三、执行SQL语句
建立连接后,就可以使用Connection对象的createStatement()方法创建Statement对象,用于执行SQL语句:
```
Statement stmt = conn.createStatement();
```
然后可以使用Statement对象的execute()方法执行SQL语句:
```
String sql = "SELECT * FROM users";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id + "\t" + name + "\t" + age);
}
```
其中,executeQuery()方法用于执行查询语句,返回ResultSet对象,通过ResultSet对象的getXXX()方法获取查询结果。
四、使用PreparedStatement
使用Statement对象执行SQL语句时,需要手动拼接SQL字符串,容易出现SQL注入等安全问题。为了避免这些问题,可以使用PreparedStatement对象代替Statement对象,它可以使用占位符(?)代替SQL语句中的变量,更加安全可靠。
```
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "John");
pstmt.setInt(2, 25);
pstmt.executeUpdate();
```
其中,setString()和setInt()方法用于设置占位符的值,executeUpdate()方法用于执行更新语句。
五、使用事务
在JDBC中,可以使用Connection对象的setAutoCommit()方法设置是否自动提交事务。如果不自动提交,在执行多个SQL语句时,只有在所有SQL语句都执行成功后才提交事务,否则回滚事务。
```
try {
conn.setAutoCommit(false);
stmt.executeUpdate("UPDATE account SET money = money - 100 WHERE id = 1");
stmt.executeUpdate("UPDATE account SET money = money + 100 WHERE id = 2");
conn.commit();
} catch (SQLException e) {
conn.rollback();
} finally {
conn.setAutoCommit(true);
}
```
其中,setAutoCommit(false)表示不自动提交事务,conn.commit()表示提交事务,conn.rollback()表示回滚事务。
六、关闭连接
在使用JDBC连接MySQL完成操作后,需要关闭连接释放资源,避免占用过多的系统资源。
```
rs.close();
stmt.close();
conn.close();
```
其中,close()方法用于释放相应的资源。
综上所述,本文介绍了如何使用JDBC连接MySQL数据库,从安装MySQL驱动、建立连接、执行SQL语句、使用PreparedStatement、使用事务和关闭连接等多个角度分析了JDBC连接MySQL的过程。