mybatis 依托SqlSessionTemplate例子
mybatis 依赖SqlSessionTemplate例子
MyBatisDAO :
BaseDAO:
BaseVO :
MyBatisDAO :
import java.sql.SQLException; import java.util.*; import org.apache.ibatis.session.RowBounds; import org.apache.ibatis.session.SqlSession; import org.mybatis.spring.SqlSessionCallback; import org.mybatis.spring.SqlSessionTemplate; public class MyBatisDAO extends BaseDAO { protected SqlSessionTemplate sqlSessionTemplate; public MyBatisDAO() { } public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) { this.sqlSessionTemplate = sqlSessionTemplate; } public void delete(String statementId, Object deleteObject) { try { sqlSessionTemplate.delete(statementId, deleteObject); } catch (Exception e) { throw new DAOException((new StringBuilder( "根据参数对象删除数据失败,参数列表(statementId:")).append(statementId) .append(" deleteObject:").append(deleteObject).append(")") .toString(), e); } } public void insert(String statementId, Object insertObject) { try { sqlSessionTemplate.insert(statementId, insertObject); } catch (Exception e) { throw new DAOException((new StringBuilder( "根据参数对象新增数据失败,参数列表(statementId:")).append(statementId) .append(" insertObject:").append(insertObject).append(")") .toString(), e); } } public void insert(String statementId, BaseVO entity) { try { refreshUpdateTime(entity); sqlSessionTemplate.insert(statementId, entity); } catch (Exception e) { throw new DAOException( (new StringBuilder("根据参数对象新增数据失败,参数列表(statementId:")) .append(statementId).append(" entities:") .append(entity).append(")").toString(), e); } } public void insert(final String statementId, final Collection entities) { try { sqlSessionTemplate.execute(new SqlSessionCallback() { final MyBatisDAO this$0; private final Collection val$entities; private final String val$statementId; public Collection doInSqlSession(SqlSession sqlSession) throws SQLException { BaseVO t; for (Iterator iterator = entities.iterator(); iterator .hasNext(); sqlSession.insert(statementId, t)) t = (BaseVO) iterator.next(); return entities; } public volatile Object doInSqlSession(SqlSession sqlsession) throws SQLException { return doInSqlSession(sqlsession); } { this$0 = MyBatisDAO.this; entities = collection; statementId = s; super(); } }); } catch (Exception e) { throw new DAOException((new StringBuilder( "根据参数对象批量数据失败,参数列表(statementId:")).append(statementId) .append(" entities:").append(entities).append(")") .toString(), e); } } public void update(String statementId, Object updateObject) { try { sqlSessionTemplate.update(statementId, updateObject); } catch (Exception e) { throw new DAOException((new StringBuilder( "根据参数对象更新数据失败,参数列表(statementId:")).append(statementId) .append(" updateObject:").append(updateObject).append(")") .toString(), e); } } public void update(String statementId, BaseVO entity) { try { refreshUpdateTime(entity); sqlSessionTemplate.update(statementId, entity); } catch (Exception e) { throw new DAOException((new StringBuilder( "根据参数对象更新数据失败,参数列表(statementId:")).append(statementId) .append(" entity:").append(entity).append(")").toString(), e); } } public void update(final String statementId, final Collection entities) { try { sqlSessionTemplate.execute(new SqlSessionCallback() { final MyBatisDAO this$0; private final Collection val$entities; private final String val$statementId; public Collection doInSqlSession(SqlSession sqlSession) throws SQLException { BaseVO t; for (Iterator iterator = entities.iterator(); iterator .hasNext(); sqlSession.update(statementId, t)) t = (BaseVO) iterator.next(); return entities; } public volatile Object doInSqlSession(SqlSession sqlsession) throws SQLException { return doInSqlSession(sqlsession); } { this$0 = MyBatisDAO.this; entities = collection; statementId = s; super(); } }); } catch (Exception e) { throw new DAOException((new StringBuilder( "根据参数对象批量数据失败,参数列表(statementId:")).append(statementId) .append(" entities:").append(entities).append(")") .toString(), e); } } public Object getObject(String statementId, Object selectParamObject) { return sqlSessionTemplate.selectOne(statementId, selectParamObject); Exception e; e; throw new DAOException((new StringBuilder("根据参数对象读取数据失败,参数列表(statementId:")).append(statementId).append(" selectParamObject:").append(selectParamObject).append(")").toString(), e); } public List queryList(String statementId, Object queryParamObject) { return sqlSessionTemplate.selectList(statementId, queryParamObject); Exception e; e; throw new DAOException((new StringBuilder("查询全部数据失败,参数列表(statementId:")).append(statementId).append(" queryParamObject:").append(queryParamObject).append(")").toString(), e); } public List queryList(String statementId, Object queryParamObject, int pageNo, int pageSize) { RowBounds objRowBounds; int iOffset = (pageNo - 1) * pageSize; objRowBounds = new RowBounds(iOffset, pageSize); return sqlSessionTemplate.selectList(statementId, queryParamObject, objRowBounds); Exception e; e; throw new DAOException((new StringBuilder("分页查询全部数据失败,参数列表(statementId:")).append(statementId).append(" queryParamObject:").append(queryParamObject).append(" pageNo:").append(pageNo).append(" pageSize:").append(pageSize).append(")").toString(), e); } }
BaseDAO:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://kpdus.tripod.com/jad.html // Decompiler options: packimports(3) fieldsfirst ansi space // Source File Name: BaseDAO.java import java.sql.Timestamp; public abstract class BaseDAO { protected static final int OPERATE_BATCH_SIZE = 1000; protected static final int STRINGBUFFER_SIZE = 200; protected static final int INIT_PAGE_NO = 1; public BaseDAO() { } public void refreshUpdateTime(BaseVO baseVO) { baseVO.setUpdateTime(new Timestamp(System.currentTimeMillis())); } }
BaseVO :
import java.io.Serializable; import java.lang.reflect.Field; import java.sql.Timestamp; import javax.persistence.Column; import org.apache.commons.lang.builder.*; public class BaseVO implements Serializable { protected String _id; protected String actionType; protected String idList[]; protected int pageNo; protected int pageSize; protected String sortFieldName; protected String sortType; protected int optimisticLockVersion; protected Timestamp updateTime; public BaseVO() { pageNo = 1; pageSize = 20; } public String get_id() { return _id; } public String getActionType() { return actionType; } public String[] getIdList() { return idList; } public int getOptimisticLockVersion() { return optimisticLockVersion; } public int getPageNo() { return pageNo; } public int getPageSize() { return pageSize; } public String getSortFieldName() { if (sortFieldName == null) return null; Field objField = ClassUtil.getFieldByName(getClass(), sortFieldName); if (objField == null) return null; if (objField.isAnnotationPresent(javax / persistence / Column)) { Column objColumn = (Column) objField.getAnnotation(javax / persistence / Column); return objColumn.name(); } else { return objField.getName(); } } public String getSortType() { return sortType; } public Timestamp getUpdateTime() { return updateTime; } public void set_id(String id) { _id = id; } public void setActionType(String actionType) { this.actionType = actionType; } public void setIdList(String idList[]) { this.idList = idList; } public void setOptimisticLockVersion(int optimisticLockVersion) { this.optimisticLockVersion = optimisticLockVersion; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public void setSortFieldName(String sortFieldName) { this.sortFieldName = sortFieldName; } public void setSortType(String sortType) { this.sortType = sortType; } public void setUpdateTime(Timestamp updateTime) { this.updateTime = updateTime; } public boolean equals(Object objValue) { boolean bEqual = super.equals(objValue); if (super.equals(objValue)) bEqual = true; else bEqual = EqualsBuilder.reflectionEquals(this, objValue); return bEqual; } public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } public String toString() { return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE); } }