数据库中的QueryRunner的大致实现
来源:互联网 发布:知乎反对能看到吗 编辑:程序博客网 时间:2024/06/03 09:25
public class MyQueryRunner{
private DataSource source;
public MyQueryRunner(DataSource source){
this.source = source;
}
public int update(String sql,Object... params)throws SQLException{
//从数据连接池中获取连接
Connection conn = source.getConnection();
//通过连接上的方法得到预处理
PreparedStatement ps = conn.PreparStatement(sql);
//得到预处理上的元数据
ParameterMetaData metaData = ps.getParameterMetaData();
//通过元数据得到sql语句中?的个数
int count = metaData.getParameterCount();
//如果sql语句中的?的个数和参数中的个数不同就抛出异常
if(count!=params.length)
throw new RuntimeException("paramter error!");
//把预处理上的每个?都设置相应的参数注意是1开始
for(int i=1;i<count;i++)
ps.setObject(i,params[i-1]);
//执行那条预处理语句并得到改变的行数
int num = ps.executeUpdate();
//关闭连接和预处理
Dbutils.closeQuietly(conn,ps,null);
return num;
}
public<T> T query(String sql,ResultSetHander<T> rsh,Object... params)throws SQLException{
Connection conn = source.getConnection();
PreparedStatment ps = conn.PrepareStatement(sql);
ParameterMetaData metaData = ps.getParameterData();
int count = metaData.getParameterCount();
if(count!=params.length)
throw new RuntimeException();
for(int i=1;i<=count;i++)
ps.setObject(i,params[i-1]);
//掉用预处理上的的查询方法返回ResultSet
ResultSet rs = ps.executeQuery();
//调用ResultSetHander对象上的hand()方法ResultSet作为参数传入
T t = rsh.hand(rs);
Dbutils.closeQuietly(conn,ps,rs);
return t;
}
}
- 数据库中的QueryRunner的大致实现
- DBUtiles中的简单使用(QueryRunner和ResultSetHandler的手动实现)
- 模仿QueryRunner的底层实现
- WebView实现的大致步骤
- 数据库操作工具-QueryRunner
- 使用queryrunner操作数据库
- [JavaWeb]DBUtils中的QueryRunner
- JDBC链接SQLServer数据库的大致步骤
- java链接数据库的大致步骤
- JDBC增删改基于QueryRunner 或 PreparedStatement的实现
- QueryRunner 核心运行类;在一般情况下如果执行CRUD的操作; 使用核心类QueryRunner 对数据库进行 增删改
- 支付功能实现的大致思路
- android断点续传下载实现的大致思路
- QueryRunner的使用
- QueryRunner的使用
- QueryRunner的使用
- QueryRunner的使用
- QueryRunner的使用
- NYOJ 353 3D dungeon (BFS)
- NYOJ 483 Nightmare (无标记BFS)
- 切勿再用“过了再说”安慰自己
- 20160611
- 第25课:spark streaming的streamingContext启动及Jobschedule启动源码图解
- 数据库中的QueryRunner的大致实现
- ubuntu12.04打字软件
- webService学习9:jquery ajax调用webservice
- mysql行变列
- Java (数组的遍历,for循环的使用)
- ZOJ 2110 Tempter of the Bone
- bzoj2333: [SCOI2011]棘手的操作
- 阻碍新手程序员提升的8件小事
- 勾股定理一日一证连载20