web开发学习笔记六:开源工具

开源工具:使用开源的工具,能大大提高工作效率,简化代码

一.BeanUtils组件
开发过程中对 javabean 的操作很频繁,所以 appche 提供了一套开源的api,
方便对 javabean 进行操作,这套开源的工具就是 BeanUtils;

BeanUtils:简化对javabean的操作。

使用前要导入相应的jar包

方法:
BeanUtils.setProperty(Object,String,Object);//参数解释,第一个object是到操作的对象
//第二个是要操作的变量名,
// 第三个是变量的值,可以是基本类型也可以是对象


BeanUtils.copyProperties(Object,Object); //对象拷贝,将第二个参数对象的属性值copy给第一个对象


BeanUtils.populate(Object, map); //拷贝Map属性,map中的key要与javabean的属性名称一致

代码示例:
User{
String name;
int age;
..get/set();
}

User u = new User();
BeanUtils.setProperty(u,"name","小明"); //设置对象属性

User newUser = new User();
BeanUtils.copyPeoperties(newUser,u); //对象属性的copy

Map<String,Object> map = new HashMap<String,Object>();
map.put("name","小红"); // map中的key 一定要和所操作的javabean的变量名一致
map.put("age",12);
BeanUtils.populate(newUser, map); //拷贝map属性


二.DbUtils组件
DbUtils 组件是 appche 提供的一个封装了 jdbc的类库,使用DbUtils能大大简化jdbc代码


DbUtils:简化jdbc代码


使用前要导入相应的jar包

DbUtils组件核心工具类
QueryRunner:该类定义了所有操作数据库的方法
1.要传入连接对象的:
update(Connection,String,Object); //参数解释
//第一个参数,连接对象,使用该方法需要传入连接对象
//第二个参数,预编译Sql语句,?
//第三个参数,sql的值,几个?就传几个值,按顺序

batch(Connection,String,Object[][]); //批处理 Object[][]以数组形式存放要处理的参数


query(Connection,String,ResultSetHandler<T>,Object);//查询方法会返回结果,可能一个或多个
//第一个参数,连接对象,第二个参数,sql语句
//第三个参数,返回的对象(类型),DbUtils提供了一组对象可以使用
//第四个参数,sql语句?
对于第三个参数,以代码示例展示一下:
假如你在数据库查询 user表的一个用户,应该有对应的实体类User,那么你应该这样写
query(conn,sql,new BeanHandler<User>(User.class),?); // BeanHandler<User>(User.class) 
如果是查询多个用户,区别只是接受对象不一样而已
query(conn,sql,new BeanListHandler<User>(User.class),?) //BeanListHandler<User>(User.class)
 
DbUtils提供接受结果的一些对象:
1.BeanHandler: 查询返回单个对象
2.BeanListHandler: 查询返回list集合,集合元素是指定的对象
3.ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
4.ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
5.ScalarHandler 查询返回结果记录的第一行的第一列  (在聚合函数统计的时候用)
6.MapHandler  查询返回结果的第一条记录封装为map


2.不需要传入连接对象的:
update(String,Object); //与上相同,只不过不需要连接对象
batch(String,Object[][]);
....

注意: 如果调用DbUtils组件的操作数据库方法,没有传入连接对象,
那么在实例化QueryRunner对象的时候需要传入数据源对象:QueryRunner qr = new QueryRunner(ds);

三.连接池
在程序中使用jdbc对数据库操作是,总是要不断的获取连接,关闭连接,这样十分影响程序运行效率

所以有了连接池:事先创建好几个连接,当对数据库操作时去取一个,操作完后再放回去


C3po连接池是最常用的连接池技术。

使用前需要导入相应的Jar包。

C3p0连接池的核心类:
CombopooledDataSource: 该类有如下常用方法来定义连接池
setJdbcUrl(); //设置连接数据库的url
setDriverClass(); //数据库的驱动程序
setUser(); // 用户名
setPassword(); //密码
setInitialPoolSize(); // 设置连接池初始化时的连接数
setMaxPoolSize();  // 连接池的最大连接数
setMaxIdleTime(); // 最大空闲时间,达到时间后连接关闭


getConnection(); // 获取连接 这是CombopooledDataSource类的方法


对于以上的参数设置我们应该写在xml文件中,
c3p0定义了 其xml文件的名称,c3p0-config.xml 
c3p0-config.xml配置:
<c3p0-config>


<default-config> //这是默认的配置
<property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc_demo</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">3</property>
<property name="maxPoolSize">6</property>
<property name="maxIdleTime">1000</property>
</default-config>

//其他配置,由于可能需要连接的数据库不只一个,所以可以自己定义多个数据库的连接配置参数
<named-config name="oracle_config"> 
<property></property> //里面的参数名都与上面一样,
</named-config name="oracle_config">
</c3p0-config>


如何加载c3p0-config.xml配置?
当我们 new CombopooledDataSource()对象时,
会自动加载src下名为的 c3p0-config.xml 的配置文件,所以文件名必须这样写,
默认是使用默认配置:<default-config> 中的参数。


如果要使用其他的数据库配置,
在 new CombopooledDataSource("oracle_config"); 传入另一个配置的name 值就可以了。



该文章内容只是本人作为初学者的学习笔记总结,若想深入了解详情请自行查阅相关资料



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值