本篇文章来介绍下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