无论是Web应用、桌面应用还是移动应用,它们都需要与数据库进行交互以存储和检索数据
Java作为一种广泛使用的编程语言,提供了强大的JDBC(Java Database Connectivity)API来实现这一目的
本文将通过一个详尽的JDBC MySQL Demo,带你深入理解如何使用Java与MySQL数据库进行高效交互
一、准备工作 在开始之前,请确保你已经完成了以下准备工作: 1.安装Java开发环境:确保你已经安装了JDK(Java Development Kit),并配置好了`JAVA_HOME`和`PATH`环境变量
2.安装MySQL数据库:从MySQL官方网站下载并安装MySQL数据库服务器
在安装过程中,请记下MySQL的root用户密码,以便后续使用
3.创建数据库和表:登录MySQL数据库,创建一个用于演示的数据库和表
例如,我们可以创建一个名为`demo_db`的数据库和一个名为`users`的表
sql CREATE DATABASE demo_db; USE demo_db; CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL ); 4.下载MySQL JDBC驱动:从MySQL官方网站或Maven中央仓库下载MySQL JDBC驱动(`mysql-connector-java`)
确保将其添加到你的Java项目的类路径中
二、JDBC MySQL Demo代码详解 下面是一个完整的JDBC MySQL Demo示例,包括数据库连接、数据插入、数据查询和数据更新操作
java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCMySQLDemo{ // MySQL数据库连接URL、用户名和密码 private static final String JDBC_URL = jdbc:mysql://localhost:3306/demo_db; private static final String JDBC_USER = root; private static final String JDBC_PASSWORD = your_password; // 请替换为你的MySQL root用户密码 public static void main(String【】 args){ Connection connection = null; Statement statement = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try{ // 1. 注册JDBC驱动(从JDBC 4.0开始,这一步可以省略) Class.forName(com.mysql.cj.jdbc.Driver); // 2. 打开连接 connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD); // 3. 执行查询操作 statement = connection.createStatement(); String sql = SELECT id, username, email FROM users; resultSet = statement.executeQuery(sql); // 4. 处理结果集 while(resultSet.next()){ int id = resultSet.getInt(id); String username = resultSet.getString(username); String email = resultSet.getString(email); System.out.printf(ID: %d, Username: %s, Email: %s%n, id, username, email); } // 5. 插入数据操作 String insertSQL = INSERT INTO users(username, password, email) VALUES(?, ?, ?); preparedStatement = connection.prepareStatement(insertSQL); preparedStatement.setString(1, newuser); preparedStatement.setString(2, password123); preparedStatement.setString(3, newuser@example.com); int rowsInserted = preparedStatement.executeUpdate(); if(rowsInserted > 0){ System.out.println(A new user was inserted successfully!); } // 6. 更新数据操作 String updateSQL = UPDATE users SET email = ? WHERE username = ?; preparedStatement = connection.prepareStatement(updateSQL); preparedStatement.setString(1, updated_email@example.com); preparedStatement.setString(2, newuser); int rowsUpdated = preparedStatement.executeUpdate(); if(rowsUpdated > 0){ System.out.println(A users email was updated successfully!);