速发365网址是多少-苹果约彩365app下载-be365

MySQL Java 连接与使用

MySQL Java 连接与使用

MySQL Java 连接与使用

MySQL 是最流行的开源关系型数据库之一,而 Java 是企业级应用开发中最常用的编程语言。将 Java 与 MySQL 结合使用,可以构建强大的数据驱动型应用程序。

本文将详细介绍如何在 Java 程序中连接和使用 MySQL 数据库,包括:

本文介绍了 Java 连接和使用 MySQL 数据库的基本步骤,包括:

加载 JDBC 驱动

建立数据库连接

执行 SQL 查询和更新

使用 PreparedStatement 防止 SQL 注入

事务管理

资源关闭

最佳实践

准备工作

下载 MySQL JDBC 驱动

Java 通过 JDBC (Java Database Connectivity) 技术与数据库交互。要连接 MySQL,你需要下载 MySQL Connector/J 驱动:

访问 MySQL Connector/J 下载页面

选择与你的 Java 版本兼容的驱动版本

下载 JAR 文件(如 mysql-connector-java-8.0.xx.jar)

将驱动添加到项目

根据你使用的开发工具或构建工具(如 Eclipse、IntelliJ IDEA、Maven 或 Gradle),将下载的 JAR 文件添加到项目的类路径中。

建立数据库连接

加载驱动程序

在 Java 代码中,首先需要加载 MySQL JDBC 驱动:

实例

try {

Class.forName("com.mysql.cj.jdbc.Driver");

} catch (ClassNotFoundException e) {

System.out.println("MySQL JDBC 驱动未找到");

e.printStackTrace();

}

创建连接

使用 DriverManager.getConnection()方法建立与数据库的连接:

实例

String url = "jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC";

String username = "你的用户名";

String password = "你的密码";

try {

Connection connection = DriverManager.getConnection(url, username, password);

System.out.println("数据库连接成功!");

} catch (SQLException e) {

System.out.println("数据库连接失败");

e.printStackTrace();

}

3.2.1 连接参数说明

jdbc:mysql://localhost:3306/:MySQL 服务器的默认地址和端口

useSSL=false:禁用 SSL 连接(开发环境)

serverTimezone=UTC:设置服务器时区,避免时区问题

执行 SQL 操作

创建 Statement 对象

Statement 对象用于执行静态 SQL 语句:

实例

Statement statement = connection.createStatement();

执行查询使用 executeQuery() 方法执行 SELECT 语句:

实例

String sql = "SELECT * FROM 表名";

ResultSet resultSet = statement.executeQuery(sql);

while (resultSet.next()) {

int id = resultSet.getInt("id");

String name = resultSet.getString("name");

System.out.println("ID: " + id + ", Name: " + name);

}

执行更新

使用 executeUpdate() 方法执行 INSERT、UPDATE 或 DELETE 语句:

实例

String insertSQL = "INSERT INTO 表名 (列1, 列2) VALUES ('值1', '值2')";

int rowsAffected = statement.executeUpdate(insertSQL);

System.out.println("影响的行数: " + rowsAffected);

使用 PreparedStatement

PreparedStatement 可以防止 SQL 注入,提高性能:

实例

String sql = "INSERT INTO users (name, email) VALUES (?, ?)";

PreparedStatement preparedStatement = connection.prepareStatement(sql);

preparedStatement.setString(1, "张三");

preparedStatement.setString(2, "zhangsan@example.com");

int rowsInserted = preparedStatement.executeUpdate();

System.out.println("插入的行数: " + rowsInserted);

事务管理

基本概念

事务是一组要么全部成功要么全部失败的 SQL 操作。

事务操作示例

实例

try {

// 关闭自动提交

connection.setAutoCommit(false);

// 执行多个 SQL 操作

statement.executeUpdate("UPDATE accounts SET balance = balance - 100 WHERE id = 1");

statement.executeUpdate("UPDATE accounts SET balance = balance + 100 WHERE id = 2");

// 提交事务

connection.commit();

System.out.println("事务执行成功");

} catch (SQLException e) {

// 发生错误时回滚

connection.rollback();

System.out.println("事务执行失败,已回滚");

e.printStackTrace();

} finally {

// 恢复自动提交

connection.setAutoCommit(true);

}

关闭资源

为什么需要关闭资源

数据库连接是有限的资源,使用后必须关闭以避免资源泄漏。

如何正确关闭资源

实例

try {

if (resultSet != null) resultSet.close();

if (statement != null) statement.close();

if (connection != null) connection.close();

} catch (SQLException e) {

e.printStackTrace();

}

6.3 使用 try-with-resources

Java 7+ 可以使用 try-with-resources 自动关闭资源:

实例

try (Connection conn = DriverManager.getConnection(url, username, password);

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {

while (rs.next()) {

// 处理结果

}

} catch (SQLException e) {

e.printStackTrace();

}

最佳实践

使用连接池

生产环境中应使用连接池(如 HikariCP、c3p0)管理数据库连接:

实例

// HikariCP 示例

HikariConfig config = new HikariConfig();

config.setJdbcUrl("jdbc:mysql://localhost:3306/你的数据库");

config.setUsername("用户名");

config.setPassword("密码");

HikariDataSource dataSource = new HikariDataSource(config);

Connection connection = dataSource.getConnection();

处理异常

正确处理 SQL 异常,提供有意义的错误信息:

实例

try {

// 数据库操作

} catch (SQLException e) {

System.err.println("SQL 错误: " + e.getMessage());

System.err.println("SQL 状态: " + e.getSQLState());

System.err.println("错误代码: " + e.getErrorCode());

}

7.3 使用 DAO 模式

将数据访问逻辑封装在 Data Access Object (DAO) 中,提高代码的可维护性:

实例

public class UserDao {

private Connection connection;

public UserDao(Connection connection) {

this.connection = connection;

}

public User getUserById(int id) throws SQLException {

String sql = "SELECT * FROM users WHERE id = ?";

try (PreparedStatement stmt = connection.prepareStatement(sql)) {

stmt.setInt(1, id);

ResultSet rs = stmt.executeQuery();

if (rs.next()) {

return new User(rs.getInt("id"), rs.getString("name"));

}

}

return null;

}

}

通过掌握这些基础知识,你已经可以开始在 Java 应用程序中使用 MySQL 数据库了。随着经验的积累,你可以进一步学习更高级的主题,如连接池、ORM 框架(如 Hibernate、MyBatis)等。

← 上一篇: 什么是ip通话(ip电话什么意思)
下一篇: 如何彻底卸载QQ应用的实用指南 →

相关推荐

大學讀8年挨批逃兵 林宥嘉昨休學入伍

大學讀8年挨批逃兵 林宥嘉昨休學入伍

2025-07-11 15:59:16 阅读: 1619
C语言全局变量:深入理解与高效使用

C语言全局变量:深入理解与高效使用

2025-08-31 05:41:12 阅读: 980
EOS M微型可换镜相机 - EOS M

EOS M微型可换镜相机 - EOS M

2025-07-26 04:01:25 阅读: 3339
福州图片

福州图片

2025-08-26 18:01:27 阅读: 9462