MySQL实现JDBC详细步骤

yizhihongxing

下面我们详细讲解一下“MySQL实现JDBC详细步骤”的完整攻略。

什么是JDBC?

JDBCJava语言中访问关系型数据库的应用程序接口,作为Oracle公司为开发者提供的数据库访问技术之一,主要用于在Java应用程序中进行数据库操作,同时也可以与其他编程语言进行协作。

MySQL实现JDBC详细步骤

下面将为大家详细介绍如何使用MySQL实现JDBC。

步骤1:安装MySQL

首先,我们需要在本地安装MySQL数据库,可以到官网下载相应的安装包并进行安装。

步骤2:导入MySQL驱动包

在Java程序中使用JDBC操作数据库,需要将相应的数据库驱动程序放在classpath中,这里我们下载MySQL官方提供的驱动,将其存放到工程的lib目录下,并在项目中配置classpath。

示例代码:

<!-- MySQL驱动包 -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.25</version>
</dependency>

步骤3:连接数据库

在Java程序中连接MySQL数据库,需要使用JDBC提供的Connection接口,通过调用DriverManager.getConnection()方法来创建连接。

示例代码:

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

public class DBUtil {
    private static Connection conn = null;
    private static String driver = "com.mysql.cj.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
    private static String username = "root";
    private static String password = "123456";

