java中JDBC技术连接Mysql实现增删改查超级详细的教程

文章目录

  • 一、JDBC基本介绍
    • 1.简单介绍
    • 2.准确介绍
  • 二、IDEA项目中导入Mysql驱动jar包
  • 三、使用java程序连接Mysql数据库进行增删改查操作
    • 1.创建Mysql数据库连接
    • 2.实现增加记录
    • 3.实现删除记录
    • 4.实现修改记录
    • 5.实现查询记录
    • 6.连接、增删改查合并的代码
  • 四、结束语

一、JDBC基本介绍

1.简单介绍

简单概述:简单来说,JDBC就是java语言用来连接数据库的一种技术,使用java程序来操作数据库,实现数据的存储和处理。

2.准确介绍

准确介绍:JDBC准确来说是java提供一组API(方法),声明在java.sql包与javax.sql包中,这些方法主要是接口,它更像是一种规范行为。然后由各个不同的数据厂商来对这些接口进行实现,而这些对接口实现的类就构成了各个不同数据库的驱动类,这些驱动类就构成了各个不同数据库的驱动jar包

二、IDEA项目中导入Mysql驱动jar包

1.准备Mysql驱动jar包
先给没有jar包的小伙伴分享链接Mysql驱动jar包8.0版本,提取码4ysr,也就2.2mb,超快的,下载之后将jar包存放在一个文件夹中,位置你自己定,待会IDEA中引入jar包你要记住位置。这里我放在了D:\Mysql驱动jar包位置

2.打开IDEA,进入你的IDEA项目,单击左上方File,点击Project Structure。

3.在弹出来的界面,先点击Libralies,然后点击java

4.在弹出来的页面,选择jar包存放的文件夹,不用精确到jar包位置,然后单击确定

5.在弹出来的页面,这里是让你选择将此jar包应用到哪些模块,由于我这里就只创建了一个MyDemo项目,所以只有一个选项,直接点击ok就行

6.在弹出来的页面,先单击Apply,然后点击确定。

7.直接如图所示吧,多了你引入的文件说明该项目导入jar包成功,接下来就可以进行愉快的java程序操作数据库了。

注意:如果按照我的步骤,最后第7步没有出现如图所示的文件,你可以重新使用我的步骤再来一遍,注意第6步一定要先点击Apply,一般都会成功的。

三、使用java程序连接Mysql数据库进行增删改查操作

1.创建Mysql数据库连接

直接给你们看代码了,你们要的注释我都放在代码里边了,超级详细的

import java.sql.*;
public class Main {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        /**
         * 第一步:连接Mysql数据库,只需要三行代码,实际上两行就行
         * 1.Class.forName("com.mysql.cj.jdbc.Driver");
         *   作用:加载Mysql驱动类在内存中,这行代码在连接Mysql数据库的时候可以不加,如果连接
         *        其他数据库需要加,因为Mysql特有的可以自动导入驱动类
         * 2.String url = "jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";
         *   说明:
         *      1)连接Mysql数据库你需要提供以下信息:
         *         a.提供mysql服务端所在的主机ip地址或者主机名
         *         b.提供Mysql服务端的端口号
         *         c.提供Mysql服务端的用户名
         *         d.提供Mysql服务端的密码
         *         e.提供你需要操作的数据库名称
         *       2)对url字段串解释:
         *         jdbc:是主协议、mysql:是子协议
         *         localhost表示连接本机的mysql数据库、3306是端口号、mydb是Mysql里的一个数据库名称
         *         ?serverTimezone=UTC 表示设置时区为标准国际时区,不设置会出异常导致连接补上,这一行照抄就行
         * 3.Connection con = DriverManager.getConnection(url,"root","password");
         *   说明:
         *       1)DriverManager 是驱动管理类,是java.sql包下的类
         *       2)getConnection 是获取一个数据库连接的方法
         *          url: 第一个参数,跟着写就行
         *          "root":Mysql数据库的用户名,用你自己的
         *          "password":Mysql数据库密码,用你自己的
         *           返回一个连接对象
         * 注意:使用以上类和方法需要导入java.sql包,因为JDBC技术的接口包都在其中,以下方法都有异常抛出,
         *      我们直接给扔给main方法就行。
         */
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";
        Connection con = DriverManager.getConnection(url,"root","password");
        //程序如果走到这里,你的Mysql数据库就链接成功了,如果连接失败,你就回头从新检查参数url或者用户名密码是否设置正确
        //此时连接的就是mydb数据库,然后可以对象mydb中的表格进行操作了
        System.out.println("数据库连接成功!");
    }
}

