𝖄𝕺🌎𝕿𝕽𝕺¥

𝖄𝕺🌎𝕿𝕽𝕺¥

𝕴 𝖉𝖔 𝖒𝖆𝖌𝖎𝖈
github

从0开始基于IDEA实现Java连接MySQL数据库、JDBC交互实例

目标#

实现 java 和数据库交互,包括配置 sql 环境,java 库,简单例子实现

环境配置#

主机配置:IntelliJ IDEA, SDK18, Windows11

下载:
Connector/J
系统选择 Platform Independent
connectorJ

MySQL Community 8.0
注意是 mysql-installer-community,不是 mysql-installer-web-community
MySQLCommunity

MySQLCommunity 下载完成后安装 只需安装 server,记住信息,设置数据库账户(本例为 <username>, <password>, 图片为安装成功后,与安装过程不同)

mysqlInstaller

IDEA 配置#

MySQL - 创建新数据源 实现连接#

新建项目后,菜单栏 视图 - 工具窗口 - 数据库,新建数据源 - 驱动程序下载 MySQL 驱动,记录类名(如图为 com.mysql.cj.jdbc.Driver)
mysqldriver

数据源,身份验证可填写安装 MySQL 时的数据库账户,记录 URL 地址
localhost
下方测试连接检查 成功 进入下一步

Connector/J 导入至项目库#

文件 - 项目结构 - 库,添加刚下载的 connector/J 解压后的 jar 文件,确定
projectStructure

实现交互#

数据库#

跳转至控制台,输入 MySQL 命令,可参考MySQL 教程:MySQL 数据库学习宝典(从入门到精通)

sqlkongzhitai

输入如下代码:

CREATE DATABASE test; #创建数据库
USE test; #选择数据库进行操作
CREATE TABLE IF NOT EXISTS students (   #创建表students
    id INT NOT NULL PRIMARY KEY ,
    name TEXT NOT NULL ,
    age INT NOT NULL );
INSERT INTO students VALUES (1,'name1',18); #插入数据
INSERT INTO students VALUES (2,'name2',12);
INSERT INTO students VALUES (3,'name3',22);

运行后看到创建完成

Java 类#

新建 Java 类,以下为代码

import java.sql.*;

public class Test {

    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";//驱动类名
    static final String DB_URL = "jdbc:mysql://localhost:3306";//数据库URL地址

    static final String USERNAME = "username";//数据库用户名
    static final String PASSWORD = "password";//数据库密码

    public static void main(String[] args){

        Connection conn = null;
        Statement stat = null;

        try {
            Class.forName(JDBC_DRIVER);
            System.out.println("Connecting...");
            conn = DriverManager.getConnection(DB_URL,USERNAME,PASSWORD);
            stat = conn.createStatement();

            String sql = "SELECT * FROM test.students";//此处为MySQL语句
            ResultSet rs = stat.executeQuery(sql);

            while(rs.next()){//遍历
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("id = " + id);
                System.out.println("name = " + name);
                System.out.println("age = " + age);
            }

            rs.close();//释放
            stat.close();
            conn.close();

        } catch (Exception e){
            e.printStackTrace();
        } finally {
            try {
                if (stat!=null) stat.close();
            } catch (SQLException ignored) {
            } try {
                if (conn!=null) conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
            System.out.println("Success!");
        }
    }
}

输出

Connecting...
id = 1
name = name1
age = 18
id = 2
name = name2
age = 12
id = 3
name = name3
age = 22
Success!
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。