Spring3.05简单集成MyBatis3.03

1. Pojo & mapper配置

 

  1. package  cn.java.forum.domain;  
  2.   
  3. import  java.io.Serializable;  
  4. import  java.util.Date;  
  5.   
  6. public   class  People  implements  Serializable{  
  7.    
  8.     private   static   final   long  serialVersionUID = 1L;  
  9.   
  10.     private   int  id;  
  11.       
  12.     private  String username;  
  13.       
  14.     private  String password;  
  15.       
  16.     private  String realName;  
  17.       
  18.     private  Date registerTime;  
  19.   
  20.     @Override   
  21.     public  String toString() {  
  22.         return   "< id:" +id+ ", username:" +username+ ", password:" +password+ ", realName:" +realName  
  23.                  +", registerTime:" +registerTime.toLocaleString()+ " >" ;  
  24.     }  
  25.       
  26.     public   int  getId() {  
  27.         return  id;  
  28.     }  
  29.   
  30.     public   void  setId( int  id) {  
  31.         this .id = id;  
  32.     }  
  33.   
  34.     public  String getUsername() {  
  35.         return  username;  
  36.     }  
  37.   
  38.     public   void  setUsername(String username) {  
  39.         this .username = username;  
  40.     }  
  41.   
  42.     public  String getPassword() {  
  43.         return  password;  
  44.     }  
  45.   
  46.     public   void  setPassword(String password) {  
  47.         this .password = password;  
  48.     }  
  49.   
  50.     public  String getRealName() {  
  51.         return  realName;  
  52.     }  
  53.   
  54.     public   void  setRealName(String realName) {  
  55.         this .realName = realName;  
  56.     }  
  57.   
  58.     public  Date getRegisterTime() {  
  59.         return  registerTime;  
  60.     }  
  61.   
  62.     public   void  setRegisterTime(Date registerTime) {  
  63.         this .registerTime = registerTime;  
  64.     }  
  65. }  

