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.SceneTeleporter; import com.javaxyq.data.SceneTeleporterDAO; import com.javaxyq.util.DBToolkit; import com.javaxyq.util.SmartBeanProcessor; public class SceneTeleporterDAOImpl implements SceneTeleporterDAO { private BeanListHandler<SceneTeleporter> resultHandler; public SceneTeleporterDAOImpl() { BasicRowProcessor rowProcessor = new BasicRowProcessor(new SmartBeanProcessor()); resultHandler = new BeanListHandler<SceneTeleporter>(SceneTeleporter.class, rowProcessor); } @Override public void create(SceneTeleporter sceneTeleporter) 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(SceneTeleporter sceneTeleporter) throws NonexistentEntityException, Exception { // TODO Auto-generated method stub } @Override public SceneTeleporter findSceneTeleporter(Integer id) throws SQLException { String sql = "select * from SCENE_TELEPORTER where id=? "; QueryRunner runner = new QueryRunner(DBToolkit.getDataSource()); List<SceneTeleporter> 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<SceneTeleporter> findSceneTeleporterEntities() throws SQLException { String sql = "select * from SCENE_TELEPORTER "; QueryRunner runner = new QueryRunner(DBToolkit.getDataSource()); List<SceneTeleporter> results = runner.query(sql, resultHandler); return results; } @Override public List<SceneTeleporter> findSceneTeleporterEntities(int maxResults, int firstResult) throws SQLException { if(firstResult < 1) { firstResult = 1; } if(maxResults < 0) { maxResults = 0; } String sql = "select * from SCENE_TELEPORTER OFFSET ? ROWS FECTH NEXT ? ROWS"; QueryRunner runner = new QueryRunner(DBToolkit.getDataSource()); List<SceneTeleporter> results = runner.query(sql, resultHandler); return results; } @Override public List<SceneTeleporter> findTeleportersBySceneId(int sceneId) throws SQLException { String sql = "select * from SCENE_TELEPORTER where START_ID=? "; QueryRunner runner = new QueryRunner(DBToolkit.getDataSource()); List<SceneTeleporter> results = runner.query(sql, resultHandler, sceneId); return results; } @Override public int getSceneTeleporterCount() throws SQLException { String sql = "select count(1) from SCENE_TELEPORTER "; 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; } }