Java操作Mysql的方法

关于Java操作MySQL的方法,需要掌握以下几点:

  1. 导入数据库驱动程序
  2. 建立数据库连接
  3. 创建statement对象,执行SQL语句
  4. 处理查询结果集
  5. 关闭各种连接

下面将详细介绍这些步骤以及如何实现它们。

导入数据库驱动程序

在Java中操作MySQL,需要先导入MySQL的JDBC驱动程序。如果你使用的是Maven等依赖管理工具,可以直接在pom.xml中添加如下依赖:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>x.xx.xx</version>
</dependency>

其中x.xx.xx需要替换为具体的版本号。

如果不使用Maven等依赖管理工具,则需要手动下载MySQL的JDBC驱动程序,并将其添加到CLASSPATH中。

建立数据库连接

建立数据库连接的代码如下所示:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8";
    private static final String USER = "root";
    private static final String PASSWORD = "root";

    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (ClassNotFoundException e) {
            System.out.println("JDBC驱动程序未找到!");
        } catch (SQLException e) {
            System.out.println("建立数据库连接失败!");
        }
        return conn;
    }
}

其中,URL是连接MySQL的URL,USER和PASSWORD分别是连接MySQL的用户名和密码。getConnection()方法返回一个Connection对象,用于后续的数据库操作。

创建Statement对象,执行SQL语句

创建Statement对象的代码如下所示:

import java.sql.*;

public class Main {
    public static void main(String[] args) {
        Connection conn = DBUtil.getConnection();
        Statement stmt = null;
        ResultSet rs = null;
        try {
            String query = "SELECT * FROM user WHERE id = 1";
            stmt = conn.createStatement();
            rs = stmt.executeQuery(query);
            while (rs.next()) {
                System.out.println(rs.getString("name"));
                System.out.println(rs.getInt("age"));
            }
        } catch (SQLException e) {
            System.out.println("执行SQL语句失败!");
        } finally {
            try {
                if (rs != null) rs.close();
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                System.out.println("关闭连接失败!");
            }
        }
    }
}

上述代码中,我们使用createStatement()方法创建了一个Statement对象,stmt.executeQuery()方法用于执行查询语句,rs.next()方法用于返回结果集中的下一条记录,rs.getString("name")和rs.getInt("age")用于获取结果集中的数据。

除了使用Statement对象来执行SQL语句外,还可以使用PreparedStatement对象来预编译SQL语句,提高执行效率。

import java.sql.*;

public class Main {
    public static void main(String[] args) {
        Connection conn = DBUtil.getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            String query = "SELECT * FROM user WHERE id = ?";
            pstmt = conn.prepareStatement(query);
            pstmt.setInt(1, 1);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString("name"));
                System.out.println(rs.getInt("age"));
            }
        } catch (SQLException e) {
            System.out.println("执行SQL语句失败!");
        } finally {
            try {
                if (rs != null) rs.close();
                if (pstmt != null) pstmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                System.out.println("关闭连接失败!");
            }
        }
    }
}

上述代码中,我们使用prepareStatement()方法创建了一个PreparedStatement对象,setInt(1, 1)方法用于给查询语句中的占位符传参。

处理查询结果集

结果集是一个带有光标的对象,它维护在数据表上的位置。使用结果集的next()方法以顺序方式遍历表格。

关闭各种连接

在捕获到异常或使用完各种连接之后,需要关闭代码中使用的Connection、Statement、ResultSet等连接。务必保证它们的关闭顺序为ResultSet -> Statement -> Connection。

try {
    if (rs != null) rs.close();
    if (stmt != null) stmt.close();
    if (conn != null) conn.close();
} catch (SQLException e) {
    System.out.println("关闭连接失败!");
}

接下来给出示例代码清单:

import java.sql.*;

public class Main {
    public static void main(String[] args) {
        Connection conn = DBUtil.getConnection();
        Statement stmt = null;
        ResultSet rs = null;
        try {
            String query = "SELECT * FROM user WHERE id = 1";
            stmt = conn.createStatement();
            rs = stmt.executeQuery(query);
            while (rs.next()) {
                System.out.println(rs.getString("name"));
                System.out.println(rs.getInt("age"));
            }
        } catch (SQLException e) {
            System.out.println("执行SQL语句失败!");
        } finally {
            try {
                if (rs != null) rs.close();
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                System.out.println("关闭连接失败!");
            }
        }
    }
}
import java.sql.*;

