由于工作原因,这段时间需要接触Spring+Struts+Ibatis.所以参考或研究了下相关资源,写了一个简单的小例子,废话不多说,下面我们来谈谈SSI持久层的优化。
以前在写项目的时候,持久层都是针对一个业务层至少一个持久层的(多数项目如此),这种项目结构,无形中给我们增加了很多的工作量和无用的代码。我的例子中,持久层一共只有2个类,一个接口(实现数据UPDATE、Query操作),一个接口实现.接口代码如下:
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @param parameterObject 要插入的对象(map/javaBean)
* @function 插入一条数据
*/
public void insert(String statementName,Object parameterObject);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @function 插入一条数据
*/
public void insert(String statementName);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @param parameterObject 删除条件对象(map/javaBean)
* @function 删除一条记录
* @return 删除结果
*/
public int delete(String statementName, Object parameterObject);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @function 删除一条记录
* @return 删除结果
*/
public int delete(String statementName);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @param parameterObject 查询条件对象(map/javaBean)
* @function 查询单条记录
* @return 符合条件的对象
*/
public Object queryForObject(String statementName,Object parameterObject);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @function 查询单条记录
* @return 符合条件的对象
*/
public Object queryForObject(String statementName);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @param parameterObject 查询条件对象(map/javaBean)
* @function 查询集合记录
* @return 符合条件的记录集合
*/
public List queryForList(String statementName,Object parameterObjec);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @function 无条件查询
* @return 符合条件的记录集合
*/
public List queryForList(String statementName);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @param start 起始页
* @param ent 结束页
* @function 分页查询
* @return 符合条件的集合列表
*/
public List queryForPage(String statementName,int start,int end);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @param parameterObject 修改条件对象(map/javaBean)
* @function 更新一条记录
* @return 更新结果
*/
public int update(String statementName, Object parameterObject);
/**
* @author Wilr
* @date 2011-10-5
* @param statementName Ibatis配置中对应标签语句ID号
* @function 更新一条记录
* @return 更新结果
*/
public int update(String statementName);
接口实现类代码如下:
@Override
public void insert(String statementName, Object parameterObject) {
this.getSqlMapClientTemplate().insert(statementName,parameterObject);
}
@Override
public void insert(String statementName) {
this.getSqlMapClientTemplate().insert(statementName);
}
@Override
public int delete(String statementName, Object parameterObject) {
return this.getSqlMapClientTemplate().delete(statementName,parameterObject);
}
@Override
public int delete(String statementName) {
return this.getSqlMapClientTemplate().delete(statementName);
}
@Override
public Object queryForObject(String statementName, Object parameterObject) {
return this.getSqlMapClientTemplate().queryForObject(statementName,parameterObject);
}
@Override
public Object queryForObject(String statementName) {
return this.getSqlMapClientTemplate().queryForObject(statementName);
}
@Override
public List queryForList(String statementName, Object parameterObjec) {
return this.getSqlMapClientTemplate().queryForList(statementName,parameterObjec);
}
@Override
public List queryForList(String statementName) {
return this.getSqlMapClientTemplate().queryForList(statementName);
}
@Override
public List queryForPage(String statementName,int start,int end) {
return this.getSqlMapClientTemplate().queryForList(statementName, start, end);
}
@Override
public int update(String statementName, Object parameterObject) {
return this.getSqlMapClientTemplate().update(statementName,parameterObject);
}
@Override
public int update(String statementName) {
return this.getSqlMapClientTemplate().update(statementName);
}
第一次在ITEYE写东西,写的不好的地方请多多指教,请各位多多指教!谢谢