JDBC 连接MySQL实例详解

JDBC连接MySQL实例详解

什么是JDBC?

JDBC是Java Database Connectivity的缩写,是一种用于执行SQL语句的Java API。通过JDBC,我们可以直接连接到各种数据库,与之交互(如执行查询、更新等操作)。

JDBC连接MySQL的准备工作

在使用JDBC连接MySQL之前,需要先进行以下准备工作:
1. 下载MySQL的JDBC驱动(即JDBC的实现),并将其放入CLASSPATH中。我们可以在MySQL官网下载驱动,或者在Maven等仓库中获取它。下面演示的代码使用了Maven,pom.xml中需加入以下依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
</dependency>
  1. 创建MySQL数据库(如未创建)及数据表,并设置一个用于连接的MySQL用户及其密码。这里不再做详细介绍。

使用JDBC连接MySQL

接下来演示如何通过JDBC连接MySQL、创建表、插入、查询数据等操作。下面是一个简单的样例代码:

import java.sql.*;

public class JDBCTest {
    public static void main(String[] args) {
        try {
            // 1.加载数据库驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 2.连接数据库
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/testdb",
                    "testuser",
                    "testpass");

            // 3.创建Statement
            Statement stmt = conn.createStatement();

            // 4.创建表
            String tableSql = "CREATE TABLE Employee " +
                    "(id INT not NULL, " +
                    " name VARCHAR(255), " +
                    " age INT, " +
                    " PRIMARY KEY ( id ))";
            stmt.executeUpdate(tableSql);

            // 5.插入数据
            String insertSql = "INSERT INTO Employee " +
                    "(id, name, age) " +
                    "VALUES (1, 'Tom', 20)";
            stmt.executeUpdate(insertSql);

            // 6.查询数据
            String selectSql = "SELECT id, name, age FROM Employee WHERE id=1";
            ResultSet rs = stmt.executeQuery(selectSql);
            if (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("id=" + id + ", name=" + name + ", age=" + age);
            }

            // 7.关闭资源
            rs.close();
            stmt.close();
            conn.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注:上述代码为演示使用,没有考虑异常、线程安全等问题,仅供参考。下面对代码的各个部分进行解释。

加载数据库驱动程序

JDBC是通过驱动程序来运行的,驱动程序的实现由各个数据库厂商提供。使用JDBC时,需要先加载该驱动程序。一般通过Class.forName()方法进行加载。

Class.forName("com.mysql.cj.jdbc.Driver");

上面的代码表示加载MySQL的驱动程序,使用的是MySQL Connector/J 8.0版本的驱动程序。

连接数据库

DriverManager.getConnection()方法用于创建连接。该方法需要三个参数:URL、用户名和密码。

Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/testdb",
                    "testuser",
                    "testpass");

上面的代码中URL表示连接的目标数据库,其格式为:

jdbc:mysql://[host][:port]/[database]?[properties]

其中,[host]表示主机名,[port]表示端口号(MySQL默认使用3306端口),[database]表示连接的数据库名,[properties]则表示数据库的其他配置(如连接要用到的字符集)。上面的代码连接的数据库为名为testdb的数据库,用户名为testuser,密码为testpass的用户。

创建Statement

Statement表示执行SQL语句、查询并更新数据的对象,通过连接创建即可。例如:

Statement stmt = conn.createStatement();

上述代码创建了一个Statement对象stmt,以便后续执行SQL语句。

创建表

使用SQL语句创建表:

String tableSql = "CREATE TABLE Employee " +
                    "(id INT not NULL, " +
                    " name VARCHAR(255), " +
                    " age INT, " +
                    " PRIMARY KEY ( id ))";
stmt.executeUpdate(tableSql);

上述代码表示创建了一个名为Employee的表,包含id、name、age三个字段,其中id为主键(PRIMARY KEY)。

插入数据

使用SQL语句向Employee表中插入一行数据:

String insertSql = "INSERT INTO Employee " +
                    "(id, name, age) " +
                    "VALUES (1, 'Tom', 20)";
stmt.executeUpdate(insertSql);

上述代码表示向Employee表中插入了一行数据,id为1,name为Tom,age为20。

查询数据

使用SQL语句查询Employee表中id为1的记录:

String selectSql = "SELECT id, name, age FROM Employee WHERE id=1";
ResultSet rs = stmt.executeQuery(selectSql);
if (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    int age = rs.getInt("age");
    System.out.println("id=" + id + ", name=" + name + ", age=" + age);
}

上述代码表示查询Employee表中id等于1的记录,并将查询结果输出到控制台上。

关闭资源

在使用JDBC过程中,需要注意关闭资源,释放连接。例如:

rs.close();
stmt.close();
conn.close();

上述代码依次关闭ResultSet、Statement和Connection对象,以释放与数据库的连接。

至此,我们就完成了一个简单的JDBC连接MySQL实例的操作。在实际应用中,还需要注意异常处理、资源释放、线程安全等问题。

示例说明

下面是两个使用JDBC连接MySQL的示例说明。

示例1:从MySQL数据库中读取数据,输出到控制台

import java.sql.*;

public class ReadFromDB {
    public static void main(String[] args) {
        try {
            // 1.加载数据库驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 2.连接数据库
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/testdb",
                    "testuser",
                    "testpass");

            // 3.创建Statement
            Statement stmt = conn.createStatement();

            // 4.查询数据
            String selectSql = "SELECT id, name, age FROM Employee";
            ResultSet rs = stmt.executeQuery(selectSql);
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("id=" + id + ", name=" + name + ", age=" + age);
            }

