• 数据库连接池操作


    一,C3p0Xml工具类
      步骤:
        1,在成员位置创建一个静态的ComboPooledDataSource对象
        2,把c3p0xml文件复制到src根目录下
        3,定义静态方法,从CPDS对象中获取Connection对象并返回
        4,定义静态方法释放资源

    二,DbUtils
      1,概述:
        DBUtils是java中数据库操作的使用工具,DBUtils封装了JDBC操作,简化了JDBC操作,可以减少些许代码,它是阿帕奇公司的commons组件---》JDBC的6步减为3步
      2,三个核心功能:
        QueryRunner,提供了SQL语句操作的API
        ResultSetHandler,接口,用于select操作后怎样封装结果集
        DBUtils工具类,关闭资源,事物的处理方法
      3,准备数据
      4,QueryRunner--》new QueryRunner(DataSource),传DataSource 连接池参数
        update(String sql 语句,Object…prams 占位符数据); DML增删改操作
        query(String sql语句,ResultSetHandler 结果集,Object prams 占位符数据); 查
      5,步骤:
        1》创建QueryRunner对象,空参,需要获取连接对象;有参,传连接池参数
          QueryRunner qr = new QueryRunner();
          Connection conn = C3P0xmlUtils.getConnection();

          QueryRunner qr = new QueryRunner(C3P0xmlUtils.getDataSource());
        2》调用QR对象.方法处理,update(); query();
        3》处理结果
      6,用DBUtils查询
        java.bean 建立类与数据库表相对应。把查询表的结果取出,存入java.bean对象中并返回。
        构造:
          BeanHandler(Class<T> type) 传递java.bean的class文件对象 Product.class
        类型:
          List<Products> list = qr.query("select * from products where flag=?", new BeanListHandler<>(Products.class), 1);
          BeanHandler 获取第一行数据---》第一行
          BeanListHandler 获取所有行数据---》List集合
          ScalarHandler 获取单一返回情况:
            1,聚合函数 count sum avg max min
            2,select pname from product where pid=?
          ColumnListHandler 用于查询指定列,数据存入List集合中

    三,SpringTemplate
      spring.jdbc.Spring 框架对JDBC简单的封装提供了JDBCTemplate对象,简化JDBC操作开发
      使用:
        1,导包
        2,创建JDBCTemplate对象,依赖数据源连接池DataSource
          new JDBCTemplate(ds);
        3,调用JDBCTemplate对象.方法来完成CRUD操作
          update(); 增,删,改
          query(); 查,将查询结果封装成java.bean对象
          queryForMap(); 只能用于查指定一行,将查询结果封装到Map集合--》列名为键,值为value 存到Map集合
          queryForList(); 查询所有,将结果封装到List集合--》将每一条记录封装Map集合,再封装到List集合
          queryForObject(); 查询单一,用于聚合函数。 将结果封装成对象


    public class Demo01Template {
      JdbcTemplate jt = new JdbcTemplate(C3p0XmlUtils.getDataSources());

      @Test
      public void testInsert(){
        String sql="insert into products(pid,pname,price,category_cid,flag) values (?,?,?,?,?)";
        int row = jt.update(sql, 11, "奶茶", 3, "c04", 0);
        System.out.println(row+"行添加成功");
      }
      @Test
      public void testU(){
        int row = jt.update("update products set flag=? where pid=?", 1, 10);
        System.out.println(row +"行修改成功");
      }

      @Test
      public void testD(){
        int row = jt.update("delete from products where price=?", 5000);
        System.out.println(row + "行删除成功");
      }
      @Test
      public void testShow(){
        List<Map<String, Object>> maps = jt.queryForList("select * from products");
        for (Map<String,Object> m:maps){
        System.out.println(m);
        }
      }
      @Test
      public void test02(){
        Map<String, Object> map = jt.queryForMap("select * from products where pid=10");
        System.out.println(map);
      }
    }

  • 相关阅读:
    怎么说???
    再给自己一点鼓励
    还是不要看新闻的好
    系统架构师
    朋友
    未来的路
    I now have a dream
    纪念死去的手机
    全局规划
    终于要上战场了!
  • 原文地址:https://www.cnblogs.com/kide1412/p/11019954.html
Copyright © 2020-2023  润新知