javaEE(DBUtils和ThreadLocal)
来源:互联网 发布:网络摄像头远程监控软件下载 编辑:程序博客网 时间:2024/06/01 08:52
DBUtils
apache公司做的,是java编程中数据库操作的实用工具,小巧简单实用。
DBUtils封装了对JDBC的操作
1.对数据表的读操作,他可以把结果转换成List,Array,Set等
2.对数据表的写操作(只需要sql语句)
3.可以使用数据源,使用JNDI,数据库连接池等技术来优化性能,
DBUtils三个核心对象
QueryRunner类(增删改查)
query() 执行select
update() 执行insert update delete
batch() 批处理
ResultSetHandler接口(处理结果封装)
用于定义select操作后,怎样定义结果集
DBUtils类(针对close,事务操作等)
它就是个工具类,定义关闭资源与事务处理的方法
DBUtils使用步骤
1.添加commons-dbutils.jar包(如果使用连接池可以加上c3p0.jar)
2.查询(QUeryRunner(dateSource,true)代表oracle使用)
低级
QueryRunner qr=new QueryRunner("需要数据源,不是Connection");qr.query("select * from XXX",new ResultSetHandler() {//当query方法执行select语句后,将结果集以参数的形式传递过来public ArrayList<User> handle(ResultSet rs) throws SQLException {ArrayList<User> list = new ArrayList<User>();while(rs.next()) {User u=new User();u.setId(rs.getInt(1));list.add(u);}return list;}});中级(ResultSetHandler有实现类,其中有Bea)
QueryRunner qr=new QueryRunner("需要数据源,不是Connection");List<User> query = qr.query("select * from XXX",new BeanListHandler<User>(User.class));三个参数的query是
qr.query("select * from XXX where id=? and name=?",new BeanListHandler<User>(User.class),1,"小明");
ThreadLocal
模拟ThreadLocal的设计。(使用目的:业务层需要开启事务,但是连接不是同一个连接,所以用需要同一个connection)
public class ThreadLocal{private Map<Runnable,Object> container = newHashMap<Runnable,Object>();public void set(Object value){container.put(Thread.currentThread(),value);//用当前线程作为key}public Object get(){return container.get(Thread.currentThread());}public void remove(){container.remove(Thread.currentThread());}}
总结:调用该类的get方法,永远返回当前线程放入的数据。线程局部变量。
阅读全文
1 0
- javaEE(DBUtils和ThreadLocal)
- JDBC补充:DBUtils和ThreadLocal
- Dbutils学习(介绍和入门)[转载]
- Dbutils学习(介绍和入门)
- DbUtils和HttpUtils
- DbUtils介绍和使用
- BeanUtils 和 DBUtils
- DBUtils和连接池
- C3P0和dbutils数据库连接池封装的使用(一)
- C3P0和dbutils数据库连接池封装的使用(二)
- DbUtils之更新(广义)和批处理操作
- Servlet和ThreadLocal的测试(zz)
- QueryRunner(DBUtils工具类)体现了:DBUtils封装了C3P0和jdbc。【三者的关系】
- DBUtils学习(一)
- DBUtils学习(二)
- Dbutils
- dbutils
- DbUtils
- 在VS Code中调试Jest单元测试
- sklearn.svm.SVC
- ubuntu16配置shadowsocksr-qt5+privoxy全局代理
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现
- Android Studio 快捷键笔记
- javaEE(DBUtils和ThreadLocal)
- 信息熵和散度
- (转)比特币有了定价模型?过去四年94%的价格波动可由此解释
- 制作在线预览文档,用于OA等系统文档预览,支持word,excel,ppt
- opencv dilate-erode
- 编程初步之路
- 低层次的认知,是悲哀人生的始作俑者
- Android使用广播实现app开机自启动
- 1-9输出