ToB企服应用市场:ToB评测及商务社交产业平台

标题: MySQL 篇 - Java 毗连 MySQL 数据库并实现数据交互 [打印本页]

作者: 农民    时间: 2024-10-25 01:36
标题: MySQL 篇 - Java 毗连 MySQL 数据库并实现数据交互


在当代应用中,数据库是不可或缺的一部分。Java 作为一种广泛使用的编程语言,提供了丰富的 API 来与各种数据库举行交互。本文将详细先容怎样在 Java 中毗连 MySQL 数据库,并实现基本的数据交互功能。
一、情况预备

1.1 安装 MySQL

首先,确保你已经安装了 MySQL 数据库。可以通过 MySQL 官网 下载并安装适合你操纵系统的版本。
1.2 创建数据库和表

在安装完成后,登录 MySQL 命令行工具,创建一个名为 test_db 的数据库,并在其中创建一个名为 users 的表:
  1. CREATE DATABASE test_db;
  2. USE test_db;
  3. CREATE TABLE users (
  4.     id INT AUTO_INCREMENT PRIMARY KEY,
  5.     username VARCHAR(50) NOT NULL,
  6.     password VARCHAR(50) NOT NULL
  7. );
复制代码
1.3 添加 MySQL Connector/J 依赖

在 Java 项目中,你需要添加 MySQL Connector/J 作为依赖。如果你使用 Maven,可以在 pom.xml 中添加如下依赖:
  1. <dependency>
  2.     <groupId>mysql</groupId>
  3.     <artifactId>mysql-connector-java</artifactId>
  4.     <version>8.0.32</version> <!-- 请根据最新版本更新 -->
  5. </dependency>
复制代码
二、Java 代码实现

2.1 创建数据库毗连

接下来,在 Java 代码中实现与 MySQL 数据库的毗连。以下是一个简单的毗连示例:
  1. package com.example.demo;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.SQLException;
  5. public class MySQLConnection {
  6.     private static final String URL = "jdbc:mysql://localhost:3306/test_db"; // 数据库地址
  7.     private static final String USER = "root"; // 数据库用户名
  8.     private static final String PASSWORD = "your_password"; // 数据库密码
  9.     public static Connection getConnection() {
  10.         Connection connection = null;
  11.         try {
  12.             // 加载 JDBC 驱动
  13.             Class.forName("com.mysql.cj.jdbc.Driver");
  14.             // 获取数据库连接
  15.             connection = DriverManager.getConnection(URL, USER, PASSWORD);
  16.             System.out.println("数据库连接成功!");
  17.         } catch (ClassNotFoundException e) {
  18.             System.out.println("找不到 JDBC 驱动!" + e.getMessage());
  19.         } catch (SQLException e) {
  20.             System.out.println("数据库连接失败!" + e.getMessage());
  21.         }
  22.         return connection;
  23.     }
  24. }
复制代码
2.2 插入数据

接下来,我们编写一个方法来插入用户数据到 users 表中:
  1. import java.sql.Connection;
  2. import java.sql.PreparedStatement;
  3. import java.sql.SQLException;
  4. public class UserDAO {
  5.     public void addUser(String username, String password) {
  6.         String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
  7.         
  8.         try (Connection connection = MySQLConnection.getConnection();
  9.              PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
  10.             preparedStatement.setString(1, username);
  11.             preparedStatement.setString(2, password);
  12.             int rowsAffected = preparedStatement.executeUpdate();
  13.             System.out.println("成功插入 " + rowsAffected + " 行数据。");
  14.         } catch (SQLException e) {
  15.             System.out.println("插入数据失败!" + e.getMessage());
  16.         }
  17.     }
  18. }
复制代码
2.3 查询数据

下面是一个查询用户数据的方法:
  1. import java.sql.Connection;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. public class UserDAO {
  6.     // 其他代码...
  7.     public void getAllUsers() {
  8.         String sql = "SELECT * FROM users";
  9.         
  10.         try (Connection connection = MySQLConnection.getConnection();
  11.              PreparedStatement preparedStatement = connection.prepareStatement(sql);
  12.              ResultSet resultSet = preparedStatement.executeQuery()) {
  13.             
  14.             while (resultSet.next()) {
  15.                 int id = resultSet.getInt("id");
  16.                 String username = resultSet.getString("username");
  17.                 String password = resultSet.getString("password");
  18.                 System.out.println("用户ID: " + id + ", 用户名: " + username + ", 密码: " + password);
  19.             }
  20.         } catch (SQLException e) {
  21.             System.out.println("查询数据失败!" + e.getMessage());
  22.         }
  23.     }
  24. }
复制代码
2.4 更新数据

更新用户信息的方法如下:
  1. public class UserDAO {
  2.     // 其他代码...
  3.     public void updateUserPassword(int id, String newPassword) {
  4.         String sql = "UPDATE users SET password = ? WHERE id = ?";
  5.         
  6.         try (Connection connection = MySQLConnection.getConnection();
  7.              PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
  8.             
  9.             preparedStatement.setString(1, newPassword);
  10.             preparedStatement.setInt(2, id);
  11.             int rowsAffected = preparedStatement.executeUpdate();
  12.             System.out.println("成功更新 " + rowsAffected + " 行数据。");
  13.         } catch (SQLException e) {
  14.             System.out.println("更新数据失败!" + e.getMessage());
  15.         }
  16.     }
  17. }
复制代码
2.5 删除数据

删除用户数据的方法如下:
  1. public class UserDAO {
  2.     // 其他代码...
  3.     public void deleteUser(int id) {
  4.         String sql = "DELETE FROM users WHERE id = ?";
  5.         
  6.         try (Connection connection = MySQLConnection.getConnection();
  7.              PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
  8.             
  9.             preparedStatement.setInt(1, id);
  10.             int rowsAffected = preparedStatement.executeUpdate();
  11.             System.out.println("成功删除 " + rowsAffected + " 行数据。");
  12.         } catch (SQLException e) {
  13.             System.out.println("删除数据失败!" + e.getMessage());
  14.         }
  15.     }
  16. }
复制代码
三、测试代码

在主步调中测试上述功能,创建 Main 类并添加如下代码:
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         UserDAO userDAO = new UserDAO();
  4.         // 插入用户
  5.         userDAO.addUser("john_doe", "password123");
  6.         
  7.         // 查询用户
  8.         userDAO.getAllUsers();
  9.         
  10.         // 更新用户密码
  11.         userDAO.updateUserPassword(1, "new_password");
  12.         
  13.         // 查询用户
  14.         userDAO.getAllUsers();
  15.         
  16.         // 删除用户
  17.         userDAO.deleteUser(1);
  18.         
  19.         // 查询用户
  20.         userDAO.getAllUsers();
  21.     }
  22. }
复制代码
四、总结

通过本文的先容,你已经学会了怎样在 Java 中毗连 MySQL 数据库并实现数据交互。主要内容包括:

在实际应用中,建议使用毗连池(如 HikariCP 或 DBCP)来提高性能和资源利用率。同时,可以考虑使用 ORM 框架(如 Hibernate 或 MyBatis)来简化数据库操纵,提高开发服从。盼望本文能帮助你快速上手 Java 与 MySQL 的数据交互!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4