spring中整合使用mybatis的用法总结

一:在Spring配置Mybatis

第一步:将mybatis-spring类包添加 到项目的类库中

第二步:编写spring和持久层衔接的xml文件,这里起名为spring-dao.xml

  1.  
    <!-- 3:配置SqlSessionFactory对象 -->
  2.  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> ①
  3.  
    <!-- 注入数据库连接池 -->
  4.  
    <property name="dataSource" ref="dataSource"/>
  5.  
    <!-- 配置MyBatis全局配置文件:mybatis-config.xml -->
  6.  
    <property name="configLocation" value="classpath:mybatis-config.xml"/>②
  7.  
    <!-- 扫描entity包 使用别名 -->
  8.  
    <property name="typeAliasesPackage" value=""/>
  9.  
    <!-- 扫描sql配置文件:mapper需要的xml文件 -->
  10.  
    <property name="mapperLocations" value="classpath:mapper/*.xml"/> ③
  11.  
    </bean>

mybatis-spring 类包提供了SqlSessionFactoryBean,以便通过Spring风格创建mybatis的SqlSessionFactory,如①所示。只需要注入数据源并指定mybatis的总配置文件就可以了,如②所示。 mapperLocations属性支持扫描式加载sql映射文件。

二:编写myBatis中的dao

第一种方法:使用SqlSessionTemplate模板类

  1.  
    mybatis-spring效仿spring的风格提供了一个模板类SqlSessionTemplate,可以通过模板类轻松访问数据库
  2.  
    但是这种方法使用字符串指定映射项,容易引起错误,因为字符串本身没有语义性,如果存在编写错误,编译器无法识别,只能在运行期发现。

第二种方法:使用映射接口

接口的名称和映射命名空间相同,接口方法和映射基的id相同

第一步:在spring-dao.xml中添加配置

  1.  
    <!-- 4:配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中-->
  2.  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  3.  
    <!-- 注入sqlSessionFactory -->
  4.  
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
  5.  
    <!-- 给出需要扫描Dao接口包 -->
  6.  
    <property name="basePackage" value=""/>
  7.  
    </bean>

MapperScannerConfigurer将扫描basePackage所指定的包下的所有的接口类(包括子包),如果它们在sql映射文件中定义过,则将它们动态定义为Spring Bean,这样我们就可以在Service中直接注入映射接口的bean了。

整合使用持久层框架mybatis 使用SqlSessionTemplate模板类与使用映射接口 对比的更多相关文章

  1. Java数据持久层框架 MyBatis之API学习三(XML 映射配置文件)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  2. 从零搭建springboot服务02-内嵌持久层框架Mybatis

    愿历尽千帆,归来仍是少年 内嵌持久层框架Mybatis 1.所需依赖 <!-- Mysql驱动包 --> <dependency> <groupId>mysql&l ...

  3. spring boot整合双持久层框架jpa、mybatis

    公司之前用的是spring boot + jpa,但由于jpa无法完美的解决某些动态查询问题,就使用的jdbcTemplate 动态封装SQL,由于代码相对复杂,可读性差,现准备再引入mybatis. ...

  4. 开源顶级持久层框架——mybatis(ibatis)——day02

    mybatis第二天    高级映射 查询缓存 和spring整合          课程复习:         mybatis是什么?         mybatis是一个持久层框架,mybatis ...

  5. java持久层框架mybatis如何防止sql注入

    看到一篇很好的文章:http://www.jfox.info/ava-persistence-framework-mybatis-how-to-prevent-sql-injection sql注入大 ...

  6. Java数据持久层框架 MyBatis之背景知识三

    摘录自:http://www.cnblogs.com/lcngu/p/5437281.html 对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.or ...

  7. Java数据持久层框架 MyBatis之API学习一(简介)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  8. Java数据持久层框架 MyBatis之背景知识二

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  9. Java数据持久层框架 MyBatis之背景知识一

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

随机推荐

  1. 构建模式--Adapter模式(JAVA)

    适配器模式: 适配器就相当于我们的转接头,比如手机充电器插头(小米和华为的手机充电器不能共用,这时候就可以给华为的充电器按一个转接头,就可以给小米手机充电). 同理,当一个类(充电器 HuaweiCh ...

  2. Haskell语言学习笔记(76)Data.Tree

    Data.Tree data Tree a = Node { rootLabel :: a, subForest :: Forest a } deriving (Eq, Read, Show) typ ...

  3. zstack使用笔记之端口转发

    根据官方教程,使用端口转发,可以把公网流量转发到内网 实验环境是这样的 公网网段:172.17.3.x 内网网段:192.168.1.x 首先创建云路由网络,这个就不说了,根据教程大家都可以创建出来, ...

  4. Android app 性能优化的思考--性能卡顿不好的原因在哪?

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

  5. 一个关于EasyUI超恶心的BUG。。。Cannot read property 'options' of undefined

    控制台Console抛出的异常: jquery.easyui.min.js:9148 Uncaught TypeError: Cannot read property 'options' of und ...

  6. 新书预告 ArcGIS跨平台开发系列第一本

    新书预告 ArcGIS跨平台开发系列第一本 候选题目: ArcGIS Runtime开发实验实习教程 ArcGIS Runtime开发案例教程 简介: GIS最新现代开发理念打造的跨所有移动和桌面平台 ...

  7. hdu2421-Deciphering Password-(欧拉筛+唯一分解定理+积性函数+立方求和公式)

    Deciphering Password Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. KADEMLIA算法学习

    在上一篇文章中<P2P技术是什么>,我们介绍了P2P技术的特点以及发展历史.在本篇文章中,我们来介绍某一个具体的算法. 如今很多P2P网络的实现都采用DHT的方式实现查找,其中Kademl ...

  9. kibana test

    https://www.cnblogs.com/yiwangzhibujian/p/7137546.html curl -XPUT http://localhost:9200/shakespeare ...

  10. Java 动态代理 两种实现方法

    AOP的拦截功能是由java中的动态代理来实现的.说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执 ...