            // 5.关闭资源
            rs.close();
            stmt.close();
            conn.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上述代码演示了如何从MySQL数据库中读取Employee表中的数据,并将结果输出到控制台上。

示例2:向MySQL数据库中插入数据

import java.sql.*;

public class WriteToDB {
    public static void main(String[] args) {
        try {
            // 1.加载数据库驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 2.连接数据库
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/testdb",
                    "testuser",
                    "testpass");

            // 3.创建Statement
            Statement stmt = conn.createStatement();

            // 4.插入数据
            String insertSql = "INSERT INTO Employee " +
                    "(id, name, age) " +
                    "VALUES (2, 'Mary', 25)";
            stmt.executeUpdate(insertSql);

            // 5.关闭资源
            stmt.close();
            conn.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上述代码演示了如何向MySQL数据库的Employee表中插入一行数据,该行数据的id为2,name为Mary,age为25。

参考资料

  1. JDBC Tutorial
  2. MySQL Connector/J

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JDBC 连接MySQL实例详解 - Python技术站

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

相关文章

  • 在Nginx服务器中配置针对TCP的负载均衡的方法

    在Nginx服务器中配置TCP负载均衡可以用于将传入请求流量自动平衡分发到多个服务器,从而实现高可用和高性能的目标。下面是详细的操作步骤: 环境准备 在开始之前,请确保你已经安装了Nginx服务器,可以使用以下命令检查: nginx -v 如果服务器返回了版本信息,则说明你已经安装了Nginx。 配置Nginx 首先,你需要编辑Nginx的配置文件(一般是/…

    database 2023年5月22日
    00
  • SQL Server 索引维护sql语句

    当我们在 SQL Server 中创建了索引之后,为了保证索引的性能,需要进行定期的维护。本文将分享 SQL Server 索引维护 sql 语句的完整攻略。 索引维护的目的 在了解如何维护索引之前,我们应该先了解一下为什么需要进行索引维护。在 SQL Server 中,如果索引出现了碎片,那么查询索引所对应的表时,就会出现性能问题。碎片是指索引中页的顺序不…

    database 2023年5月21日
    00
  • SQL Server连接查询的实用教程

    SQL Server连接查询的实用教程 连接查询是 SQL Server 中常用的查询方式之一,它可以用于连接两个或多个表,将它们之间的共同数据找出来。本文将介绍连接查询的基本知识和实用技巧,帮助读者更好地应用连接查询进行数据分析。 连接查询的基础知识 连接查询的种类 SQL Server 支持多种类型的连接查询,包括内连接、左连接、右连接和全连接。其中内连…

    database 2023年5月21日
    00
  • 如何使用Python更新数据库中的数据?

    当需要更新数据库中的数据时,可以使用Python连接到数据库并执行SQL UPDATE语句。以下是使用Python更新数据库中的数据的完整攻略: 连接数据库 要连接到数据库,需要提供数据库的主机名、用户名、密码和数据库名称。可以使用以下代码连接MySQL: import mysql.connector mydb = mysql.connector.conne…

    python 2023年5月12日
    00
  • 初识NoSQL NoSql数据库入门 NoSql数据库基础知识

    初识NoSQL NoSQL是什么 NoSQL,指的是“非关系型数据库”,是相对于关系型数据库而言的。传统的关系型数据库使用SQL语言作为数据操作的标准,而NoSQL则使用其他的数据存储和查询机制。 NoSQL的特点 NoSQL数据库具有以下几个特点: 高度可扩展:采用了分布式的存储方式,可以通过添加节点来扩展存储能力。 架构灵活:不需要像关系型数据库那样使用…

    database 2023年5月22日
    00
  • windows下php安装redis扩展

    查看当前PHP版本 代码中添加 phpinfo(); 下载对应的redis扩展 下载链接:https://pecl.php.net/package/redis因为我的PHP版本是5.6的,所以redis版本对应2.2.7。下载redis扩展文件并解压 安装redis扩展 将解压后的php_redis.dll文件放到php的ext目录下 修改php.ini文件…

    Redis 2023年4月13日
    00
  • Java中JDBC事务与JTA分布式事务总结与区别

    Java中JDBC事务与JTA分布式事务总结与区别 1. JDBC事务 1.1 JDBC事务的定义 JDBC事务是指从JDBC连接开始,到结束提交或回滚的整个过程。JDBC事务采用的是本地事务的原理,即在一个本地数据库中进行的一组操作。 1.2 JDBC事务的使用步骤 JDBC事务的使用步骤如下: 获取连接:使用DriverManager.getConnec…

    database 2023年5月21日
    00
  • MySQL主键自增长(AUTO_INCREMENT)详解

    主键是数据库表中用于唯一标识每个记录的列,自增长是一种主键属性,指的是当插入新记录时,自动分配一个唯一的整数值作为主键,每次插入新记录时,该自增长值会自动加1。 在MySQL中,可以将主键列定义为自增长列,可以使用关键字“AUTO_INCREMENT”来实现。 具体使用方法如下: 在创建表时,定义主键列并设置为自增长: CREATE TABLE 表名 ( i…

    MySQL 2023年3月9日
    00
合作推广
合作推广
分享本页
返回顶部