package cn.java.forum.domain; import java.io.Serializable; import java.util.Date; public class People implements Serializable{ private static final long serialVersionUID = 1L; private int id; private String username; private String password; private String realName; private Date registerTime; @Override public String toString() { return "< id:"+id+", username:"+username+", password:"+password+", realName:"+realName +", registerTime:"+registerTime.toLocaleString()+" >"; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRealName() { return realName; } public void setRealName(String realName) { this.realName = realName; } public Date getRegisterTime() { return registerTime; } public void setRegisterTime(Date registerTime) { this.registerTime = registerTime; } }

  1. <? xml   version = "1.0"   encoding = "UTF-8"   ?>   
  2.   
  3. <!DOCTYPE mapper        
  4.     PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"        
  5.     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">   
  6.   
  7. < mapper   namespace = "cn.java.forum.domain.mapper.PeopleMapper" >   
  8.     <!--   
  9.     <cache eviction="FIFO" flushInterval="30000" readOnly="true" size="512"></cache>  
  10.     -->   
  11.     
  12.     < select   id = "allPeople"   resultType = "People" >   
  13.         select * from People  
  14.     </ select >   
  15.   
  16. </ mapper >   

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.java.forum.domain.mapper.PeopleMapper"> <!-- <cache eviction="FIFO" flushInterval="30000" readOnly="true" size="512"></cache> --> <select id="allPeople" resultType="People"> select * from People </select> </mapper>

2. mapper接口

  1. package  cn.java.forum.domain.mapper;  
  2.   
  3. import  java.util.List;  
  4.   
  5. import  cn.java.forum.domain.People;  
  6.   
  7. public   interface  PeopleMapper {  
  8.      List<People> allPeople();  
  9. }  

package cn.java.forum.domain.mapper; import java.util.List; import cn.java.forum.domain.People; public interface PeopleMapper { List<People> allPeople(); }

3.service接口

  1. package  cn.java.forum.domain.service;  
  2.   
  3. import  java.util.List;  
  4.   
  5. import  cn.java.forum.domain.People;  
  6.   
  7. public   interface  PeopleService {  
  8.     List<People> allPeople();  
  9. }  

package cn.java.forum.domain.service; import java.util.List; import cn.java.forum.domain.People; public interface PeopleService { List<People> allPeople(); }

4. service实现,mapper经过注入。

  1. package  cn.java.forum.domain.service.impl;  
  2.   
  3. import  java.util.List;  
  4.   
  5. import  cn.java.forum.domain.People;  
  6. import  cn.java.forum.domain.mapper.PeopleMapper;  
  7. import  cn.java.forum.domain.service.PeopleService;  
  8.   
  9. public   class  PeopleServiceBean  implements  PeopleService{  
  10.   
  11.     /* 需要注入 */   
  12.     private  PeopleMapper mapper;  
  13.   
  14.     public  PeopleMapper getMapper() {  
  15.         return  mapper;  
  16.     }  
  17.   
  18.     public   void  setMapper(PeopleMapper mapper) {  
  19.         this .mapper = mapper;  
  20.     }  
  21.   
  22.     @Override   
  23.     public  List<People> allPeople() {  
  24.         return  mapper.allPeople();  
  25.     }  
  26.   
  27. }  

package cn.java.forum.domain.service.impl; import java.util.List; import cn.java.forum.domain.People; import cn.java.forum.domain.mapper.PeopleMapper; import cn.java.forum.domain.service.PeopleService; public class PeopleServiceBean implements PeopleService{ /* 需要注入 */ private PeopleMapper mapper; public PeopleMapper getMapper() { return mapper; } public void setMapper(PeopleMapper mapper) { this.mapper = mapper; } @Override public List<People> allPeople() { return mapper.allPeople(); } }

基本的代码完成之后。就是配置文件了。

---------------------------------------------------华丽的分割线---------------------------------------------------

1.完整的spring主配置文件,包含了事务,mapper,数据源等的配置

  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2.   
  3. < beans   xmlns = "http://www.springframework.org/schema/beans"   
  4.     xmlns:aop = "http://www.springframework.org/schema/aop"   
  5.     xmlns:context = "http://www.springframework.org/schema/context"   
  6.     xmlns:tx = "http://www.springframework.org/schema/tx"   
  7.     xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"   
  8.     xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" >   
  9.        
  10.     <!-- ============================== 数据库配置 ==================================== -->   
  11.     <!-- 数据源配置 -->   
  12.     < bean   name = "dataSource"   
  13.         class = "org.springframework.jdbc.datasource.DriverManagerDataSource" >   
  14.         < property   name = "driverClassName" >   
  15.             < value > com.mysql.jdbc.Driver </ value >   
  16.         </ property >   
  17.         < property   name = "url" >   
  18.             < value > jdbc:mysql://localhost:3306/forum </ value >   
  19.         </ property >   
  20.         < property   name = "username" >   
  21.             < value > root </ value >   
  22.         </ property >   
  23.         < property   name = "password" >   
  24.             < value > 123456 </ value >   
  25.         </ property >   
  26.     </ bean >   
  27.       
  28.     <!-- ================================ MyBatis SqlSession配置 ========================================= -->   
  29.     <!-- 使用SqlSessionFactoryBean工厂产生SqlSession对象,方便后期注入Dao -->   
  30.     < bean   id = "sqlSessionFactory"   class = "org.mybatis.spring.SqlSessionFactoryBean" >   
  31.         < property   name = "dataSource"   ref = "dataSource"   />   
  32.         < property   name = "configLocation"   value = "classpath:Configuration.xml" > </ property >   
  33.     </ bean >   
  34.    
  35.     <!-- ================================= mapper ============================================= -->   
  36.     <!-- 人员mapper -->   
  37.     < bean   id = "peopleMapper"   class = "org.mybatis.spring.mapper.MapperFactoryBean" >   
  38.         < property   name = "sqlSessionFactory"   ref = "sqlSessionFactory" />   
  39.         <!-- mapper的位置 -->   
  40.         < property   name = "mapperInterface"   value = "cn.java.forum.domain.mapper.PeopleMapper" />   
  41.     </ bean >   
  42.       
  43.     <!-- ================================= 事务控制相关 ============================================= -->   
  44.     < bean   name = "transactionManager"   class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" >      
  45.         < property   name = "dataSource"   ref = "dataSource" > </ property >   
  46.     </ bean >      
  47.       
  48.     < tx:advice   id = "txAdvice"   transaction-manager = "transactionManager" >   
  49.         < tx:attributes >   
  50.             < tx:method   name = "delete*"   propagation = "REQUIRED"   read-only = "false"    
  51.                        rollback-for = "java.lang.Exception"   no-rollback-for = "java.lang.RuntimeException" />   
  52.             < tx:method   name = "insert*"   propagation = "REQUIRED"   read-only = "false"    
  53.                        rollback-for = "java.lang.RuntimeException"   />   
  54.             < tx:method   name = "update*"   propagation = "REQUIRED"   read-only = "false"    
  55.                        rollback-for = "java.lang.Exception"   />   
  56.               
  57.             < tx:method   name = "find*"   propagation = "SUPPORTS" />   
  58.             < tx:method   name = "get*"   propagation = "SUPPORTS" />   
  59.             < tx:method   name = "select*"   propagation = "SUPPORTS" />   
  60.         </ tx:attributes >   
  61.     </ tx:advice >    
  62.       
  63.     <!-- 引入service层的spring配置 -->   
  64.     < import   resource = "applicationContext-service.xml" />    
  65. </ beans >   

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" 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-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- ============================== 数据库配置 ==================================== --> <!-- 数据源配置 --> <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/forum</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123456</value> </property> </bean> <!-- ================================ MyBatis SqlSession配置 ========================================= --> <!-- 使用SqlSessionFactoryBean工厂产生SqlSession对象,方便后期注入Dao --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:Configuration.xml"></property> </bean> <!-- ================================= mapper ============================================= --> <!-- 人员mapper --> <bean id="peopleMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> <!-- mapper的位置 --> <property name="mapperInterface" value="cn.java.forum.domain.mapper.PeopleMapper"/> </bean> <!-- ================================= 事务控制相关 ============================================= --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/> <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.RuntimeException" /> <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" /> <tx:method name="find*" propagation="SUPPORTS"/> <tx:method name="get*" propagation="SUPPORTS"/> <tx:method name="select*" propagation="SUPPORTS"/> </tx:attributes> </tx:advice> <!-- 引入service层的spring配置 --> <import resource="applicationContext-service.xml"/> </beans>

2.MyBatis的配置文件,暂时只配置了 别名 和 mapper

  1. <? xml   version = "1.0"   encoding = "UTF-8"   ?>   
  2.   
  3. <!DOCTYPE configuration        
  4.     PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"        
  5.     "http://mybatis.org/dtd/mybatis-3-config.dtd">   
  6.       
  7. < configuration >   
  8.    
  9.     < typeAliases >   
  10.          < typeAlias   type = "cn.java.forum.domain.Grade"   alias = "Grade" />   
  11.          < typeAlias   type = "cn.java.forum.domain.People"   alias = "People" />   
  12.          < typeAlias   type = "cn.java.forum.domain.Response"   alias = "Response" />   
  13.          < typeAlias   type = "cn.java.forum.domain.Topic"   alias = "Topic" />   
  14.     </ typeAliases >   
  15.       
  16.     <!--  spring配置之后 这些就可以省略了  
  17.     < environments   default = "development" >   
  18.         < environment   id = "development" >   
  19.             < transactionManager   type = "JDBC" >   
  20.             </ transactionManager >   
  21.               
  22.             < dataSource   type = "POOLED" >   
  23.                 < property   name = "driver"   
  24.                     value = "com.mysql.jdbc.Driver"   />   
  25.                 < property   name = "url"   
  26.                     value = "jdbc:mysql://localhost:3306/forum"   />   
  27.                 < property   name = "username"   value = "root"   />   
  28.                 < property   name = "password"   value = "123456"   />   
  29.             </ dataSource >   
  30.         </ environment >   
  31.     </ environments >  -- >   
  32.       
  33.     < mappers >   
  34.         < mapper   resource = "cn/java/forum/domain/config/Grade.xml" />   
  35.         < mapper   resource = "cn/java/forum/domain/config/People.xml" />   
  36.         < mapper   resource = "cn/java/forum/domain/config/Response.xml" />   
  37.         < mapper   resource = "cn/java/forum/domain/config/Topic.xml" />   
  38.     </ mappers >   
  39.   
  40. </ configuration >   

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias type="cn.java.forum.domain.Grade" alias="Grade"/> <typeAlias type="cn.java.forum.domain.People" alias="People"/> <typeAlias type="cn.java.forum.domain.Response" alias="Response"/> <typeAlias type="cn.java.forum.domain.Topic" alias="Topic"/> </typeAliases> <!-- spring配置之后 这些就可以省略了 <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> </transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/forum" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> --> <mappers> <mapper resource="cn/java/forum/domain/config/Grade.xml"/> <mapper resource="cn/java/forum/domain/config/People.xml"/> <mapper resource="cn/java/forum/domain/config/Response.xml"/> <mapper resource="cn/java/forum/domain/config/Topic.xml"/> </mappers> </configuration>

3. service层的配置文件

  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2.   
  3. < beans   xmlns = "http://www.springframework.org/schema/beans"   
  4.     xmlns:aop = "http://www.springframework.org/schema/aop"   
  5.     xmlns:context = "http://www.springframework.org/schema/context"   
  6.     xmlns:tx = "http://www.springframework.org/schema/tx"   
  7.     xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"   
  8.     xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" >   
  9.        
  10.     < bean   id = "peopleService"   class = "cn.java.forum.domain.service.impl.PeopleServiceBean" >   
  11.          < property   name = "mapper" >   
  12.              < ref   bean = "peopleMapper" />   
  13.          </ property >   
  14.     </ bean >   
  15. </ beans >   

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" 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-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="peopleService" class="cn.java.forum.domain.service.impl.PeopleServiceBean"> <property name="mapper"> <ref bean="peopleMapper"/> </property> </bean> </beans>

4.最后,是启动spring的配置 WEB.XML

  1. < context-param >   
  2.     < param-name > contextConfigLocation </ param-name >   
  3.     < param-value >   
  4.         classpath:applicationContext.xml  
  5.     </ param-value >   
  6. </ context-param >   
  7. < listener >   
  8.     < listener-class >   
  9.         org.springframework.web.context.ContextLoaderListener  
  10.     </ listener-class >   
  11. </ listener >   

<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:applicationContext.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>

ok  写一个servlet来测试(其实类也可以的。)。

  1. package  servlet;  
  2.   
  3. import  java.io.IOException;  
  4. import  java.io.PrintWriter;  
  5.   
  6. import  javax.servlet.ServletException;  
  7. import  javax.servlet.http.HttpServlet;  
  8. import  javax.servlet.http.HttpServletRequest;  
  9. import  javax.servlet.http.HttpServletResponse;  
  10.   
  11. import  org.springframework.context.ApplicationContext;  
  12. import  org.springframework.context.support.ClassPathXmlApplicationContext;  
  13.   
  14. import  cn.java.forum.domain.service.PeopleService;  
  15.   
  16. public   class  TestServlet  extends  HttpServlet {  
  17.   
  18.     private   static   final   long  serialVersionUID = 1L;  
  19.   
  20.     public  TestServlet() {  
  21.         super ();  
  22.     }  
  23.   
  24.     public   void  destroy() {  
  25.         super .destroy();  
  26.     }  
  27.   
  28.     public   void  doGet(HttpServletRequest request, HttpServletResponse response)  
  29.             throws  ServletException, IOException {  
  30.         doPost(request, response);  
  31.     }  
  32.   
  33.     public   void  doPost(HttpServletRequest request, HttpServletResponse response)  
  34.             throws  ServletException, IOException {  
  35.   
  36.         response.setContentType("text/html" );  
  37.         PrintWriter out = response.getWriter();  
  38.            
  39.         ApplicationContext ctx = new  ClassPathXmlApplicationContext( "applicationContext.xml" );  
  40.         PeopleService peopleService = (PeopleService) ctx.getBean("peopleService" );  
  41.         System.out.println("the list:" +peopleService.allPeople());  
  42.         out.flush();  
  43.         out.close();  
  44.     }  
  45.   
  46.     public   void  init()  throws  ServletException {  
  47.     }  
  48.   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值