MyBatis3整合SpringMVC.docx
- 文档编号:27837019
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:40
- 大小:43.07KB
MyBatis3整合SpringMVC.docx
《MyBatis3整合SpringMVC.docx》由会员分享,可在线阅读,更多相关《MyBatis3整合SpringMVC.docx(40页珍藏版)》请在冰豆网上搜索。
MyBatis3整合SpringMVC
MyBatis整合Spring
开发环境:
System:
Windows
WebBrowser:
IE6+、Firefox3+
JavaEEServer:
tomcat5.0.2.8、tomcat6
IDE:
eclipse、MyEclipse8
Database:
MySQL
开发依赖库:
JavaEE5、Spring3.0.5、Mybatis3.0.4、myBatis-spring-1.0、junit4.8.2
Email:
hoojo_@
Blog:
1、首先新建一个WebProject命名为MyBatisForSpring,新建项目时,使用JavaEE5的lib库。
然后手动添加需要的jar包,所需jar包如下:
2、添加spring的监听及springMVC的核心Servlet,web.xml内容,内容如下:
--加载Spring容器配置-->
--设置Spring容器加载配置文件路径-->
applicationContext-*.xml
--配置Spring核心控制器-->
--解决工程编码过滤器-->
3、在WEB-INF目录中添加dispatcher.xml,内容如下:
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans" xmlns: context="http: //www.springframework.org/schema/context" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-3.0.xsd http: //www.springframework.org/schema/context http: //www.springframework.org/schema/context/spring-context-3.0.xsd"> --注解探测器--> component-scanbase-package="com.hoo"/> --annotation默认的方法映射适配器--> 4、在src目录下添加applicationContext-common.xml,内容如下: xmlversion="1.0"encoding="UTF-8"? > //www.springframework.org/schema/beans" xmlns: aop="http: //www.springframework.org/schema/aop" xmlns: tx="http: //www.springframework.org/schema/tx" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-3.0.xsd http: //www.springframework.org/schema/aop http: //www.springframework.org/schema/aop/spring-aop-3.0.xsd http: //www.springframework.org/schema/tx http: //www.springframework.org/schema/tx/spring-tx-3.0.xsd"> --配置DataSource数据源--> mysql: //10.0.0.131: 3306/ash2"/> --配置SqlSessionFactoryBean--> mybatis.xml"/> --mapper和resultmap配置路径--> --表示在com.hoo.resultmap包或以下所有目录中,以-resultmap.xml结尾所有文件--> com/hoo/resultmap/**/*-resultmap.xml com/hoo/entity/*-resultmap.xml com/hoo/mapper/**/*-mapper.xml --单独配置一个Mapper;这种模式就是得给每个mapper接口配置一个bean--> -- --> --通过扫描的模式,扫描目录在com/hoo/mapper目录下,所有的mapper都继承SqlMapper接口的接口,这样一个bean就可以了--> 上面的配置最先配置的是DataSource,这里采用的是jdbc的DataSource; 然后是SqlSessionFactoryBean,这个配置比较关键。 SqlSessionFactoryBean需要注入DataSource数据源,其次还要设置configLocation也就是mybatis的xml配置文件路径,完成一些关于mybatis的配置,如settings、mappers、plugin等; 如果使用mapperCannerConfigurer模式,需要设置扫描根路径也就是你的mybatis的mapper接口所在包路径;凡是markerInterface这个接口的子接口都参与到这个扫描,也就是说所有的mapper接口继承这个SqlMapper。 如果你不使用自己的transaction事务,就使用MapperScannerConfigurer来完成SqlSession的打开、关闭和事务的回滚操作。 在此期间,出现数据库操作的如何异常都会被转换成DataAccessException,这个异常是一个抽象的类,继承RuntimeException; 5、SqlMapper内容如下: packagecom.hoo.mapper; /** *function: 所有的Mapper继承这个接口 *@authorhoojo *@createDate2011-4-12下午04: 00: 31 *@fileSqlMapper.java *@packagecom.hoo.mapper *@projectMyBatisForSpring *@blog *@emailhoojo_@ *@version1.0 */ publicinterfaceSqlMapper{ } 6、实体类和ResultMap.xml packagecom.hoo.entity; importjava.io.Serializable; importjavax.persistence.Entity; @Entity publicclassAccountimplementsSerializable{ privatestaticfinallongserialVersionUID=-7970848646314840509L; privateIntegeraccountId; privateIntegerstatus; privateStringusername; privateStringpassword; privateStringsalt; privateStringemail; privateIntegerroleId; //getter、setter @Override publicStringtoString(){ returnthis.accountId+"#"+this.status+"#"+this.username+"#"+ this.password+"#"+this.email+"#"+this.salt+"#"+this.roleId; } } account-resultmap.xml xmlversion="1.0"encoding="UTF-8"? > DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN" "http: //mybatis.org/dtd/mybatis-3-mapper.dtd"> 7、在src目录中添加applicationContext-beans.xml内容如下: xmlversion="1.0"encoding="UTF-8"? > //www.springframework.org/schema/beans" xmlns: context="http: //www.springframework.org/schema/context" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation="http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-3.0.xsd http: //www.springframework.org/schema/context http: //www.springframework.org/schema/context/spring-context-3.0.xsd"> --注解探测器,在JUnit测试的时候需要--> component-scanbase-package="com.hoo"/> 这里配置bean对象,一些不能用annotation注解的对象就可以配置在这里 8、在src目录中添加mybatis.xml,内容如下: xmlversion="1.0"encoding="UTF-8"? > DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http: //mybatis.org/dtd/mybatis-3-config.dtd"> --别名--> 在这个文件放置一些全局性的配置,如handler、objectFactory、plugin、以及mappers的映射路径(由于在applicationContext-common中的SqlSessionFactoryBean有配置mapper的location,这里就不需要配置)等 9、AccountMapper接口,内容如下: packagecom.hoo.mapper; importjava.util.List; importorg.apache.ibatis.annotations.Select; importcom.hoo.entity.Account; /** *function: 继承SqlMapper,MyBatis数据操作接口;此接口无需实现类 *@authorhoojo *@createDate2010-12-21下午05: 21: 20 *@fileAccountMapper.java *@packagecom.hoo.mapper *@projectMyBatis *@blog *@emailhoojo_@ *@version1.0 */ publicinterfaceAccountMapperextendsSqlMapper{ publicList publicAccountgetAccount(); publicAccountgetAccountById(Stringid); publicAccountgetAccountByNames(Stringspring); @Select("select*fromaccountwhereusername=#{name}") publicAccountgetAccountByName(Stringname); publicvoidaddAccount(Accountaccount); publicvoideditAccount(Accountaccount); publicvoidremoveAccount(intid); } 这个接口我们不需要实现,由mybatis帮助我们实现,我们通过mapper文件配置sql语句即可完成接口的实现。 然后这个接口需要继承SqlMapper接口,不然在其他地方就不能从Spring容器中拿到这个mapper接口,也就是说当我们注入这个接口的时候将会失败。 当然,你不继承这个接口也可以。 那就是你需要给每个mapper配置一个bean。 配置方法如下: 这里的MapperFactoryBean可以帮助我们完成Session的打开、关闭等操作 10、在com.hoo.mapper也就是在AccountMapper接口的同一个包下,添加account-mapper.xml,内容如下: xmlversion="1.0"encoding="UTF-8"? > DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN" "http: //mybatis.org/dtd/mybatis-3-mapper.dtd"> --namespace和定义的Mapper接口对应,并实现其中的方法--> --id和mapper接口中的方法名对应,resultType使用mybatis.xml中的别名--> [CDATA[ select*fromaccountlimit1 ]]>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MyBatis3 整合 SpringMVC