栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jdbc连接mysql(基础)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jdbc连接mysql(基础)

首先需要到mysql官网下载jdbc连接mysql的jar包。

链接:https://downloads.mysql.com/archives/c-j/

选择 platform independent。有.tar.gz和.zip,可以根据自己的需要选择下载 !

或者用mysql install 来安装,我这里已经提前安装过了!

1.点击add。

2.选择mysql connectors connector/j ,对应的就是java的jar包!

 由于我已经安装过了,所以是灰色的,后面可以根据提示进行安装,完成之后,我们用java连接的mysql的jar包就已经安装好了!

接下来打开我们的idea,我的例子是idea的,eclipse也是同理,基本都是差不多的!

我新建了一个myqltest项目来配置所需要的环境并用来测试!

 点击文件,选择项目结构,点击模块,选择依赖,点击左上角的+号,选择jar或目录,这个目录就需要添加我们下载的jar目录,如果是在官网下载的需要解压那个压缩文件,找到其中的jar文件!

 我的jar是在mysql install 安装的,所以我找到它的位置,并选择jar文件即可!

最后再打上勾勾,应用即可!

 点开外部库,看到出去java17之外我们下载的jar就配置好了!(我的jdk是17的,你们的可能会不一样,但是影响不大)。

 然后我们一次创建java包,java文件,开始测试连接自己的mysql数据库!

package cn.edu.cqie;

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


