数据库连接池Druid

以BaseDao作为公共类可以有效解决大片代码重复的问题;但是依然有很多sql语句重复

在BaseDao里手写一个通用的增删改sql语句. 

拼接sql语句

  • 通过反射获取emp有7个字段,有一个是另一个对象 ; 相要写通用sql

  • 就要把关联字段排除
  • 排除的方法

    • 通过`注解+返射的方式排除关联的属性
    • 写一个anno包
      • @Target给字段用     
      • @Retention设置生命周期

    • 反射读取注解
    • 打了注解的会在运行阶段忽略

  • 以上通过注解加方射的方式类似于框架 

    可以使用commons-utils.jar完成数据库封装

    ------------>

数据库连接对象是非常宝贵的资源

  • DriverManager.getConnection(url,user,password)
    • //数据库连接对象创建是非常复杂的
  • 通过类似线程池的池装载数据库连接
    • 目前比较成熟的连接池技术 :推荐使用阿里巴巴(druid); dbcp;c3p0
  • druid()的使用 

    • 引入jar包;用druid()创建数据库连接 
    •  
  • 新的获取数据库连接方法
    • 提供一个新的数据库俩连接对象;所有的连接池对象都实现了java.sql
    • 提供的DataSourcs(数据源)接口
    • 这个接口是由JDBC提供的一个统一的规范,所有的数据库连接池都遵循这规范
    • 通过静态代码块读取配置文件的信息连接文件;改写JDBCUtils
    • 通过prop对象加载properties  : 
    • dataSource = DruidDataSourceFactory.creatDataSource(prop)
    • return dataSource.getConnection();
    • druid关闭数据库连接 JDBCUtil.realease(, ,):重新还给连接池
  • JDBCUtils:

DButils:的使用;单表查询

  • Commons DButild 是apache提供的一个对JDBC进行简单封装的开源工具,
  • 导入jar包 commons-dbutils   
  • 在dao类创建queryRunner对象并传入数据库连接池
  • 调用queryRunner 的update或者 query 方法;  
  • 使用DButils必须满足ORM映射关系;
  • 没有按照orm关系映射的: new(一个resultSetHandler)重写之后手动更改.

  • JDBCUtil中获取连接池 
  • DaoImpl拿到连接池 

  • 查询所有
  • 查询一个byId
  • 查询部门的员工人数,返回整形人数
  • 新增一个员工
    • test新增方法

    不遵循orm的解决办法:

可见jar包是真的香  但是想用这个必须遵循ORM关系映射;否则代码还是很复杂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值