• 关于连接池和DBUtils


    1、关于数据库连接池

    连接池就是创建和管理一个连接缓冲池的技术,这些连接好被任意线程所使用,数据库连接池负责分配和管理、释放数据库连接,总而言之数据库连接池就是提高对数据库的操作性能。

    数据库连接池:

    (1)JNDI连接池:是早期Java名称目录接口,一种数据库连接池技术

    (2)DBCP:通过JNDI调用

    (3)Druid:由国内阿里巴巴开发的一种连接池技术,可提高sql语句的执行效率,性能好

    (3)C3P0:是一个开放源代码的JDBC连接池

    2、数据库连接池的使用(Druid为准)

    (1)创建属性文件放到源代码文件夹下,可以任意后缀名结尾,这里推荐txt方便打开

    基本配置:    
    driverClassName=com.mysql.jdbc.Driver      //加载驱动类
    url=jdbc:mysql://localhost:3306/test           //数据库连接URL
    username=root                                          //数据库用户名
    password=123456                                     //数据库密码
    initialSize=2                                              //初始化连接池个数
    maxActive=8                                             //最大连接池个数

    (2)创建自定义DBTools类

    public class DBTools{
             public static DataSource ds;       //创建数据源文件
             static{
                   Properties properties = new Properties();   //属性文件对象
                   try{
                      //加载属性文件
                      properties.load(DBTools.class.getResourceAsStream("/druid.txt"));
                      //把这个属性文件赋给ds
                      ds=DruidDataSourceFactory.createDataSource(properties);
                  }catch(Exception e){
                         e.printStatckTrace();
                  }
            }
    }                    

    (3)创建公共Query对象实体类(整个数据库操作依赖QueryRunner)

    public class BaseDao{
        public QueryRunner query;      //创建对象
        public BaseDao(){     //谁调用我就使用
             query=new QueryRunner(DBTools.ds);
       }  
    }

    3、DBUtils的使用

    DBUtils:简单的说DBUtils就是封装了JDBC的代码,简化了dao层的操作,提高工作的效率

    使用DBUtils

    (1)导入jar包:mysql驱动、数据库连接池jar包、DBUtils工具jar包

    (2)创建属性配置文件

    (3)自定义DBTools工具类,方便连接

    4、DBUtils的API

    query(sql,ResultSetHander<T>rsh,Object ... params)    //查询操作,返回一个有关泛型的集合,可添加参数,也可没有

    update(String sql,Object ... params)     //数据库增删改操作,参数为sql语句和任何类型的参数

    常用方法介绍:

    (1)BeanHandler:将查询的第一行数据封装到user对象

    (2)BeanListHandler:将查询的每一行数据封装到user对象,然后存入到list集合中

    使用:return query.query(sql,new BeanListHandler<Student>(Student.class));

    注意:必须指明类名

    (3)ScalarHandler:返回的Long类型,适用于对象聚合函数的查询,count,max,avg,min,sum

    使用:

    String sql = "select count(1) from student";

    return query.query(sql,new ScalarHandler<Long>())

  • 相关阅读:
    Java虚拟机平台无关性
    全局变量维护
    linux free 打印机
    存储介质
    Linux 从手表到大型主机 硬件驱动
    queue_action
    queue — A synchronized queue class
    Spark Shuffle 中 JVM 内存使用及配置内幕详情
    JAVA中Stack和Heap的区别
    spark 33G表
  • 原文地址:https://www.cnblogs.com/ByteBeat/p/11349258.html
Copyright © 2020-2023  润新知