1.前提准备(新建一个maven项目)
依赖
spring相关包
spring-beans, spring-context, spring-jdbc,spring-test
mybatis包
mybatis,mybatis-spring
jdbc驱动包
mysql-connector-java
junit测试包
junit
dbcp数据源
commons-dbcp
数据源配置
mysql中新建表
CREATE DATABASE test;
CREATE TABLE `userinfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8
配置文件mysql.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=12345678
2.使用mybatis-spring
流程
1)注册sqlSessionFactory bean,属性有数据源,mybatis配置,映射xml文件
2)注册MapperScannerConfigurer匿名bean,绑定mapper包下的类,用于Service中自动注解
3)Service包下的类声明一个mapper私有变量,注解@Autowired即可使用mapper的方法
4)在Test包下创建一个类,注解@RunWith(SpringJUnit4ClassRunner.class)并加载声明bean的xml文件,然后进行测试
分层结构
domain
这个包下的类的属性对应数据表中的属性,getter,setter,用于映射
mapper
这个包下的是映射配置。UserMaper是一个接口,里面声明你需要对某个数据库表的增删查改方法。UserMapper.xml则是配置接口中方法的实现。
深入了解:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html
service
服务包,实现业务需求
Test
用于测试Service
application-Context.xml
声明 sqlSessionFactory bean,自动扫描servce下的类并注册bean,将mapper下的接口转换成bean,事务管理器配置
3.注意事项
java编译时默认忽略掉java文件夹的非java文件,因此,mapper下映射配置表xml文件会出现无法找到的情况,因此在pom.xml中包含一下:
<build>
<resources>
<!--编译java下的xml文件使mybatis配置文件能找到-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
4.运行
在Test下写好方法,方法上注解@Test,在运行该方法,查看数据库变化即可。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-mybatis.xml"})
public class TestClass {
@Autowired
private UserService userService;
@Test
public void test1(){
System.out.println(userService.getUserByName("hegoudai").toString());
}
@Test
public void testInsert(){
UserBean user = new UserBean();
user.setPassword("1111111");
user.setUsername("hegoudai2");
userService.insertUser(user);
}
}
源码:https://github.com/hegoudai/Learning-Spring/tree/master/mybatis-springstyle