2.实现增加记录

一样,注释都放在代码里,注意我的代码是一步一步给你们看的,最后会合并在一起

        /**
         * 第二步:实现增加记录的操作
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
         * 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
         //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
         String sql ="insert into item values(字段值1,字段值2...)";
         //2.获取PreparedStatement对象
         PreparedStatement ps = con.prepareStatement(sql);//参数将sql语句传入
         //3.通过ps发送sql语句,同时获取返回值,影响的记录数
         int len = ps.executeUpdate();
         //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了

3.实现删除记录

直接上代码,注释都在里边,这里和上面差不多,只是修改sql语句

        /**
         * 第三步:实现删除记录的操作(基本上面类似,只是sql语句不一样而已)
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
         * 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
        //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
        sql ="这里面是删除的sql语句";
        //2.获取PreparedStatement对象
        ps = con.prepareStatement(sql);//参数将sql语句传入
        //3.通过ps发送sql语句,同时获取返回值,影响的记录数
        len = ps.executeUpdate();
        //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了

4.实现修改记录

直接上代码,注释都在里边,这里和上面差不多,只是修改sql语句

        /**
         * 第四步:实现修改记录的操作(基本上面类似,只是sql语句不一样而已)
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
         * 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
        //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
        sql ="这里面是修改的sql语句";
        //2.获取PreparedStatement对象
        ps = con.prepareStatement(sql);//参数将sql语句传入
        //3.通过ps发送sql语句,同时获取返回值,影响的记录数
        len = ps.executeUpdate();
        //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了

5.实现查询记录

注意:查询记录的步骤和方法和上面有很大区别,且详细看看代码里的注释

        /**
         * 第五步:实现查询记录的操作(和上面大不相同,详细看)
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的***executeQuery()方法***发送sql语句
         *    注意:
         *        1)查询语句都是使用executeQuery()方法
         *        2)数据库返回来的是一个ResultSet对象,里边存放了你想要查询的数据
         * 4.遍历返回来的ResultSet对象,打印数据,具体规则看代码注释
         * 5.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
        //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
        sql ="这里面是查询的sql语句";
        //2.获取PreparedStatement对象
        ps = con.prepareStatement(sql);//参数将sql语句传入
        //3.通过ps发送sql语句,同时获取返回值,是一个数据的集合
        ResultSet set = ps.executeQuery();
        //4.遍历该集合
        //set.next() 该方法是判断是否还有下一行数据
        while(set.next()) {//一次读取一行数据
            //注意:这里的Object都可以替换为具体的数据类型,我为了演示才用的Object
            Object value1 = set.getObject(1);//数据中表的字段值序号,第1列
            Object value2 = set.getObject(2);//数据中表的字段值序号,第2列
            Object value3 = set.getObject(3);//数据中表的字段值序号,第3列
            //将获取到的一行的不同字段值依次打印出来看看
            System.out.println(value1 + "\t" + value2 + "\t" + value3);
        }
        //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了
        con.close();//关闭连接
        ps.close();//关闭PreparedStatement对象

6.连接、增删改查合并的代码

import java.sql.*;
public class Main {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        /**
         * 第一步:连接Mysql数据库,只需要三行代码,实际上两行就行
         * 1.Class.forName("com.mysql.cj.jdbc.Driver");
         *   作用:加载Mysql驱动类在内存中,这行代码在连接Mysql数据库的时候可以不加,如果连接
         *        其他数据库需要加,因为Mysql特有的可以自动导入驱动类
         * 2.String url = "jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";
         *   说明:
         *      1)连接Mysql数据库你需要提供以下信息:
         *         a.提供mysql服务端所在的主机ip地址或者主机名
         *         b.提供Mysql服务端的端口号
         *         c.提供Mysql服务端的用户名
         *         d.提供Mysql服务端的密码
         *         e.提供你需要操作的数据库名称
         *       2)对url字段串解释:
         *         jdbc:是主协议、mysql:是子协议
         *         localhost表示连接本机的mysql数据库、3306是端口号、mydb是Mysql里的一个数据库名称
         *         ?serverTimezone=UTC 表示设置时区为标准国际时区,不设置会出异常导致连接补上,这一行照抄就行
         * 3.Connection con = DriverManager.getConnection(url,"root","password");
         *   说明:
         *       1)DriverManager 是驱动管理类,是java.sql包下的类
         *       2)getConnection 是获取一个数据库连接的方法
         *          url: 第一个参数,跟着写就行
         *          "root":Mysql数据库的用户名,用你自己的
         *          "password":Mysql数据库密码,用你自己的
         *           返回一个连接对象
         * 注意:使用以上类和方法需要导入java.sql包,因为JDBC技术的接口包都在其中,以下方法都有异常抛出,
         *      我们直接给扔给main方法就行。
         */
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";
        Connection con = DriverManager.getConnection(url,"root","password");
        //程序如果走到这里,你的Mysql数据库就链接成功了,如果连接失败,你就回头从新检查参数url或者用户名密码是否设置正确
        System.out.println("数据库连接成功!");

        /**
         * 第二步:实现增加记录的操作
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
         * 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
         //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
         String sql ="insert into item values(字段值1,字段值2...)";
         //2.获取PreparedStatement对象
         PreparedStatement ps = con.prepareStatement(sql);//参数将sql语句传入
         //3.通过ps发送sql语句,同时获取返回值,影响的记录数
         int len = ps.executeUpdate();
         //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了

        /**
         * 第三步:实现删除记录的操作(基本上面类似,只是sql语句不一样而已)
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
         * 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
        //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
        sql ="这里面是删除的sql语句";
        //2.获取PreparedStatement对象
        ps = con.prepareStatement(sql);//参数将sql语句传入
        //3.通过ps发送sql语句,同时获取返回值,影响的记录数
        len = ps.executeUpdate();
        //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了

        /**
         * 第四步:实现修改记录的操作(基本上面类似,只是sql语句不一样而已)
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
         * 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
        //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
        sql ="这里面是修改的sql语句";
        //2.获取PreparedStatement对象
        ps = con.prepareStatement(sql);//参数将sql语句传入
        //3.通过ps发送sql语句,同时获取返回值,影响的记录数
        len = ps.executeUpdate();
        //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了

        /**
         * 第五步:实现查询记录的操作(和上面大不相同,详细看)
         * 步骤为:
         * 1.编写增加记录的sql语句
         * 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
         * 3.通过返回的PreparedStatement对象的***executeQuery()方法***发送sql语句
         *    注意:
         *        1)查询语句都是使用executeQuery()方法
         *        2)数据库返回来的是一个ResultSet对象,里边存放了你想要查询的数据
         * 4.遍历返回来的ResultSet对象,打印数据,具体规则看代码注释
         * 5.如果不继续使用con连接了和PreparedStatement对象了就释放资源
         * 注意:除了查询,其他方法一律都使用executeUpdate()
         */
        //1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
        sql ="这里面是查询的sql语句";
        //2.获取PreparedStatement对象
        ps = con.prepareStatement(sql);//参数将sql语句传入
        //3.通过ps发送sql语句,同时获取返回值,是一个数据的集合
        ResultSet set = ps.executeQuery();
        //4.遍历该集合
        //set.next() 该方法是判断是否还有下一行数据
        while(set.next()) {//一次读取一行数据
            //注意:这里的Object都可以替换为具体的数据类型,我为了演示才用的Object
            Object value1 = set.getObject(1);//数据中表的字段值序号,第1列
            Object value2 = set.getObject(2);//数据中表的字段值序号,第2列
            Object value3 = set.getObject(3);//数据中表的字段值序号,第3列
            //将获取到的一行的不同字段值依次打印出来看看
            System.out.println(value1 + "\t" + value2 + "\t" + value3);
        }
        //4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了
        con.close();//关闭连接
        ps.close();//关闭PreparedStatement对象
    }
}

四、结束语

相信看到这里大家对JDBC技术已经有了一定的了解啦,感谢大家的观看与支持,码文不易,一键三连多多支持,谢谢!!!

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年12月23日
下一篇 2023年12月23日

相关推荐