java中JDBC技术连接Mysql实现增删改查超级详细的教程
作者:mmseoamin日期:2023-12-18

文章目录

  • 一、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包。

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第1张

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

        1.准备Mysql驱动jar包

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

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第2张

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

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第3张

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

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第4张

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

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第5张

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

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第6张

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

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第7张

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

        java中JDBC技术连接Mysql实现增删改查超级详细的教程,在这里插入图片描述,第8张

        注意:如果按照我的步骤,最后第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技术已经有了一定的了解啦,感谢大家的观看与支持,码文不易,一键三连多多支持,谢谢!!!