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. linux查询硬件信息

    硬件信息查询 sudo dmidecode -t baseboard

  2. jquery接触初级-----ajax 之:load()方法

    jquery _ajax 请求主要有几种方式:load(),$.get(),$.post(),$.ajax(),$.getScript(),$.getJson() 1.load()方法 格式:load ...

  3. map转换成JSON的3种方法

    http://www.json.cn/JSON格式校验 1 json-lib <dependency> <groupId>net.sf.json-lib</groupId ...

  4. Linux tcpdump命令使用方法

    tcpdump是Linux上常用的抓包命令,用于截取网络分组并输出分组内容,常用于网络问题分析和排查. tcpdump语法 tcpdump [-i 接口] [-nn] [-w 文件名] [-c 次数] ...

  5. jquery 初始化数据 添加html 第一次玩0.0

    /** * Created by Eee_xiang on 2018/04/12. * 联动响应事件 */ (function () { $.linkEvent = function (options ...

  6. iOS修改状态栏颜色

    application.statusBarStyle = .LightContent // 在APPlication中设置全局状态栏颜色,为白色 application.statusBarHidden ...

  7. python使用cv2显示图片像素值

    给定一张灰度图,显示这张图片的像素值 def show_image_pixel(img): ''' :param img: 需要输出像素值的图像,要求是灰度图 :return: 无返回值 ''' he ...

  8. python基础学习 Day19 面向对象的三大特性之多态、封装 property的用法(1)

    一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继 ...

  9. Vue生命周期,计算属性、方法、侦听器

    vue实例和组件都有生命周期函数,beforeCreate()实例或组件没有被创建的时候执行的钩子函数:created()是实例或组件被创建完成的时候执行的钩子函 数:beforeMount()函数是 ...

  10. SAP 自定义进度条

    *&---------------------------------------------------------------------* *& Report ZCHENH028 ...