JavaWeb【数据库连接池&JDBC练习】

数据库连接池简介

  • 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
  • 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗落
  • 好处
    • 资源重用
    • 提升系统响应速度
    • 避免数据库连接遗漏

数据库连接池实现

  • 标准接口:DataSource
    • 官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口
    • 功能:获取连接
Connection getConnection()
  • 常见的数据库连接池
    • DBCP
    • C3P0
    • Druid

Druid

  • Druid连接池是阿里巴巴开源的数据库连接池项目

JDBC练习

完成商品品牌数据的增删改查操作

  • 查询:查询所有数据
    public void testSelectAll() throws Exception {
        //获取连接
        //加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("C:/Users/USER/IdeaProjects/jdbc/src/druid.properties"));

        //获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //获取对应的数据库连接
        Connection connection = dataSource.getConnection();

        //定义SQL
        String sql = "SELECT * FROM tb_brand";

        //获取pstmt对象
        PreparedStatement pstmt = connection.prepareStatement(sql);

        //设置参数
        //无

        //执行SQL
        ResultSet rs = pstmt.executeQuery();

        //处理结果
        demo2 demo = null;
        List<demo2> demo2s = new ArrayList<>();
        while (rs.next()){
            //获取数据
            int id = rs.getInt("id");
            String brand_name = rs.getString("brand_name");
            String company_name = rs.getString("company_name");
            int ordered = rs.getInt("ordered");
            String description = rs.getString("description");
            
            int status = rs.getInt("status");
            //封装对象
            demo = new demo2();
            demo.setId(id);
            demo.setBrandName(brand_name);
            demo.setCompanyName(company_name);
            demo.setOrdered(ordered);
            demo.setDescription(description);
            demo.setStatus(status);

            //装载集合
            demo2s.add(demo);
        }

        System.out.println(demo2s);

        //释放资源
        rs.close();
        pstmt.close();
        connection.close();

    }
  • 添加:添加品牌
    public void testAdd() throws Exception {
        //接收参数
        String brandName = "香飘飘";
        String companyName = "香飘飘";
        int ordered = 1;
        String description = "绕地球一圈";
        int status = 1;

        //加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("C:/Users/MIKU/IdeaProjects/jdbc/src/druid.properties"));

        //获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //获取对应的数据库连接
        Connection connection = dataSource.getConnection();

        //定义SQL
        String sql = "insert into tb_brand (brand_name, company_name, ordered, description, status) values(?,?,?,?,?);";

        //获取pstmt对象
        PreparedStatement pstmt = connection.prepareStatement(sql);

        //设置参数
        pstmt.setString(1,brandName);
        pstmt.setString(2,companyName);
        pstmt.setInt(3,ordered);
        pstmt.setString(4,description);
        pstmt.setInt(5,status);

        //执行SQL
        int count = pstmt.executeUpdate();//影响的行数

        //处理结果
        if(count > 0){
            System.out.println("执行成功");
        }else {
            System.out.println("执行失败");
        }

        //释放资源
        pstmt.close();
        connection.close();

    }
  • 修改:根据id修改
//定义SQL
String sql = "UPDATE tb_brand \n" +
                "SET brand_name = ?,\n" +
                "company_name = ?,\n" +
                "ordered = ?,\n" +
                "description = ?,\n" +
                "`status` = ? \n" +
                "WHERE\n" +
                "\tid = ?";
  • 删除:根据id删除
//定义SQL
String sql = "DELETE FROM tb_brand WHERE id = ?";

Tips
以上学习内容均来自于B站黑马程序员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值