文章依照官网文档所写,使用的mybatis-spring版本为2.0.4,使用数据库为mysql
本文以使用案例为主,基础性讲解较少,请结合文档阅读。也是初学者,能力有限,有错麻烦指正,谢谢
本文所用代码上传至个人GitHub,全部运行方法都在测试实例中,数据库生成与数据添加代码在mybatis.sql内,为了演示不同的功能,不同功能的测试代码和配置文件完全分离。
前言
Mybatis-spring这个东西本身不具备Mybatis的核心功能的,所以数据库操作工作还是需要mybatis包的,但可以把这个东西看做mybatis和spring的胶水,使两者无缝融合;另一个好处是我们不再需要像先前那样使用mybatis-config.xml
来配置mybatis
了
要把spring和mybatis融合起来,需要的包有mybatis
,mybatis-spring
,spring-context
,spring-jdbc
,同时还需要一个支持DataSource的包,可以选用mybatis内置的,也可以选用第三方的,我选择的阿里巴巴的Druid
Getting started
本章测试代码在test/java/gettingStarted
内,配置文件在main/java/resources/gettingStarted
里
其中有两个测试函数,testXML
用来测试基于xml的配置;testAnnotation
用来测试基于注解的配置,并且展示了两种构造mapper
类的方法。
这里有个小坑,就是如果通过jdbc.properties
获取数据库信息的时候,用户名这个键值对不能使用username=root
,因为关于spring配置文件中不能使用${username}的问题。
注意,下面的配置,在获取这bean的时候,执行ac.getBean("sqlSessionFactory");
的时候,返回的并不是SqlSessionFactoryBean
类型的对象,而是SqlSessionFactory
对象,这是因为ac.getBean("sqlSessionFactory");
返回的是:SqlSessionFactory
对象的getObject()
的结果。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
spring-config.xml
里的配置,获取的方式为ac.getBean("blogMapper", BlogMapper.class);