步骤:
1.导入相关jar包
junitmybatismysql数据库spring相关的aop织入mybatis-spring
spring-01 org.example 1.0-SNAPSHOT 4.0.0 spring-10-mybatis8 8 junit junit4.12 mysql mysql-connector-java5.1.47 org.mybatis mybatis3.5.2 org.springframework spring-webmvc5.1.9.RELEASE org.springframework spring-jdbc5.1.9.RELEASE org.aspectj aspectjweaver1.8.13 org.mybatis mybatis-spring2.0.7 org.projectlombok lombok1.16.10 src/main/java **/*.xml true
2.编写配置文件
3.测试
1.mybatis连接数据库测试1.pojo下编写实体类User
package com.yl.pojo;
import lombok.Data;
@Data
public class User {
private int id;
private String name;
private String pwd;
}
2.resources下编写核心配置文件mybatis-config.xml
mapper下编写接口UserMapper
package com.yl.mapper;
import com.yl.pojo.User;
import java.util.List;
public interface UserMapper {
public List selectUser();
}
mapper下编写UserMapper.xml
test下编写测试类MyTest
import com.yl.mapper.UserMapper;
import com.yl.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyTest {
@Test
public void test() throws IOException {
//定义mybatis核心配置文件在classes下的路径
String resources = "mybatis-config.xml";
//根据路径获取字节输入流对象
InputStream in = Resources.getResourceAsStream(resources);
//通过SqlSessionFactoryBuilder对象的build方法创建SqlSessionFactory对象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
//通过工厂类的openSession方法获取sql执行对象
SqlSession sqlSession = sessionFactory.openSession(true);
//返回接口代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//调用mapper的selectUser方法
List userList = mapper.selectUser();
//遍历输出结果
for (User user : userList) {
System.out.println(user);
}
}
}
结果
User(id=1, name=yl520, pwd=yl520) User(id=2, name=yulu520, pwd=yulu520)2.spring整合mybatis方式一SqlSessionTemplate
Mybatis-Spring:
将Mybatis代码无缝地整合到Spring中,它将允许MyBatis参会与到Spring十五管理之中,创建映射器mapper和sqlsession,并注入到bean中,以及将Mybatis的异常转换为Spring的DataAccessException。最终,可以做到应用代码不依赖于MyBatis、Spring或MyBatis-Spring。
1编写数据源
2sqlSessionFactory
3sqlSessionTemplate
4需要给接口加实现类
5测试
1.pom.xml导入
org.mybatis mybatis-spring2.0.7
spring-dao.xml
mybatis-config.xml中删除对应的mapper
创建实现类UserMapperImpl
package com.yl.mapper;
import com.yl.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;
public class UserMapperImpl implements UserMapper {
//所有操作以前都使用sqlSession执行,现在都是用sqlSessionTemplate;
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
@Override
public List selectUser() {
return sqlSession.getMapper(UserMapper.class).selectUser();
}
}
测试
import com.yl.mapper.UserMapper;
import com.yl.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyTest {
@Test
public void test() throws IOException {
// //定义mybatis核心配置文件在classes下的路径
// String resources = "mybatis-config.xml";
// //根据路径获取字节输入流对象
// InputStream in = Resources.getResourceAsStream(resources);
// //通过SqlSessionFactoryBuilder对象的build方法创建SqlSessionFactory对象
// SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
// //通过工厂类的openSession方法获取sql执行对象
// SqlSession sqlSession = sessionFactory.openSession(true);
// //返回接口代理对象
// UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// //调用mapper的selectUser方法
// List userList = mapper.selectUser();
// //遍历输出结果
// for (User user : userList) {
// System.out.println(user);
// }
ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
for (User user : userMapper.selectUser()) {
System.out.println(user);
}
}
}
结果
User(id=1, name=yl520, pwd=yl520) User(id=2, name=yulu520, pwd=yulu520)3、spring整合mybatis方式二SqlSessionDaoSupport
创建UserMapperImpl2继承SqlSessionDaoSupport
package com.yl.mapper;
import com.yl.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import java.util.List;
public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
@Override
public List selectUser() {
return getSqlSession().getMapper(UserMapper.class).selectUser();
}
}
注入UserMapperImpl2到bean
测试
import com.yl.mapper.UserMapper;
import com.yl.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyTest {
@Test
public void test() throws IOException {
// //定义mybatis核心配置文件在classes下的路径
// String resources = "mybatis-config.xml";
// //根据路径获取字节输入流对象
// InputStream in = Resources.getResourceAsStream(resources);
// //通过SqlSessionFactoryBuilder对象的build方法创建SqlSessionFactory对象
// SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
// //通过工厂类的openSession方法获取sql执行对象
// SqlSession sqlSession = sessionFactory.openSession(true);
// //返回接口代理对象
// UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// //调用mapper的selectUser方法
// List userList = mapper.selectUser();
// //遍历输出结果
// for (User user : userList) {
// System.out.println(user);
// }
ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
UserMapper userMapper = context.getBean("userDao", UserMapper.class);
for (User user : userMapper.selectUser()) {
System.out.println(user);
}
}
}
结果
User(id=1, name=yl520, pwd=yl520) User(id=2, name=yulu520, pwd=yulu520)



