[MySql]JDBC编程
发布人:shili8
发布时间:2025-01-20 01:57
阅读次数:0
**MySQL JDBC 编程**
在 Java 应用中与 MySQL 数据库进行交互,需要使用 JDBC(Java Database Connectivity)API。JDBC 是一个标准的 API,使得 Java 程序能够访问各种数据库管理系统。
### 一、环境准备* 下载并安装 MySQL Server* 下载并安装 MySQL Connector/J(MySQL JDBC 驱动)
* 在 Eclipse 或 IDEA 中创建一个新项目,选择 Maven 构建方式### 二、配置 Maven依赖在 `pom.xml` 文件中添加以下依赖:
xml<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> </dependencies>
### 三、连接 MySQL 数据库首先,我们需要创建一个 `Connection` 对象来与 MySQL 数据库进行交互。下面是示例代码:
javaimport java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MySQLUtil { private static final String DB_URL = "jdbc:mysql://localhost:3306/mydb"; private static final String USER = "root"; private static final String PASS = "password"; public static Connection getConnection() throws SQLException { return DriverManager.getConnection(DB_URL, USER, PASS); } }
### 四、执行 SQL语句使用 `Statement` 对象可以执行 SQL语句。下面是示例代码:
javaimport java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class MySQLUtil { // ... public static void executeSQL(Connection conn, String sql) throws SQLException { try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.executeUpdate(); } } public static void querySQL(Connection conn, String sql) throws SQLException { try (PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery()) { while (rs.next()) { System.out.println(rs.getString(1)); } } } }
### 五、关闭资源在使用完 `Connection` 对象后,需要关闭它以释放系统资源。下面是示例代码:
javaimport java.sql.Connection; import java.sql.DriverManager; public class MySQLUtil { // ... public static void closeResource(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { System.out.println("Error closing connection: " + e.getMessage()); } } } }
### 六、使用事务在 MySQL 中,可以使用事务来确保数据库操作的原子性。下面是示例代码:
javaimport java.sql.Connection; import java.sql.DriverManager; public class MySQLUtil { // ... public static void executeSQLWithTransaction(Connection conn, String sql) throws SQLException { try (PreparedStatement pstmt = conn.prepareStatement(sql)) { conn.setAutoCommit(false); pstmt.executeUpdate(); conn.commit(); conn.setAutoCommit(true); } } public static void querySQLWithTransaction(Connection conn, String sql) throws SQLException { try (PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery()) { while (rs.next()) { System.out.println(rs.getString(1)); } } finally { conn.setAutoCommit(true); } } }
### 七、使用 Prepared Statement在 MySQL 中,可以使用 Prepared Statement 来避免 SQL 注入攻击。下面是示例代码:
javaimport java.sql.Connection; import java.sql.DriverManager; public class MySQLUtil { // ... public static void executeSQLWithPreparedStatement(Connection conn, String sql) throws SQLException { try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, "John"); pstmt.executeUpdate(); } } public static void querySQLWithPreparedStatement(Connection conn, String sql) throws SQLException { try (PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery()) { while (rs.next()) { System.out.println(rs.getString(1)); } } } }
### 八、使用 Callable Statement在 MySQL 中,可以使用 Callable Statement 来执行存储过程。下面是示例代码:
javaimport java.sql.Connection; import java.sql.DriverManager; public class MySQLUtil { // ... public static void executeCallableStatement(Connection conn, String procedure) throws SQLException { try (CallableStatement cstmt = conn.prepareCall(procedure)) { cstmt.setString(1, "John"); cstmt.executeUpdate(); } } public static void queryCallableStatement(Connection conn, String procedure) throws SQLException { try (CallableStatement cstmt = conn.prepareCall(procedure); ResultSet rs = cstmt.executeQuery()) { while (rs.next()) { System.out.println(rs.getString(1)); } } } }
### 九、总结在本文中,我们介绍了 MySQL JDBC 编程的基本概念和实践。我们学习了如何连接 MySQL 数据库,执行 SQL语句,关闭资源,以及使用事务和 Prepared Statement 等技术来避免 SQL 注入攻击。在实际应用中,可以根据具体需求灵活地选择这些技术来确保数据库操作的安全性和高效性。
### 十、参考* [MySQL JDBC 驱动]( />* [JDBC API 文档]( />* [MySQL JDBC 编程教程](