浅谈Spring+Struts+Ibatis项目结构下的持久层优化

      由于工作原因,这段时间需要接触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写东西,写的不好的地方请多多指教,请各位多多指教!谢谢

猜你喜欢

转载自wilr.iteye.com/blog/1189330