public class Main {
    public static void main(String[] args) {
        Connection conn = DBUtil.getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            String query = "SELECT * FROM user WHERE id = ?";
            pstmt = conn.prepareStatement(query);
            pstmt.setInt(1, 1);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString("name"));
                System.out.println(rs.getInt("age"));
            }
        } catch (SQLException e) {
            System.out.println("执行SQL语句失败!");
        } finally {
            try {
                if (rs != null) rs.close();
                if (pstmt != null) pstmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                System.out.println("关闭连接失败!");
            }
        }
    }
}

以上为Java操作MySQL的基本方法,供您参考。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java操作Mysql的方法 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 简单讲解java中throws与throw的区别

    简单讲解java中throws与throw的区别 在Java中,throw和throws关键字经常用到,尤其在异常处理方面。虽然它们的名称相似,但它们却有着截然不同的作用。下面,我们将用清晰易懂的方式详细讲解这两个关键字的区别。 throw throw关键字用于抛出一个异常,用来通知调用方法的代码,指明了出现了问题,并且在遇到无法处理的异常时将它传递给调用者…

    Java 2023年5月25日
    00
  • SpringDataMongoDB多文档事务的实现

    下面是详细讲解“SpringDataMongoDB多文档事务的实现”的完整攻略: 1. 概述 在MongoDB数据库中,每个文档就代表着一个记录,它是MongoDB的最小数据单元。MongoDB支持多文档事务,即在一个事务中可以同时对多个文档进行读写操作。SpringDataMongoDB是MongoDB的一个常用Java驱动程序,它提供了在Java中操作M…

    Java 2023年5月20日
    00
  • Windows下Java环境配置的超详细教程

    下面是Windows下Java环境配置的超详细教程。 1. 下载Java开发包 首先,我们需要到Oracle官网上下载Java开发包(JDK)。下载地址为:https://www.oracle.com/technetwork/java/javase/downloads/index.html。 选择“JDK Download”,然后在页面中找到需要下载的Jav…

    Java 2023年5月19日
    00
  • 详细分析JAVA8新特性 Base64

    详细分析JAVA8新特性 Base64 Base64是一种编码方式,用于将二进制数据转换为可读性较高的ASCII字符集。Base64编码可以用于在电子邮件中传输二进制数据,也可以用于将数据存储在文本文件或数据库中。Java 8提供了全新的Base64 API,本文将详细介绍该API的使用方法。 Base64 API Java 8中的Base64 API位于j…

    Java 2023年5月20日
    00
  • Java Apache POI报错“NullArgumentException”的原因与解决办法

    “NotOfficeXmlFileException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 文件格式错误:如果文件不是Office Open XML格式,则可能会出现此异常。例如,可能会尝试读取旧版的Microsoft Office文件或尝试读取其他文件类型。 以下是两个实例: 例1 如果文件格式错误,则可以尝试使用正确…

    Java 2023年5月5日
    00
  • editplus配置java编程环境详细介绍

    EditPlus配置Java编程环境详细介绍 EditPlus是一款文本编辑器,它可以为Java编程者提供良好的编程环境。以下是EditPlus的Java编程环境配置攻略,包括Java 开发工具包(JDK)和编译器环境的配置。 JDK安装 首先,我们需要下载最新的JDK。当前最新版本是JDK 16。通过Oracle官网下载JDK 安装程序并开始安装过程。 安…

    Java 2023年5月23日
    00
  • Spring Security认证的完整流程记录

    下面我将详细讲解Spring Security认证的完整流程记录: 1. Spring Security是什么 Spring Security 是 Spring 提供的安全扩展框架,是一个框架组件,其目标是为基于 Spring 的应用程序提供声明性安全保护。 2. Spring Security 的认证流程 Spring Security 的认证流程可以概括…

    Java 2023年5月20日
    00
  • Java各种比较对象的方式的对比总结

    Java是一门优秀的编程语言,它有多种比较对象的方式。在Java中,将两个对象进行比较是很常见的操作,常见的比较对象的方式包括了以下几种: 比较对象的方式 1. 使用“==”比较 在Java中,使用“==”比较两个对象时,比较的是两个对象的引用是否相同,即两个对象是否是同一个对象,如果引用不相同,则比较结果为false,反之则为true。 示例: Objec…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部