博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis-Spring集成的理解
阅读量:6495 次
发布时间:2019-06-24

本文共 2197 字,大约阅读时间需要 7 分钟。

  hot3.png

首先我自己简单介绍一下mybatis

mybatis是在配置中写SQL,用对象映射

mybatis看做是是数据持久层的框架,它主要是对数据库和对象的关系进行操作

再说下:

mybatis和hibernate的最大区别在于,自己写SQL,而hibernate自动映射SQL,mybatis更加灵活,更适用于二次开发,如果要涉及较多的数据库结构的修改的话,hibernate更加有优势些

现在开始集成MyBatis-Spring

(1)要使用MyBatis-Spring的模块的,首先要下载mybatis-spring.jar包,导入Mybatis相关的包。并且在Maven中pom.xml加入加入依赖关系

(2)在spring框架的应用上下文配置文件applicationContext.xml中定义SqlSessionFactory和至少一个数据映射类
如下在MyBatis-Spring中,SqlSessionFactorBean 用于创建SqlSessionFactory
这是我的项目配置:
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
        <!-- mapper和resultmap配置路径 -->
        <property name="mapperLocations">
            <list>
               
                <value>classpath:com/xmoney/**/*-oracle-mapper.xml</value>
            </list>
        </property>
    </bean>
其中数据源dataSource可以是任何的数据库,属性configLocation用来指定Mybatis的XML文件配置的路径
属性mapperLocations中list用来指定mybatis的XML的映射文件,比如项目中每个模块的xml(用来操作数据库的Sql语句)
(3)MyBatis的自动配置
没有必要为Spring的所有的XML文件注册所有的映射器,可以使用MapperScannerConfigurer,它将查找类路径下的映射器,并且将他们自动创建成MapperFactoryBeans
这是在applicationContext.xml中的配置:
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.xmoney"/>
        <property name="markerInterface" value="com.xmoney.manage.entity.Mapper"/>
    </bean>
其中属性basePackage会让接口文件映射问基本包路径
这里要注意一点:如果你使用了一个以上的DataSource,也就是多个SqlSessionFactory,那么自动装配就会不起作用
此时可以将sqlSessionFactory换成sqlSessionFactoryBeanName或者sqlSessionTemplateBeanName
属性markerInterface指定要寻找的父接口
其中MyBatis的配置XML 如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- changes from the defaults -->
<setting name="lazyLoadingEnabled" value="false" />
</settings>
<typeAliases>
   <typeAlias alias="Hnyhb" type="com.xmoney.manage.entity.Hnyhb" />
   <typeAlias alias="Page" type="com.xmoney.manage.entity.Page" />
</typeAliases>
</configuration>
这里有两个配置,一个是LazyLoadingEnable,设为false,让Mybatis禁止Lazy加载
在TypeAliases,这是一个别名,之所以要别名,是为了在Mapper映射的时候方便使用
以上是我对Mybatis和spring集成的配置,以及和hibernate与spring集成的比较

后续有很多开发填坑的文章发布,如果对你有帮助,请支持和加关注一下

转载于:https://my.oschina.net/baishi/blog/105055

你可能感兴趣的文章
MVC设计模式
查看>>
在团队项目遇到的问题及解决方法。
查看>>
springcloud demo---config-client
查看>>
Django设置联合唯一约束 -- migrate时报错处理
查看>>
Java LeetCode 1.Two Sum
查看>>
前端面试题:css相关面试题
查看>>
shell命令的高级使用之---选择性copy
查看>>
最长回文子序列-----动态规划
查看>>
Vue国际化实现
查看>>
设计模式:单例模式
查看>>
FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法
查看>>
双网卡一般情况不能有两个网关 (转)
查看>>
xshell 远程连接Linux
查看>>
Linux计划任务及压缩归档(week2_day1)--技术流ken
查看>>
ccf算法模板
查看>>
微信小程序登录 该死的官方文档TypeError: the JSON object must be str, not 'bytes'
查看>>
VMware 虚拟机克隆 CentOS 6.5 之后,网络配置问题的解决方案
查看>>
Python ( 1 ) ----- 简介
查看>>
[linux基础学习]run level
查看>>
第七周学习总结
查看>>