`
tianzongqi
  • 浏览: 32180 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring 与 Ibatis的结合开发

阅读更多
前几天自己利用下班的时间写了一下spring与IBatis的工程配置,整个工程分为三层:DAO, SERVICE, CONTROLLER。 相信很多人都很熟悉。下面我把我整个工程的配置文件分享给大家,作为处级搭建工程的模版吧。

下图是整个工程的结构图:



接下来我们分别介绍每个配置文件:
1. web.xml 

web.xml主要是用于配置spring MVC的分发器以及listener(监听器)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>PregnantProject</display-name>
	
	<listener>
    	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <servlet>
		<servlet-name>dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
            <param-name>contextConfigLocation</param-name>
			<param-value>
			WEB-INF/applicationContext.xml,
			WEB-INF/controller_config/controller-config.xml
			</param-value>
         </init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
</web-app>



2. applicationContext.xml

在applicationContext中主要配置了spring的事务管理器, 视图解析器, 还有就是数据库连接设置信息。数据库的设置信息也可以配置在database.properties当中,在这里我省去了这一步骤。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

 <!--事务管理DataSourceTransactionManager-->
<bean id="txManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

<!-- 视图解析器 -->
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView"></property>
    <property name="prefix" value="/WEB-INF/views/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>


<!-- 异常解析器 -->
<bean id="simpleMappingExceptionResolver"
    class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
        <props>
            <prop
                key="org.springframework.web.multipart.MaxUploadSizeExceededException">common/fileerror</prop>
        </props>
    </property>
</bean>


<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
	<property name="driverClassName">
		<value>com.mysql.jdbc.Driver</value>
	</property>
	<property name="username">
		<value>root</value>
	</property>
	<property name="password">
		<value>12456</value>
	</property>
	<property name="url">
		<value>jdbc:mysql://127.0.0.1:3306/pregnant</value>
	</property>	
</bean>

</beans>


sqlMapConfig.xml
这个文件很简单,就是ibatis的数据库表操作的配置。详细内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
  <sqlMap resource="com/pregnant/config/bean/UserBaseinfo.xml"/> 
</sqlMapConfig>


UserBaseInfo.xml对应的是ibatis对于数据库model的映射以及操作处理,在这里也把配置操作贴出来给大家:
UserBaseInfo.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
        PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
        "http://www.ibatis.com/dtd/sql-map-2.dtd">

	<sqlMap namespace="UserBase">
		
		<typeAlias alias="UserBaseInfo" type="com.pregnant.model.UserBaseInfo"/>
	
		<select id="getAllPerson" resultClass="UserBaseInfo">	
			SELECT * FROM user_baseInfo;
		</select>
		
		<insert id="insertOneUser" parameterClass="java.util.Map">
			insert into user_baseInfo values(#userName#,#userEmail#,#userPhone#,#userPasswd#)
		</insert>
		
		<select id="getUserByEmail" resultClass="UserBaseInfo">
		    select * from user_baseInfo where userEmail = #email#
		</select>
	
	</sqlMap>


上面也介绍完了ibatis的接触配置,那么下面我们将介绍工程各个层级之间的配置:

userbaseinfo_DAO.xml

在这里我们配置了SqlMapClientFactoryBean, 它完成了spring 与ibatis的结合。这里不多讲了,大家自己看配置文件一下就明白了。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

<import resource="../applicationContext.xml"/>

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
	<property name="dataSource">
		<ref bean="dataSource"/>
	</property>
	
  <property name="configLocation">
     <value>WEB-INF/dao_config/sqlMapConfig.xml</value>
  </property>
</bean> 

<bean id="userBaseInfoDao" class="com.pregnant.daoImpl.UserBaseInfoDaoimpl">
	<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>

</beans>


配置到这里我们应该吧DAO层的一个类的代码贴出来,让大家看看如何调用spring提供的ORM来操作数据库。从配置文件中已经可以看出就是通过sqlmapclient来进行。

package com.pregnant.daoImpl;

import java.util.List;
import java.util.Map;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.pregnant.dao.IUserBaseInfoDao;
import com.pregnant.model.UserBaseInfo;

public class UserBaseInfoDaoimpl extends SqlMapClientDaoSupport implements IUserBaseInfoDao{

	public List<UserBaseInfo> getAllUser(){
		List<UserBaseInfo> list = getSqlMapClientTemplate().queryForList("UserBase.getAllPerson");
		return list;
	}

	@Override
	public UserBaseInfo getUserByEmail(String email) {
		UserBaseInfo oneUser = (UserBaseInfo) getSqlMapClientTemplate().queryForObject(email);	
		return oneUser;
	}

	@Override
	public void insertUserbaseInfo(Map info) {
		getSqlMapClientTemplate().insert("insertOneUser", info);
		return;
	}	
}



接下来的SERVCE层和controller实际上就是利用spring的IOC来注入前一层次的类进行业务操作。这里不做过多介绍只是把代码贴给大家:


one-service.xml


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

<import resource="../dao_config/userbaseinfo_dao.xml"/>

<bean id="userBaseInfoService" class="com.pregnant.serviceImpl.UserBaseInfoServiceImpl">
	<property name="userBaseInfoDao">
		<ref bean="userBaseInfoDao"/>	
    </property>
</bean>

</beans>


controller.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

<import resource="../service_config/one_service.xml"/>


<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                 <props>
                       <prop key="userBaseHandle.do">userBaseInfoController</prop>
                 </props>
            </property>
</bean>

<bean id="paraMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
           <property name="paramName" value="whichMethod"/>
</bean>

<bean id="userBaseInfoController" class="com.pregnant.controller.UserBaseInfoController">
      <property name="methodNameResolver">
            <ref bean="paraMethodResolver"/>
      </property>
      
      <property name="userBaseInfoService">
			<ref bean="userBaseInfoService"/>	
      </property>
</bean>


在controller层为了减少java类的生成,我们利用了spring方法多处理器来进行方法的映射。

值此整个工程配置文件结束。希望对大家有点帮助。
  • 大小: 20.1 KB
分享到:
评论

相关推荐

    Spring与iBATIS的集成

    Spring与iBATIS的集成是Java企业级应用开发中常见的技术组合之一。通过将Spring的强大功能与iBATIS的灵活性结合起来,可以构建出高性能、高可维护性的应用程序。了解并掌握这两者的集成方式对于Java开发者来说是非常...

    spring与ibatis整合集成实例

    Spring 和 iBATIS 是两个非常重要的 Java 开发框架,它们在企业级应用开发中有着广泛的应用。Spring 是一个全面的后端开发框架,提供依赖注入、面向切面编程、事务管理等功能;而 iBATIS 是一个持久层框架,它简化了...

    Spring+ibatis 保留ibatis事务的配置

    根据提供的文件信息,本文将详细解析如何在Spring与ibatis框架整合时,通过特定配置来保留ibatis事务处理机制,并实现对事务的自定义控制。文章将围绕标题、描述及部分代码片段展开讨论。 ### Spring与ibatis整合...

    Spring与iBATIS的集成示例代码

    以上就是Spring与iBATIS集成的基本步骤。这个示例代码可以帮助初学者理解如何在实际项目中整合这两个框架,从而更高效地进行数据库操作。通过Spring的管理,可以轻松地实现事务控制、AOP等高级功能,同时利用iBATIS...

    spring struts ibatis 开发框架

    Spring、Struts和iBatis是Java开发领域中经典的三大开源框架,它们分别在不同的层次上解决了企业级应用开发中的问题。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能,极大地...

    struts+spring+ibatis的Demo

    这个"struts+spring+ibatis的Demo"压缩包文件提供了这三个框架集成使用的示例代码,旨在帮助开发者理解和学习如何将它们有效地结合在一起。 **Struts 2框架** Struts 2是一个基于MVC设计模式的Web应用框架,它继承...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    通过这种方式,开发人员可以利用Struts2的控制层、Spring的服务层管理和依赖注入,以及Hibernate或Ibatis的数据访问能力,构建出高效且可扩展的Web应用。这些整合示例可以帮助初学者快速理解各个组件的交互方式,...

    基于struts+spring+ibatis的J2EE开发

    此外,Spring的ORM支持与Ibatis的结合,使得数据访问更加灵活和高效。 Ibatis是一个不同于Hibernate的SQL映射工具,它允许开发者直接编写SQL语句,而不是依赖于ORM框架自动生成,这样可以在牺牲部分自动化的同时,...

    spring3.2与Ibatis整合

    7. **测试**:在Spring与iBatis整合后,可以使用Spring的`@Transactional`注解进行单元测试,确保每个方法都在独立的事务中执行,便于模拟各种数据状态并进行断言。 以上就是关于"Spring 3.2与iBatis整合"及"在...

    Spring+ibatis的jar包

    2. **事务一致性**:Spring 的事务管理与 iBATIS 结合,可以确保复杂的业务操作在单个事务内完成,保证数据一致性。 3. **开发效率**:Spring 提供的自动化配置和 iBATIS 的简单映射减少了大量手动代码,提高了开发...

    spring-ibatis简单集成

    在IT行业中,Spring框架与iBatis的集成是常见的数据访问解决方案,特别是在Java Web开发中。...通过上述步骤,开发者可以快速地在项目中实现Spring与iBatis的整合,从而更好地管理和控制数据库操作。

    spring+ibatis配置实例

    在IT行业中,Spring框架与iBatis(现为MyBatis)是两个广泛使用的开源库,主要用于构建企业级Java应用程序。本实例将介绍如何将它们整合以实现数据访问层的操作。"spring+ibatis配置实例"这个项目提供了一个完整的...

    cairngorm简单入门实例(结合spring+ibatis)

    **Spring与iBatis集成** 在本实例中,`Spring`作为服务层的框架,用于管理对象的生命周期和依赖注入。Spring通过其IoC(Inversion of Control)容器,能够轻松地配置和管理应用程序组件,如数据库连接池、DAO(Data...

    基于struts+spring+ibatis的 J2EE 开发.rar

    这个“基于struts+spring+ibatis的 J2EE 开发.rar”压缩包文件很可能是提供了一个详尽的教程或项目实例,帮助开发者理解和掌握这三个框架的集成应用。 **Struts框架**是MVC(Model-View-Controller)设计模式的实现...

    spring3 ibatis整合实例

    在本项目中,Spring 3作为核心框架,负责管理对象的生命周期和事务,以及与iBatis的集成。 2. **iBatis**:iBatis 是一个SQL映射框架,它将SQL语句和Java代码分离,使得开发者可以更加灵活地处理数据库操作。iBatis...

    spring_ibatis整合案例

    在IT行业中,Spring框架与iBatis(现为MyBatis)的整合是常见的...通过以上步骤,我们完成了Spring与iBatis的整合,实现了数据访问层的高效开发。在实际项目中,可以根据需求进行调整和优化,提高系统的稳定性和性能。

    spring+ibatis+oracle分页缓存源码

    在本项目中,Spring作为核心框架,负责管理各种组件,如数据库连接、事务管理以及与iBatis的集成。 iBatis则是一个持久层框架,它将SQL语句与Java代码分离,提高了代码的可维护性和灵活性。在Spring+iBatis的组合中...

Global site tag (gtag.js) - Google Analytics