- 在Spring中整合MyBatis
- 1、整合MyBatis
- 2、 回顾Mybatis
- 3、mybatis-spring-方式一
1、导入相关jar包
junit junit 4.12 mysql mysql-connector-java 5.1.47 org.mybatis mybatis 3.5.2 org.springframework spring-webmvc 5.1.19.RELEASE org.springframework spring-jdbc 5.1.19.RELEASE org.aspectj aspectjweaver 1.9.4 org.mybatis mybatis-spring 2.0.6 org.projectlombok lombok 1.18.10
Maven静态资源过滤问题
src/main/java
***.xml
false
src/main/resources
***.xml
false
2、编写配置文件
3、代码实现
2、 回顾Mybatis编写实体类【pojo】
@Data
public class User {
private int id;
private String name;
private String pwd;
}
实现mybatis-config.xml核心配置文件
编写Mapper接口和配置文件
public interface UserMapper {
public List selectUser();
}
测试类
public class MyTest {
@Test
public void test() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List userList = mapper.selectUser();
for (User user:userList){
System.out.println(user);
}
}
}
3、mybatis-spring-方式一
- 编写数据源配置
- sqISessionFactory
- sqISessionTemplate(相当于sqISession)
- 需要给接口加实现类【new】
- 将自己写的实现类,注入到Spring中
- 测试!
spring-dao.xml
applicationContext.xml【将自己写的实现类,注入到Spring中】
给接口加实现类
public class UserMapperImpl implements UserMapper{
//我们的所有操作,都使用sqlSession来操作,在原来,现在都使用SqlSessionTemplate
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession){
this.sqlSession=sqlSession;
}
public List selectUser() {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.selectUser();
}
}
public interface UserMapper {
public List selectUser();
}
//测试类
@Test
public void test() throws IOException {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
for (User user : userMapper.selectUser()) {
System.out.println(user);
}
}
12.3 mybatis-spring-方式二
编写UserMaperImpl实现类
public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
public List selectUser() {
SqlSession sqlSession = getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return getSqlSession().getMapper(UserMapper.class).selectUser();
}
}
注册到spring中
使用第二种方式时,spring-dao.xml中的这个Bean可以不写



