dbutils

学习java免不了和数据库打交道。下面我介绍下apache的一个类库,很好用的,没那么多的get和set了,
因为我们知道使用javabean来对数据库中的字段进行封装保存,取出免不了get,设置又要set。而今天这个类库就不用,
他就是 commons-dbutils-1. 1. jar,也不知道大家有没有用过的,心得大家一块分享下。
首先我们先看一个我们常规的得到查询数据库所得到的ResultSet。
1、表:person:字段:username,id,age .要查id为 1 的用户信息, 用javabean封装,PersonVo
  1. public  PersonVo getInfo(int id) throws Exception {   
  2.         PersonVo pv = new PersonVo();   
  3.         String sql = "SELECT * FROM person WHERE id = " + id;   
  4.         Connection connection = super.getConnection();   
  5.         Statement statement = connection.createStatement();   
  6.         ResultSet rs = statement.executeQuery(sql);   
  7.         while (rs.next()) {   
  8.         pv.setId(rs.getInt(1));   
  9.         pv.setUsername(rs.getString(2));   
  10.         pv.setAge(rs.getInt(3));   
  11. }  

ok,我们得到了。
下面开始介绍dbutils. jar
今天我们主要使用org.apache.commons.dbutils.handler下面的类
主要的类有: ArrayHandler,ArrayListHandler,BeanHandler,BeanListHandler,MapHandler,MapListHandler
1.同样是要得到一条结果,那我们就可以用ArrayHandler或BeanHandler或MapHandler.
下面看方法
 
  1. public PersonVo getInfo(int id) throws Exception {   
  2.         QueryRunner queryRunner = new QueryRunner();   
  3.         String sql = "select * from person where id = " + id;   
  4.         return  (PersonVo)queryRunner.query(getConnection(), sql,new BeanHandler(PersonVo.class));   
  5. }  

QueryRunner我个人觉得和我们以前用过的Statement差不多。
他有一个方法query(java.sql.Connection conn, java.lang.String sql, ResultSetHandler rsh) ,其他的大家可以下载下来
自己试着用下。
getConnection() 是拿到一个和数据库的Connection。
这样我们在前台,就直接可以
 
  1. PersonVo pv = new Test().getInfo(1);   
  2. System.out.println(pv.getUsername());  

如果结果有一条以上,就要用BeanListHandler,MapListHandler.
如:
 
  1. public List<PersonVo> getRegist3() throws Exception {   
  2.         QueryRunner queryRunner = new QueryRunner();   
  3.         String sql = "select * from person";   
  4.         return  (List)queryRunner.query(getConnection(), sql,new BeanListHandler(PersonVo.class));   
  5. }  


---------------
ps:MapHandler
3.
 
  1. public Map getRegist() throws Exception {   
  2.                 QueryRunner queryRunner = new QueryRunner();   
  3.                 String sql = "select * from person where id = 2";   
  4.                 return (Map) queryRunner.query(getConnection(), sql,new MapHandler());   
  5. }  

MapListHandler
4.
 
  1. public List<Map> getRegist4() throws Exception {   
  2.                 QueryRunner queryRunner = new QueryRunner();   
  3.                 String sql = "select * from person";   
  4.                 return  (List)queryRunner.query(getConnection(), sql,new MapListHandler());   
  5. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python DBUtils 是一个轻量级的 Python 数据库连接池库,支持多个线程和多个进程,并可与各种数据库后端一起使用。DBUtils 是一个纯 Python 库,没有其他依赖项。 DBUtils 的主要目的是提供一个共享数据库连接池,这样可以避免在不同的线程和进程中频繁地打开和关闭数据库连接。这可以极大地提高应用程序的性能和响应速度。 DBUtils 提供了一些常见的数据库连接池实现,包括 PooledDB,PersistentDB 和 StackedObjectPool。这些实现都提供了相同的接口,因此可以很容易地将它们用于不同的应用程序。 使用 DBUtils 可以在保持代码简洁的同时获得数据库连接池的好处。以下是一个使用 DBUtils 连接 MySQL 数据库的示例: ```python import pymysql from dbutils.pooled_db import PooledDB POOL = PooledDB( creator=pymysql, maxconnections=5, mincached=2, maxcached=5, blocking=True, maxusage=None, host='localhost', port=3306, user='root', password='password', database='test', charset='utf8mb4' ) def get_conn(): return POOL.connection() def query_data(sql): conn = get_conn() cursor = conn.cursor() cursor.execute(sql) result = cursor.fetchall() cursor.close() conn.close() return result ``` 在上面的示例中,我们使用 `PooledDB` 创建了一个 MySQL 数据库连接池,并使用 `get_conn` 获取一个连接对象,然后使用 `query_data` 函数执行 SQL 查询。注意,我们在使用完连接后需要手动关闭连接。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值