smile开发类库——SQLRunner数据库基本操作

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

你可能感兴趣的:(sql,数据库操作,smile)