smile开发类库——SQLRunner数据库基本操作
本篇文章来介绍下smile中关于数据库操作的方法:
org.smile.db.sql.SQLRunner;
一、 使用SQLRunner 对数据库的增、删、改、查:
1、 使用SQLRunner 进行插入数据,对于DbManager的用法博客中专有一篇文章介绍。
Connection conn=DbManager.getConnection();
SQLRunner runner=new SQLRunner(conn);
String sql="insert into test(id,name,age) values(?,?,?)";
try {
runner.execute(sql, new Object[]{"11111","test",33});
}finally{
runner.closeConn();
}
也可以不使用参数方式:
Connection conn=DbManager.getConnection();
SQLRunner runner=new SQLRunner(conn);
String sql="insert into test(id,name,age) values('1111','test',33)";
try {
runner.execute(sql);
}finally{
runner.closeConn();
}
2、 对数据库的删除、更新都插入的操作方式类似,相信大家都明白怎么做。
3、现在主要对查询进行一个详细的介绍:
查询返回的行记录形式可以是多种多样的,由SQLRunner 的成员变量
private RowHandler handler;
决定的,RowHandler 是一个接口,需要实现RowHandler接口中的一个方法:
/**
* 处理结果集
* @param rs
* @return
* @throws Exception
*/
public Object handle(ResultSet rs) throws SQLException ;
smile-1.0.jar 中提供了四种实现,应该可以满足项目开发中的需求了:
四中实现如下:
- ArrayRowHandler 把每一行记录转了一条数组。
- BeanRowHandler 把每一条记录转成一个javabean ,定义的bean字段与数据库的字段一致。
- ListRowHandler 把每一条记录转成一个ArrayList
- MapRowHandler 把每一条记录转成一个Map 相信这个是最常用到的了。
如果不为SQLRunner 指定RowHandler 默认使用MapRowHandler 。
代码如下:
String sql="select id,name,age from test where name=?";
//使用默认RowHandler
//SQLRunner runner=new SQLRunner(conn);
SQLRunner runner=new SQLRunner(conn,new ArrayRowHandler());
try {
List list=runner.query(sql, new Object[]{"test"});
} finally{
runner.closeConn();
}
查询语句还可以使用如下形式添加参数:
String sql="select id,name,age from test where name=:name";
//使用默认RowHandler
//SQLRunner runner=new SQLRunner(conn);
SQLRunner runner=new SQLRunner(conn,new ArrayRowHandler());
try {
Map params=new HashMap();
params.put("name", "test");
List list=runner.query(sql, params);
}finally{
runner.closeConn();
}
二、 批量操作数据库。
SQLRunner runner=new SQLRunner(conn);
try {
Object[][] params=new Object[][]{{"1111","test",33},{"2222","test2",332}});
runner.batch("insert into test(id,name,age) values(?,?,?)",params}
finally{
runner.closeConn();
}
三、 手动事务:
SQLRunner runner=new SQLRunner(conn);
try{
runner.beginTransaction();
runner.execute(sql1);
runner.execute(sql2);
runner.commit();
}catch(SQLException e){
runner.rollback();
throw e;
}finally{
runner.closeConn();
}
【smile-1.0.jar下载】
http://hzs0502030128.iteye.com/blog/1471505