zoukankan      html  css  js  c++  java
  • 数据库连接池操作

    一,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);
      }
    }

  • 相关阅读:
    支持向量机SVM知识点概括
    决策树知识点概括
    HDU 3081 Marriage Match II
    HDU 3572 Task Schedule
    HDU 4888 Redraw Beautiful Drawings
    Poj 2728 Desert King
    HDU 3926 Hand in Hand
    HDU 1598 find the most comfortable road
    HDU 4393 Throw nails
    POJ 1486 Sorting Slides
  • 原文地址:https://www.cnblogs.com/kide1412/p/11019954.html
Copyright © 2011-2022 走看看