前言:
12.整合Mybatis 12.1 回忆Mybatis的使用 12.1.1 导入相关资源jar包 1.junit单元测试小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师。
这个Spring基础学习系列是用来记录我学习Spring框架基础知识的全过程 (这个系列是参照B站狂神的Spring5最新教程来写的,由于是之前整理的,但当时没有发布出来,所以有些地方可能有错误,希望大家能够及时指正!)
之后我将会以一天一更的速度更新这个系列,还没有学习Spring5框架的小伙伴可以参照我的博客学习一下;当然学习过的小伙伴,也可以顺便跟我一起复习一下基础。
最后,希望能够和大家一同进步吧!加油吧!少年们!
废话不多说,让我们开始今天的学习内容吧,今天我们来到了Spring基础学习的第十二站:整合Mybatis!
2.mybatis资源依赖junit junit4.12
3.mysql数据库驱动org.mybatis mybatis3.5.2
4.springframework资源依赖mysql mysql-connector-java5.1.47
5.spring-jdbc资源依赖org.springframework spring-webmvc5.2.0.RELEASE
6.aop织入资源依赖org.springframework spring-jdbc5.2.0.RELEASE
7.mybatis-spring资源依赖org.aspectj aspectjweaver1.8.13
8.lombok资源依赖org.mybatis mybatis-spring2.0.3
9.log4j资源依赖org.projectlombok lombok1.16.10
10.build中配置resourceslog4j log4j1.2.17
12.1.2 编写Mybatis核心配置文件src/main/resources ***.xml false src/main/java ***.xml false
- 在resource目录下编写mybatis-config.xml配置文件
12.1.3 编写User实体类
package com.kuang.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data // 引入无参构造,get和set方法以及toString方法 @AllArgsConstructor // 引入有参构造 @NoArgsConstructor // 再次引入无参构造,防止引入有参构造时覆盖无参构造 public class User { private int id; private String name; private String pwd; }12.1.4 编写接口以及xml配置文件 1.编写UserMapper接口
package com.kuang.mapper; import com.kuang.pojo.User; import java.util.List; public interface UserMapper { // 查询所有用户信息 public List2.编写UserMapper.xml配置文件getUsers(); }
12.1.5 编写MyTest测试类Select * from mybatis.user
package com.kuang.dao; public class MyTest { //查询所有用户信息 @Test public void getUsers() throws IOException { // 获取核心配置文件 String resources = "mybatis-config.xml"; // 将核心配置文件转化为流式输出 InputStream in = Resources.getResourceAsStream(resources); // 读取流式文件,通过SqlSessionFactoryBuilder获取SqlSessionFactory对象 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in); // SqlSessionFactory获取sqlSession对象:设置为自动提交 SqlSession sqlSession = sessionFactory.openSession(true); // 通过反射机制获取Mapper接口对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); // 调用getUsers方法,查询所有用户信息,获取users数组 List12.1.6 测试结果users= mapper.getUsers(); // 遍历users数组 for (User user : users) { System.out.println(user); } // 关闭sqlSession对象 sqlSession.close(); } }
结果:成功查询到所有的用户信息!
12.2 Mybatis-Spring的使用 12.2.1 编写实体类和接口及配置文件 1.编写User实体类- 与12.1.3的User实体类代码相同
- 与12.1.4的UserMapper接口代码相同
- 与12.1.4的UserMapper.xml文件代码相同
- 在resources文件下创建spring-dao.xml配置文件,使用Spring提供的JDBC编写DataSource数据源
2. 注入sqlSessionFactory
- 修改spring-dao.xml配置文件,在编写DataSource数据源后面注入sqlSessionFactory
spring-dao.xml配置文件,在注入sqlSessionTemplate后面注入UserMapperImpl实现类 3.编写主配置文件
- 在resources文件下创建applicationContext.xml配置文件,导入spring-dao.xml配置文件,也可以直接在主配置文件中进行注入接口实现类
12.2.5 编写MyTest测试类和测试结果 1.编写MyTest测试类 package com.kuang.dao; public class MyTest { // 获取所有的用户信息:使用将SqlSessionTemplate私有化方式 @Test public void getUsers() { // 获取上下文信息,得到Spring的IOC容器 ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml"); // 从IOC容器中获取UserMapper的Bean信息(说明类型后就不需要强制转换了) UserMapper userMapper = context.getBean("userMapper",UserMapper.class); // 调用getUsers获取所有用户,然后进行遍历 for (User user : userMapper.getUsers()) { // 打印用户信息 System.out.println(user); } } }2.测试结果结果:成功查询到所有的用户信息!
12.3 Mybatis-Spring的使用改进 12.3.1 修改和接口实现类注入 1.编写接口实现类UserMapperImpl2
- 创建一个实现UserMapper接口的UserMapperImpl2实现类,并且继承SqlSessionDaoSupport对象
package com.kuang.dao; import com.kuang.pojo.User; import org.apache.ibatis.session.SqlSession; import org.mybatis.spring.support.SqlSessionDaoSupport; import java.util.List; //UserMapperImpl2实现类直接继承SqlSessionDaoSupport public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{ //重写getUsers方法 public List2. 注入UsereMapperImpl2接口实现类getUsers() { // 上面三行代码的精简版 return getSqlSession().getMapper(UserMapper.class).getUsers(); } }
- 修改applicationContext.xml配置文件,注入UsereMapperImpl2接口实现类<
12.3.2 修改MyTest测试类 package com.kuang.dao; public class MyTest { //获取所有的用户信息:使用继承SqlSessionDaoSupport方式 @Test public void getUsers3() { // 获取上下文信息,得到Spring的IOC容器 ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml"); // 从IOC容器中获取UserMapper的Bean信息(说明类型后就不需要强制转换了) UserMapper userMapper = context.getBean("userMapper2",UserMapper.class); // 调用getUsers获取所有用户,然后进行遍历 for (User user : userMapper.getUsers()) { System.out.println(user); } } }12.3.3 测试结果结果:成功查询到所有的用户信息!
12…3.4 Mybatis-Spring使用总结
- 使用将SqlSessionTemplate私有化方式:即在接口实现类中引入并私有化SqlSessionTemplate对象
- 使用继承SqlSessionDaoSupport方式:即让接口实现类直接继承SqlSessionDaoSupport对象
好了,今天的有关整合Mybatis的学习就到此结束啦,欢迎小伙伴们积极学习和讨论,喜欢的可以给蜗牛君点个关注,顺便来个一键三连,我们下期见,拜拜啦!
参考视频链接:https://www.bilibili.com/video/BV1WE411d7Dv(【狂神说Java】Spring5最新教程IDEA版通俗易懂)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)