    static {
        try {
            // 加载驱动,建立连接
            Class.forName(driver);
            conn = DriverManager.getConnection(url, username, password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取连接对象
     */
    public static Connection getConnection() {
        return conn;
    }

    /**
     * 关闭连接
     */
    public static void close() {
        try {
            if (conn != null) {
                conn.close();
                conn = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

步骤4:执行SQL语句

有了连接对象,我们就可以执行SQL语句了,这里使用Java中的PreparedStatement类来执行预编译SQL语句。

示例代码:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 获取连接对象
            conn = DBUtil.getConnection();
            // 构造SQL语句
            String sql = "SELECT * FROM users WHERE id = ?";
            // 创建PreparedStatment对象,设置参数
            ps = conn.prepareStatement(sql);
            ps.setInt(1, 1);
            // 执行SQL语句,获取结果集
            rs = ps.executeQuery();
            // 遍历结果集
            while (rs.next()) {
                System.out.println(rs.getInt("id") + ", " + rs.getString("name") + ", " + rs.getString("email") + ", " + rs.getString("password"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接
            DBUtil.close(rs, ps, conn);
        }
    }
}

步骤5:关闭连接

连接使用完成后,需要将其关闭,释放资源。这里我们在DBUtil类中添加一个静态方法close(),用于关闭连接。

示例代码:

/**
 * 关闭连接
 */
public static void close(ResultSet rs, Statement stmt, Connection conn) {
    try {
        if (rs != null) {
            rs.close();
            rs = null;
        }
        if (stmt != null) {
            stmt.close();
            stmt = null;
        }
        if (conn != null) {
            conn.close();
            conn = null;
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

示例

接下来,我们看一下如何使用Java程序连接MySQL数据库,执行SQL语句并输出查询结果。

示例1:查询数据库中的记录

  1. 创建一个名为db_test的数据库;
  2. db_test数据库中创建一个名为users的表,包含id(int), name(varchar), email(varchar)和password(varchar)四个字段;
  3. users表中插入一条记录,id为1,name为"test",email为"test@test.com",password为"123456";
  4. 在IntelliJ IDEA中创建一个Maven工程,并在pom.xml中添加MySQL驱动包的依赖;
  5. 创建DBUtil类,实现连接数据库、执行SQL语句、关闭连接等功能;
  6. 创建Test类,编写查询SQL语句的代码;
  7. 运行程序,输出查询结果。
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            // 获取连接对象
            conn = DBUtil.getConnection();
            // 构造SQL语句
            String sql = "SELECT * FROM users WHERE id = ?";
            // 创建PreparedStatment对象,设置参数
            ps = conn.prepareStatement(sql);
            ps.setInt(1, 1);
            // 执行SQL语句,获取结果集
            rs = ps.executeQuery();
            // 遍历结果集
            while (rs.next()) {
                System.out.println(rs.getInt("id") + ", " + rs.getString("name") + ", " + rs.getString("email") + ", " + rs.getString("password"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接
            DBUtil.close(rs, ps, conn);
        }
    }
}

输出结果为:

1, test, test@test.com, 123456

示例2:向数据库中插入记录

  1. 创建一个名为db_test的数据库;
  2. db_test数据库中创建一个名为users的表,包含id(int), name(varchar), email(varchar)和password(varchar)四个字段;
  3. 在IntelliJ IDEA中创建一个Maven工程,并在pom.xml中添加MySQL驱动包的依赖;
  4. 创建DBUtil类,实现连接数据库、执行SQL语句、关闭连接等功能;
  5. 创建Test类,编写插入SQL语句的代码;
  6. 运行程序,执行插入SQL语句。
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        try {
            // 获取连接对象
            conn = DBUtil.getConnection();
            // 构造SQL语句
            String sql = "INSERT INTO users VALUES (?, ?, ?, ?)";
            // 创建PreparedStatment对象,设置参数
            ps = conn.prepareStatement(sql);
            ps.setInt(1, 2);
            ps.setString(2, "test2");
            ps.setString(3, "test2@test.com");
            ps.setString(4, "123456");
            // 执行SQL语句,获取结果集
            int result = ps.executeUpdate();
            if (result == 1) {
                System.out.println("插入成功!");
            } else {
                System.out.println("插入失败!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭连接
            DBUtil.close(ps, conn);
        }
    }
}

执行成功后,数据库中应该会新增一条记录。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL实现JDBC详细步骤 - Python技术站

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

相关文章

  • jQuery实现AJAX定时刷新局部页面实例

    下面我来详细讲解如何使用jQuery实现AJAX定时刷新局部页面的完整攻略。 1. AJAX介绍 首先我们要了解的是什么是AJAX。AJAX全称为Asynchronous JavaScript and XML,即异步JavaScript和XML。简单来说,就是通过JavaScript在不刷新整个页面的情况下,与服务器通信并更新部分页面内容。 2. jQuer…

    Java 2023年6月15日
    00
  • Java运算符从见过到掌握上

    Java运算符是Java语言中非常重要的一个概念。它是程序员进行各种运算操作所必需的。从见过到掌握,需要我们经过以下步骤: 一、了解Java运算符的分类 Java运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和三目运算符。 算术运算符:+,-,*,/,%,++,–。 赋值运算符:=,+=,-=,*=,/=,%=等等。 比较运算符:==,…

    Java 2023年5月20日
    00
  • Spring中的spring.factories文件用法(Spring如何加载第三方Bean)

    在Spring中,有一个特殊的配置文件spring.factories,它可以用于指定Spring加载的应用程序上下文中的第三方Bean,而无需创建XML配置文件。下面详细介绍它的用法和加载过程: spring.factories的用法 spring.factories文件位于Spring项目的META-INF目录中,并且遵循标准Java属性文件格式。该文件…

    Java 2023年5月31日
    00
  • Springboot实现高吞吐量异步处理详解(适用于高并发场景)

    Spring Boot实现高吞吐量异步处理详解 在高并发场景下,异步处理是提高系统吞吐量的一种有效方式。Spring Boot提供了多种异步处理方式,本文将详细介绍如何使用Spring Boot实现高吞吐量异步处理,并提供两个示例。 异步处理方式 Spring Boot提供了多种异步处理方式,包括: 使用@Async注解实现异步方法调用。 使用Complet…

    Java 2023年5月15日
    00
  • Spring MVC文件请求处理MultipartResolver详解

    在 Spring MVC 中,MultipartResolver 是用于处理文件上传请求的组件。本文将详细讲解 Spring MVC 文件请求处理 MultipartResolver 的使用方法和注意事项。 MultipartResolver 的使用方法 在 Spring MVC 中,我们可以通过配置 MultipartResolver 来处理文件上传请求。…

    Java 2023年5月18日
    00
  • Mybatis下的SQL注入漏洞原理及防护方法解析

    Mybatis是一个流行的Java持久层框架,它具有方便的ORM(对象关系映射)实现方式和优秀的性能。然而,一些开发人员对Mybatis的SQL注入漏洞缺乏足够的认识,导致了许多Mybatis系统的漏洞。 SQL注入漏洞原理 所谓SQL注入,是指攻击者在Web应用中注入恶意的SQL语句,从而执行一些数据篡改、信息泄露等恶意操作。Mybatis中的SQL注入漏…

    Java 2023年5月20日
    00
  • 使用springboot整合mybatis-plus实现数据库的增删查改示例

    下面是“使用springboot整合mybatis-plus实现数据库的增删查改示例”的完整攻略。 1. 安装环境 首先,需要安装Java、Maven和MySql。具体的安装过程可以网上查询相应的安装教程。 2. 创建SpringBoot项目 使用IntelliJ IDEA等开发工具创建一个基于SpringBoot的Maven项目。 3. 添加依赖 在项目的…

    Java 2023年5月20日
    00
  • Java Timer使用讲解

    Java Timer使用讲解 Java Timer 是 Java SE 提供的一个定时器工具,可以用于定时运行任务、周期性地运行任务等。本文将详细介绍 Timer 的使用方法和注意事项。 Timer 的基本使用方法 Timer 类提供了三个构造方法,分别为: Timer() Timer(boolean isDaemon) Timer(String name)…

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