Spring整合MyBatis

版本都是3.1,不贴源码,只记录下关键过程

* 首先,添加支持:
mybatis-3.1.1.jar
mybatis-spring-1.1.1.jar
* 将mybatis-config.xml里面关于环境变量配置部分提取到Spring的配置中(<environments >)
  <!-- 数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/blog" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- mybatis配置文件路径 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- sql语句配置文件位置 -->
<property name="mapperLocations">
<list>
<value>classpath:com/cn100/blog/persistence/mapper/blog-mapper.xml</value>
</list>
</property>
</bean>
 
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.cn100.blog.persistence.mapper" />
<!-- SqlMapper接口的接口,所有的 Mapper 查询接口都要实现这个接口,这样做的好处就是不用为每个实体操作Mapper都配一个Bean -->
<property name="markerInterface" value="com.cn100.blog.persistence.mapper.SqlMapper" />
     </bean>


* 查询接口,继承SqlMapper 

例:public interface BlogMapper extends SqlMapper 
  SqlMapper接口已经注入了SqlSessionFactory等所需要的环境属性,所以BlogMapper可被直接注入,
  如果没有继承SqlMapper的话,则BlogMapper 需要配置对应的<bean 才能被注入,并且<bean 里面需要注入SqlSessionFactory,
  SqlMapper接口完全可以自己写,里面定义SqlSessionFactory,用<bean 配置起来,其它的继承即可.


* blog-mapper.xml:
<mapper namespace="com.cn100.blog.persistence.mapper.BlogMapper">
 注意namespace要指定到Mapper查询接口,不能只指定到包
(Mapper 查询接口,即那个专门用来查询的接口,里面的方法名和blog-mapper.xml里面的 id 相对应)


* 将Mapper查询接口注入到需要查询的类(一般是DAO层的类):
例:@Autowired
       private BlogMapper blogMapper;
    即可调用接口里面的方法,直接查询了,因为方法名和Sql配置文件里面的id相对应,所以会自动找到要执行的SQL.


 * 因为MyBatis的数据库环境配置和mapperLocations都搬到Spring配置文件中了,所以mybatis-config.xml里面没多少内容了: 
<configuration>
<typeAliases>
<typeAlias alias="Blog" type="com.cn100.blog.domain.model.Blog"/>
</typeAliases>
</configuration> 


总结梳理:* dao层里面注入了一个blogMapper
      @Autowired
      private BlogMapper blogMapper;


           * blogMapper是一个专门用来查询的接口,没有实现类,

其继承的SqlMapper是在配置文件里面指定的.
其里面的方法名是和 blog-mapper.xml 文件里的 id 相对应的.


  * blog-mapper.xml 文件是用来专门写 Sql 语句的文件.


  * Spring的配置文件配置了:1、数据源dataSource
        2、sqlSessionFactory
          3、指定 SqlMapper 源为所有查询接口的父类,
  (MyBatis为SqlMapper注入了SqlSessionFactory属性)
* mybatis配置文件配置:typeAlias别名(为了在blog-manager.xml里面省略写包名)
就是这么简单!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值