设为首页 收藏本站
查看: 788|回复: 0

[经验分享] spring与mybatis整合方法

[复制链接]

尚未签到

发表于 2016-11-25 04:29:02 | 显示全部楼层 |阅读模式
  本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接
http://code.google.com/p/mybatis/下载到。

  1、采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数。
  (1)Spring配置文件:

[java] view plain copy
    1.        <!-- 引入jdbc配置文件 --> 
    2.        <context:property-placeholder location="jdbc.properties" />  
    3.     
    4.         <!--创建jdbc数据源 --> 
    5.         <bean id="dataSource"   class = "org.apache.commons.dbcp.BasicDataSource"  destroy-method= "close" > 
    6.           <property name="driverClassName"  value= "${driver}" /> 
    7.           <property name="url"  value= "${url}" /> 
    8.           <property name="username"  value= "${username}" /> 
    9.           <property name="password"  value= "${password}" /> 
    10.           <property name="initialSize"  value= "${initialSize}" /> 
    11.           <property name="maxActive"  value= "${maxActive}" /> 
    12.           <property name="maxIdle"  value= "${maxIdle}" /> 
    13.           <property name="minIdle"  value= "${minIdle}" /> 
    14.         </bean> 
    15.     
    16.         <!-- 创建SqlSessionFactory,同时指定数据源--> 
    17.         <bean id="sqlSessionFactory"   class = "org.mybatis.spring.SqlSessionFactoryBean" >  
    18.         <property name="dataSource"  ref= "dataSource"  />  
    19.         </bean>  
    20.     
    21.         <!--创建数据映射器,数据映射器必须为接口--> 
    22.         <bean id="userMapper"   class = "org.mybatis.spring.mapper.MapperFactoryBean" >  
    23.         <property name="mapperInterface"  value= "com.xxt.ibatis.dbcp.dao.UserMapper"  />  
    24.         <property name="sqlSessionFactory"  ref= "sqlSessionFactory"  />  
    25.         </bean> 
    26.     
    27.         <bean id="userDaoImpl2"   class = "com.xxt.ibatis.dbcp.dao.impl.UserDaoImpl2" > 
    28.         <property name="userMapper"  ref= "userMapper" /> 
    29.    </bean> 
 
  (2)数据映射器UserMapper,代码如下:

[java] view plain copy
    1.    public   interface  UserMapper { 
    2.          @Select ( "SELECT * FROM user WHERE id = #{userId}" )  
    3.          User getUser(@Param ( "userId" )  long  id);  
    4.    } 
 
    (3) dao接口类UserDao,代码如下:

[java] view plain copy
    1.    public   interface  UserDao { 
    2.        public  User getUserById(User user); 
    3.    } 
 
   (4)dao实现类UserDaoImpl2,,代码如下:

[java] view plain copy
    1.    public   class  UserDaoImpl2  implements  UserDao { 
    2.         private  UserMapper userMapper;  
    3.     
    4.         public   void  setUserMapper(UserMapper userMapper) {  
    5.             this .userMapper = userMapper;  
    6.         }   
    7.     
    8.         public  User getUserById(User user) { 
    9.            return  userMapper.getUser(user.getId());  
    10.         } 
    11.     } 
 

  2、采用接口org.apache.ibatis.session.SqlSession的实现类org.mybatis.spring.SqlSessionTemplate。
    mybatis中, sessionFactory可由SqlSessionFactoryBuilder.来创建。MyBatis- Spring 中,使用了SqlSessionFactoryBean来替代。SqlSessionFactoryBean有一个必须属性 dataSource,另外其还有一个通用属性configLocation(用来指定mybatis的xml配置文件路径)。
   (1)Spring配置文件:
  
[java] view plain copy
    1.    <bean id= "sqlSessionFactory"   class = "org.mybatis.spring.SqlSessionFactoryBean" >  
    2.       <property name="dataSource"  ref= "dataSource"  /> 
    3.       <property  name="configLocation"   value= "classpath:sqlMapConfig.xml" /> 
    4.       <!-- <property  name="mapperLocations"   value= "classpath*:com/xxt/ibatis/dbcp/domain/user.map.xml" /   >  --> 
    5.    </bean> 
    6.     
    7.     <bean id="sqlSession"       class = "org.mybatis.spring.SqlSessionTemplate" >  
    8.          <constructor-arg index="0"  ref= "sqlSessionFactory"  />  
    9.    </bean> 
    10.     
    11.    <bean id="userDaoImpl3"   class = "com.xxt.ibatis.dbcp.dao.impl.UserDaoImpl3" > 
    12.       <!--注入SqlSessionTemplate实例 --> 
    13.       <property name="sqlSessionTemplate"  ref= "sqlSession"  />  
    14.       <!--也可直接注入SqlSessionFactory实例,二者都指定时,SqlSessionFactory失效 --> 
    15.       <!-- <property name="sqlSessionFactory"  ref= "sqlSessionFactory"  />  
    16.    --> 
    17.    </bean> 
 
    (2)mybatis总配置文件sqlMapConfig.xml:

[xml] view plain copy
    1.    < configuration >  
    2.       < typeAliases >  
    3.         < typeAlias   type = "com.xxt.ibatis.dbcp.domain.User"   alias = "User"   />  
    4.      </ typeAliases >  
    5.       < mappers >  
    6.          < mapper   resource = "com/xxt/ibatis/dbcp/domain/user.map.xml"   />  
    7.         </ mappers >  
    8.     </ configuration >  
 
    (3)实体类映射文件user.map.xml:

[java] view plain copy
    1.    <mapper namespace= "com.xxt.ibatis.dbcp.domain.User" > 
    2.         <resultMap type="User"  id= "userMap" > 
    3.            <id property="id"  column= "id"  /> 
    4.            <result property="name"  column= "name"  /> 
    5.            <result property="password"  column= "password"  /> 
    6.            <result property="createTime"  column= "createtime"  /> 
    7.         </resultMap> 
    8.         <select id="getUser"  parameterType= "User"  resultMap= "userMap" > 
    9.           select * from user where id = #{id} 
    10.         </select> 
    11.    <mapper/> 
 
    (4)dao层接口实现类UserDaoImpl:

[java] view plain copy
    1.    public   class  UserDaoImpl  implements   UserDao  { 
    2.       public  SqlSessionTemplate sqlSession; 
    3.       public  User getUserById(User user) { 
    4.           return  (User)sqlSession.selectOne( "com.xxt.ibatis.dbcp.domain.User.getUser" , user); 
    5.       } 
    6.       public   void  setSqlSession(SqlSessionTemplate sqlSession) { 
    7.            this .sqlSession = sqlSession; 
    8.       } 
    9.     }

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-304997-1-1.html 上篇帖子: 【JEECG-Mybatis版本】springmvc+mybatis+代码生成器 演示系统 下篇帖子: MyBatis 3.0 入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表