`
wangkebin
  • 浏览: 74729 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

浅谈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写东西,写的不好的地方请多多指教,请各位多多指教!谢谢

2
2
分享到:
评论
4 楼 wangkebin 2011-10-11  
gouerli 写道
的确可以省去一部分代码...不知道你用过mybatis没,对于 mybatis新增的接口自动映射功能,这种改进就有点不合适,不知道你有没有好的方法?

mybatis暂时还没研究过,等忙过这段时间研究下 呵呵
3 楼 gouerli 2011-10-11  
的确可以省去一部分代码...不知道你用过mybatis没,对于 mybatis新增的接口自动映射功能,这种改进就有点不合适,不知道你有没有好的方法?
2 楼 wangkebin 2011-10-11  
QiuQiu0034 写道
这样不好吧,虽然将增删改查方法合并了,但是你每次用的时候都要反复进行类型转换

每次使用都要类型转换?我在使用的时候只有查询的获得结果时进行转化,有得有失 呵呵
1 楼 QiuQiu0034 2011-10-11  
这样不好吧,虽然将增删改查方法合并了,但是你每次用的时候都要反复进行类型转换

相关推荐

    spring+struts2+ibatis整合的jar包

    而iBatis则是一个持久层框架,它将SQL语句与Java代码分离,使得数据库操作更加灵活。现在,我们将详细讨论这三个框架的整合以及jar包的作用。 Spring框架的核心是依赖注入,它通过控制反转(IoC)使对象之间的依赖...

    Spring+Struts2+iBatis简要说明

    iBatis是一个持久层框架,它将SQL语句与Java代码分离,使得数据库操作更易于维护和扩展。`sql-map-config.xml`是iBatis的主要配置文件,包含了数据源、事务管理器和SQL映射文件的引用。`ibatis-sqlmaps-XXX.xml`则是...

    Spring+Struts+ibatis讲解

    Spring负责管理对象的生命周期和依赖关系,Struts2提供了MVC架构,而Ibatis作为持久层框架,简化了数据库操作。这样的架构在过去的Java Web开发中非常流行,虽然现在有Spring Boot和MyBatis等更现代的框架,但理解这...

    Spring+Struts2+Ibatis

    而iBatis则是一个持久层框架,它将SQL语句与Java代码分离,提供灵活的数据访问接口。 **Spring框架**: Spring的核心特性包括依赖注入和面向切面编程。依赖注入使得对象之间的关系在运行时动态地组合,降低了组件...

    spring3+struts2+ibatis

    Spring3、Struts2和Ibatis的整合,构建了一个完整的MVC+持久层架构。Spring作为整个应用的调度中心,管理所有对象的生命周期,包括Struts2的Action和Ibatis的SqlSession。Struts2负责接收HTTP请求,调用Action执行...

    spring+struts2+ibatis简单例子

    在IT行业中,Spring、Struts2和iBatis是三个非常重要的开源框架,它们分别在不同的层面上解决了Java Web开发中的问题。Spring作为一款全面的后端应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts...

    Maven+spring+ struts2+ Ibatis+mysql整合增删改查

    Spring还提供了对DAO(Data Access Object)的支持,与各种持久层框架(如JDBC、Hibernate、MyBatis)良好集成,以及对Web框架(如Struts2)的整合。 **Struts2** Struts2是一个基于MVC(Model-View-Controller)...

    struts2+spring+Ibatis框架包

    iBatis是一个持久层框架,它将SQL语句与Java代码分离,降低了数据访问层的复杂性。它允许开发者直接编写SQL,然后通过XML或注解方式配置到iBatis,从而实现数据操作。iBatis与Spring的结合,可以让Spring管理...

    Spring+Struts2+Ibatis整合例子

    iBatis 是一种持久层框架,它将SQL与Java代码分离,避免了传统的DAO(Data Access Object)模式带来的冗余代码。iBatis提供了XML或注解方式来编写SQL语句,使得SQL的编写和维护更加方便。在Spring和iBatis的整合中,...

    spring+struts2+ibatis.Jar

    iBatis是一个持久层框架,它简化了数据库操作,允许开发者将SQL语句直接写在配置文件中,与Java代码进行映射,避免了大量手写JDBC代码。iBatis与ORM(Object-Relational Mapping)框架不同,它更注重SQL的灵活性,...

    spring+struts2+ibatis

    Spring、Struts2和iBatis是Java Web开发中经典的三大框架,它们分别负责不同的职责:Spring作为核心容器管理依赖,Struts2处理HTTP请求和响应,iBatis则作为持久层框架,处理数据库交互。这个"spring+struts2+ibatis...

    spring+struts+ibatis框架搭建

    "Spring+Struts+Ibatis"框架组合就是一种经典的Java Web开发架构,它将控制层、业务逻辑层和数据访问层有效地分离开来,使得项目结构清晰,易于维护。下面将详细解释这三个框架的主要功能和它们如何协同工作。 首先...

    struts2+spring+ibatis+oracle+分页搜索+上传附件实例

    3. **iBatis**:iBatis是一个持久层框架,它将SQL与Java代码分离,提高了可维护性和可扩展性。在这个实例中,iBatis作为数据访问层,负责与Oracle数据库交互,执行分页查询和插入、更新、删除操作。它通过XML或注解...

    Spring+struts2+ibatis整合demo

    在整合Spring时,我们可以使用Spring插件Struts2-Spring-plugin,这允许我们在Struts2动作类中直接注入由Spring管理的bean,从而实现业务层和持久层的解耦。 iBatis是MyBatis的前身,它提供了一种将SQL语句和Java...

    struts2+spring+ibatis+mysql

    这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、轻量级持久层框架Ibatis以及关系型数据库管理系统MySQL。 1. **Struts2**:Struts2是Apache软件基金会下的一...

    Spring + Struts2 + iBatis + Eclipse 整合

    【Spring + Struts2 + iBatis + Eclipse 整合】是Java Web开发中的经典组合,这个整合项目为初学者提供了深入理解这四个组件协同工作的机会。以下将详细阐述这四个关键技术及其整合过程中的关键知识点。 1. Spring...

    ibatis+spring+struts2 整合开发例子

    在IT行业中,集成框架的使用是提升开发效率和优化项目结构的重要手段。"ibatis+spring+struts2 整合开发例子"就是一个典型的Java Web应用集成开发案例,旨在帮助开发者理解和掌握这三大框架的协同工作原理。接下来,...

    spring+struts2+ibatis+ajax 产品销售分析系统

    iBatis作为持久层框架,提供了灵活的SQL映射机制,将数据库操作与业务逻辑分离,避免了传统的DAO模式带来的复杂性。它允许开发者直接编写SQL语句,增强了查询性能,并能有效地处理复杂的关联查询。 Ajax技术在前端...

    Struts+Spring+Ibatis整合的Jar包

    而Ibatis作为一个持久层框架,简化了数据库操作,将SQL语句与Java代码分离。 在"Struts+Spring+Ibatis整合的Jar包"中,这三者通过合理的配置和接口调用相互协同工作,实现了数据访问、业务逻辑处理和用户界面展示的...

Global site tag (gtag.js) - Google Analytics