public class MsqlTest {
    public static void main(String[] args) {
        //127.0.0.1和localhost是等效的,都是连接本地mysql
        //String url = "jdbc:mysql://127.0.0.1:3306/mydatabase?";//指定连接数据库mydatabase
        //不指定数据库直接连接,后面需要调用use语句或create语句创建数据后use数据库
        String url = "jdbc:mysql://localhost:3306/?";
        //设置自己的用户名和密码
        String username = "root";
        String password = "qq2865642661";
        try {
            // 1.加载驱动
            // mysql8.0以上
            Class.forName("com.mysql.cj.jdbc.Driver");
            // mysql8.0以下
            //Class.forName("com.mysql.jdbc.Driver");
            // 2.开始连接
            Connection connection = DriverManager.getConnection(url, username, password);
            // 3.创建执行sql语句对象
            Statement statement = connection.createStatement();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

 写入以上代码,这样基本框架就好了,接下来就是操作数据库了。

其中有关jdbc的url相关可以查看(感谢):https://blog.csdn.net/zl13101758272/article/details/115641544

我们需要打开一个数据库可视化工具来验证我们的代码是否执行成功,我这里用的是sqlyog,其它的同理,可以看到,我这里并没有提前创建数据库,我们将通过jdbc来实现它!

 

接下来我们将创建一个数据库company,一个表employees,

写入一些数据并读取出来打印到控制台。

这是建表建库的sql语句:

DROp DATABASE IF EXISTS company;
create database company;
use company;

CREATE TABLE `employees` (
  `eno` char(3) NOT NULL COMMENT '雇员号',
  `ename` varchar(20) DEFAULT NULL COMMENT '姓名',
  `eage` int DEFAULT NULL COMMENT '年龄',
  `eaddress` varchar(20) DEFAULT NULL COMMENT '地址',
  `esalary` int DEFAULT NULL COMMENT '薪水',
  PRIMARY KEY (`eno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

insert  into `employees`(`eno`,`ename`,`eage`,`eaddress`,`esalary`) values 
('E01','tom',35,'海淀',8000),
('E02','dennis',24,'朝阳',5000),
('E03','john',20,'海淀',4000),
('E04','rick',41,'朝阳',7000),
('E05','bill',45,'西城',7500),
('E06','frank',35,'海淀',6000),
('E07','jank',25,'东城',3000),
('E08','mike',23,'东城',3500);

下面是java代码:

package cn.edu.cqie;

import java.sql.*;


public class MsqlTest {
    public static void main(String[] args) {
        //127.0.0.1和localhost是等效的,都是连接本地mysql
        //String url = "jdbc:mysql://127.0.0.1:3306/mydatabase?";//指定连接数据库mydatabase
        //不指定数据库直接连接,后面需要调用use语句或create语句创建数据后use数据库
        String url = "jdbc:mysql://localhost:3306/?";
        //设置自己的用户名和密码
        String username = "root";
        String password = "qq2865642661";
        try {
            // 1.加载驱动
            // mysql8.0以上
            Class.forName("com.mysql.cj.jdbc.Driver");
            // mysql8.0以下
            //Class.forName("com.mysql.jdbc.Driver");
            // 2.开始连接
            Connection connection = DriverManager.getConnection(url, username, password);
            // 3.创建执行sql语句对象
            Statement statement = connection.createStatement();
            // 4.创建数据库company
            // sql语句就和在可视化工具或者命令行的一样,分号是必不可少的哦
            StringBuilder sql = new StringBuilder("drop database if exists company;");
            statement.execute(sql.toString());
            sql.setLength(0);
            sql.append("create database company;");
            statement.execute(sql.toString());
            sql.setLength(0);
            // 5.使用数据局company
            statement.execute("use company;");
            // 6.创建表employees
            sql.append("""
                    CREATE TABLE `employees` (
                      `eno` char(3) NOT NULL COMMENT '雇员号',
                      `ename` varchar(20) DEFAULT NULL COMMENT '姓名',
                      `eage` int DEFAULT NULL COMMENT '年龄',
                      `eaddress` varchar(20) DEFAULT NULL COMMENT '地址',
                      `esalary` int DEFAULT NULL COMMENT '薪水',
                      PRIMARY KEY (`eno`)
                    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;""");
            statement.executeUpdate(sql.toString());
            sql.setLength(0);
            sql.append("""
                    insert into `employees` (`eno`,`ename`,`eage`,`eaddress`,`esalary`)values
                    ('E01', 'tom', 35, '海淀', 8000),
                    ('E02', 'dennis', 24, '朝阳', 5000),
                    ('E03', 'john', 20, '海淀', 4000),
                    ('E04', 'rick', 41, '朝阳', 7000),
                    ('E05', 'bill', 45, '西城', 7500),
                    ('E06', 'frank', 35, '海淀', 6000),
                    ('E07', 'jank', 25, '东城', 3000),
                    ('E08', 'mike', 23, '东城', 3500);""");
            statement.executeUpdate(sql.toString());
            sql.setLength(0);
            // 7.查询数据并打印
            sql.append("select * from employees;");
            ResultSet resultSet = statement.executeQuery(sql.toString());
            // 展开结果集数据库
            while (resultSet.next()) {
                // 通过字段检索
                String eno = resultSet.getString("eno");
                String ename = resultSet.getString("ename");
                int eage = resultSet.getInt("eage");
                String eaddress = resultSet.getString("eaddress");
                int esalary = resultSet.getInt("esalary");
                // 输出数据
                System.out.printf("eno: %-10s", eno);
                System.out.printf("ename: %-10s", ename);
                System.out.printf("eage: %-10d", eage);
                System.out.printf("eaddress: %-10s", eaddress);
                System.out.printf("esalary: %-10d", esalary);
                System.out.println();
            }
            // 8.释放连接
            resultSet.close();
            statement.close();
            connection.close();
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

测试结果:

sqlyog:

        可以看到数据库成功创建,数据也写入了进去。

 idea:

       打印的数据是正确的,说明我们也成功读取到了写入数据库的数据。

其中用到的Statement.execute,Statement.executeUpdate,Statement.executeQuery的区别是:

一般语句用Statement.execute,入创建数据库,use语句等,

Statement.executeUpdate用于修改表的结构和数据,update语句,alter语句等,

Statement.executeQuery用于查询语句,如select等。

总结:

        基本就是这样了,第一次写博客,有问题可以一起在评论区交流哦,有错误也请大佬指出呀!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/852486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号