/**
*
*/
package com.javaxyq.data.impl;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.BasicRowProcessor;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import com.javaxyq.data.NonexistentEntityException;
import com.javaxyq.data.PreexistingEntityException;
import com.javaxyq.data.Scene;
import com.javaxyq.data.SceneDAO;
import com.javaxyq.util.DBToolkit;
import com.javaxyq.util.SmartBeanProcessor;
/**
* @author gongdewei
* @date 2011-5-1 create
*/
public class SceneDAOImpl implements SceneDAO {
private BeanListHandler<Scene> resultHandler;
public SceneDAOImpl() {
BasicRowProcessor rowProcessor = new BasicRowProcessor(new SmartBeanProcessor());
resultHandler = new BeanListHandler<Scene>(Scene.class, rowProcessor);
}
@Override
public void create(Scene scene) throws PreexistingEntityException, Exception {
// TODO Auto-generated method stub
}
@Override
public void destroy(Integer id) throws NonexistentEntityException {
// TODO Auto-generated method stub
}
@Override
public void edit(Scene scene) throws NonexistentEntityException, Exception {
// TODO Auto-generated method stub
}
@Override
public Scene findScene(Integer id) throws SQLException {
String sql = "select * from SCENE where id=? ";
QueryRunner runner = new QueryRunner(DBToolkit.getDataSource());
List<Scene> results = runner.query(sql, resultHandler, id);
if(results.size() == 1) {
return results.get(0);
}else if(results.size() >= 1) {
throw new SQLException("��¼��Ψһ");
}
return null;
}
@Override
public List<Scene> findSceneEntities() throws SQLException {
String sql = "select * from SCENE ";
QueryRunner runner = new QueryRunner(DBToolkit.getDataSource());
List<Scene> results = runner.query(sql, resultHandler);
return results;
}
@Override
public List<Scene> findSceneEntities(int maxResults, int firstResult) throws SQLException {
if(firstResult < 1) {
firstResult = 1;
}
if(maxResults < 0) {
maxResults = 0;
}
String sql = "select * from SCENE OFFSET ? ROWS FECTH NEXT ? ROWS";
QueryRunner runner = new QueryRunner(DBToolkit.getDataSource());
List<Scene> results = runner.query(sql, resultHandler, firstResult, maxResults);
return results;
}
@Override
public int getSceneCount() throws SQLException {
String sql = "select count(1) from SCENE ";
QueryRunner runner = new QueryRunner(DBToolkit.getDataSource());
Object result = runner.query(sql, new ScalarHandler());
int count = 0;
if (result != null) {
count = ((Number) result).intValue();
}
return count;
}
}