JDBC学习

文章详细介绍了JDBC的概念,包括它是Java数据库连接技术,用于访问各种数据库。文中通过步骤解析了如何配置JDBC,加载驱动并连接MySQL数据库,然后展示了JDBC进行数据库新增、修改、删除和查询操作的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JDBC是什么

JDBC是java数据库连接技术(Java Database Connectivity),能实现java程序对各种数据库的访问
JDBC由一组使用java语言编写的类和接口(JDBC API)组成,它们位于java.sql和jkavax.sql中

二、JDBC连接数据库步骤

1.Class.forName加载驱动
2.DiverManager获取Connection对象
3.创建Statement执行SQL语句
4.返回resultset查询结果
5.释放资源
在这里插入图片描述

三、配置JDBC

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.29</version>
</dependency>

四.JDBC代码演示

加载驱动,获取connection对象

        Connection connection = null;  //将connection对象体现创建在外面
        PreparedStatement preparedStatement = null;  //将preparedStatement对象体现创建在外面
        ResultSet resultSet = null;  //将resultSet对象体现创建在外面
        try {
            //第一步:加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            //第二步:获取connection对象
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.153.142:3306/jdbcstudb", 
                    //mysql服务器地址,端口,数据库名
                    "root", //数据库的用户名 root
                    "root" //数据库的密码 root
            );
            System.out.println(connection);

JDBC新增操作及关闭资源

		String sql = "insert into dog(name,health,love,strain,lytm) value(?,?,?,?,now())";
            String name = "旺财";
            Integer health = 100;
            Integer love = 68;
            String strain = "中华田园犬";
            preparedStatement = connection.prepareStatement(sql);
            //对PreparedStatement塞值
            preparedStatement.setString(1, name);
            preparedStatement.setInt(2, health);
            preparedStatement.setInt(3, love);
            preparedStatement.setString(4, strain);
            int num = preparedStatement.executeUpdate();
            if (num > 0) {
                System.out.println("新增宠物狗成功!");
            }} catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally {
            //finally里面释放资源
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

运行结果(修改值多插入几条数据):

在这里插入图片描述

JDBC修改操作及关闭资源

	String sql = "update dog set name=?,health=?,love=? where id=?";
            String name = "泰日天";
            Integer health = 100;
            Integer love = 100;
            Integer id = 2;
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1,name);
            preparedStatement.setInt(2,health);
            preparedStatement.setInt(3,love);
            preparedStatement.setInt(4,id);
            int num = preparedStatement.executeUpdate();
            if(num>0){
                System.out.println("修改成功!");
            }finally {
            //finally里面释放资源
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

运行结果:

在这里插入图片描述

JDBC删除操作及关闭资源

	String sql = "delete from dog where name = ? and health = ?";
            preparedStatement = connection.prepareStatement(sql);
            String name = "大黑子";
            Integer health = 78;
            preparedStatement.setString(1,name);
            preparedStatement.setInt(2,health);
            int num=preparedStatement.executeUpdate();
            if (num>0){
                System.out.println("删除成功!");
            }finally {
            //finally里面释放资源
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

运行结果:

在这里插入图片描述

JDBC查询操作及关闭资源

	String sql = "select id,name,health,love,strain,lytm from dog where health=? and strain=? limit ?,?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1, 100);
            preparedStatement.setString(2, "中华田园犬");
            preparedStatement.setInt(3, 0);
            preparedStatement.setInt(4, 2);
            resultSet = preparedStatement.executeQuery();
            System.out.println("\t\t狗狗信息");
            System.out.println("编号\t名字\t健康值\t亲密度\t品种\t领养时间");
            while (resultSet.next()) {
                System.out.print(resultSet.getInt("id") + "\t");
                System.out.print(resultSet.getString("name") + "\t");
                System.out.print(resultSet.getInt("health") + "\t");
                System.out.print(resultSet.getInt("love") + "\t");
                System.out.print(resultSet.getString("strain") + "\t");
                System.out.println(resultSet.getDate("lytm") + "\t");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //finally里面释放资源
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

运行结果

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值