Java中使用JDBC连接MySQL数据库,通过Statement或PreparedStatement执行SQL语句,获取ResultSet结果集,实现增删改查功能。

Java中使用MySQL数据库,首先需要导入MySQL的JDBC驱动,然后通过建立连接、创建Statement对象、执行SQL语句、处理结果集等步骤来实现对数据库的操作,以下是详细的步骤和示例代码:

1、导入MySQL的JDBC驱动

java中mysql数据库的用法java中mysql数据库的用法

在项目的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysqlconnectorjava</artifactId>
    <version>8.0.26</version>
</dependency>

2、建立数据库连接

使用DriverManager.getConnection()方法建立与数据库的连接,需要提供数据库的URL、用户名和密码。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JdbcDemo {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
        String user = "root";
        String password = "your_password";
        try {
            Connection connection = DriverManager.getConnection(url, user, password);
            System.out.println("数据库连接成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3、创建Statement对象

java中mysql数据库的用法java中mysql数据库的用法

使用connection.createStatement()方法创建一个Statement对象,用于执行SQL语句。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcDemo {
    public static void main(String[] args) {
        // ...省略建立数据库连接的代码...
        try {
            Connection connection = DriverManager.getConnection(url, user, password);
            Statement statement = connection.createStatement();
            System.out.println("Statement对象创建成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

4、执行SQL语句并处理结果集(查询操作)

使用statement.executeQuery()方法执行SQL查询语句,返回一个ResultSet对象,用于处理查询结果。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcDemo {
    public static void main(String[] args) {
        // ...省略建立数据库连接和创建Statement对象的代码...
        try {
            Connection connection = DriverManager.getConnection(url, user, password);
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
            System.out.println("查询结果:");
            while (resultSet.next()) {
                System.out.println("id: " + resultSet.getInt("id") + ", name: " + resultSet.getString("name"));
            }
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

5、执行SQL语句并处理结果集(插入操作)

java中mysql数据库的用法java中mysql数据库的用法

使用statement.executeUpdate()方法执行SQL插入语句,返回一个整数,表示受影响的行数。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class JdbcDemo {
    public static void main(String[] args) {
        // ...省略建立数据库连接和创建Statement对象的代码...
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String name = scanner.nextLine();
        System.out.println("请输入年龄:");
        int age = scanner.nextInt();
        scanner.close();
        try {
            Connection connection = DriverManager.getConnection(url, user, password);
            String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, name);
            preparedStatement.setInt(2, age);
            int rowsAffected = preparedStatement.executeUpdate();
            if (rowsAffected > 0) {
                System.out.println("插入成功");
            } else {
                System.out.println("插入失败");
            }
            preparedStatement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally { // 关闭资源,避免内存泄漏问题,建议使用trywithresources语句块代替finally块关闭资源。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。