Spring 整合 Mybatis(代码实例讲解)

您所在的位置:网站首页 springboot如何整合mybatis Spring 整合 Mybatis(代码实例讲解)

Spring 整合 Mybatis(代码实例讲解)

2024-01-13 03:03| 来源: 网络整理| 查看: 265

写在前面,参考两个官网文档:

Mybatis-Spring 官方文档Myvatis 官方文档源代码(可直接运行):spring-09-mybatis

文章目录 一. 回顾 MyBatis二. Spring 整合 Mybatis 方式一三. Spring 整合 Mybatis 方式二 [进一步整合]四. 可能出现的错误

一. 回顾 MyBatis 首先,我们先回顾以下 Mybatis: 使用 Mybatis 实现数据库的增删改查、Map和模糊查询其次,我们通过 Spring 整合 Mybatis,使代码更加简便 1)通过 SqlSessionTemplate 整合 2)通过 SqlSessionDaoSupport 整合 (两种方式,实际上大同小异)) 二. Spring 整合 Mybatis 方式一 通过 Maven 导入 jar 包(poml.xml) mysql mysql-connector-java 5.1.47 org.mybatis mybatis 3.5.2 org.springframework spring-webmvc 5.1.9.RELEASE org.springframework spring-jdbc 5.1.9.RELEASE org.aspectj aspectjweaver 1.9.4 org.mybatis mybatis-spring 2.0.2 org.projectlombok lombok 1.18.12 src/main/resources **/*.properties **/*.xml true src/main/java **/*.properties **/*.xml true 定义 数据库 User 实体类

通过导入 lombok 包,注解 @Data 能够自动生成 set()、get() 函数

数据表 User 有三个字段 id、name、pwd

import lombok.Data; @Data public class User { private int id; private String name; private String pwd; } 定义 UserMapper 接口类

查询表中所有数据

public interface UserMapper { // 查询表中所有数据 public List selectUser(); } 定义 UserMapperImpl 接口实现类(与之前的不同) public class UserMapperImpl implements UserMapper{ // 所有操作现在都使用 SqlSessionTemplate private SqlSessionTemplate sqlSession; public void setSqlSession(SqlSessionTemplate sqlSession) { this.sqlSession = sqlSession; } @Override public List selectUser() { UserMapper mapper = sqlSession.getMapper(UserMapper.class); return mapper.selectUser(); } } 定义 UserMapper.xml 配置文件

实现接口类 UserMapper 方法

select * from mybatis.user; 定义 mybatis-config.xml 配置文件

在之前 Mybatis 项目中,可以在 mybatis-config.xml 中配置连接数据库。现在可以把配置连接数据库的操作交给 Spring 管理,具体看 spring-dao.xml.

定义 spring-dao.xml 配置文件 [重 要!] applicationContext.xml 配置文件

说明:import 操作将 spring-dao.xml 中的内容导入到 applicationContext.xml 配置文件中。

测试类 MyTest @Test public void Test2(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserMapper userMapper = context.getBean("userMapper",UserMapper.class); for(User user : userMapper.selectUser()){ System.out.println(user); } }

查询结果如下:

三. Spring 整合 Mybatis 方式二 [进一步整合]

整合方式二 与 方式一 大同小异。 此处仅展示改动那个部分。

定义 UserMapperImpl2 接口实现类 public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper { @Override public List selectUser() { SqlSession sqlSession = getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); return userMapper.selectUser(); // 进一步整合 // return getSqlSession().getMapper(UserMapper.class).selectUser(); } } applicationContext.xml 配置文件 测试类 MyTest // 第三种,进一步整合 @Test public void Test3(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserMapper userMapper = context.getBean("userMapper2",UserMapper.class); for(User user : userMapper.selectUser()){ System.out.println(user); } } 四. 可能出现的错误

javax.net.ssl.SSLException: closing inbound before receiving peer‘s close_notify 的解决办法



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3