SpringBoot与MyBatis快速整合

3 篇文章 0 订阅
1 篇文章 0 订阅

身为后端程序猿,我们经常打交道的除了Spring全家桶之外,那就是数据库了,现在让我们接着上一篇的SpringBoot快速搭建继续往下讲,SpringBoot如何快速整合MyBatis
上篇文章目录: SpringBoot项目快速搭建

无配置文件注解版

一、新建application.properties文件

在这里插入图片描述

二、添加数据库配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/user?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

springBoot会自动加载,然后将数据源信息自动注入sqlSessionFactory中,我们只需要配置即可!

三、添加依赖
		<!-- myBatis -->
		<dependency>
		    <groupId>org.mybatis.spring.boot</groupId>
		    <artifactId>mybatis-spring-boot-starter</artifactId>
		    <version>1.3.1</version>
		</dependency>
		<!-- mysql -->
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <scope>runtime</scope>
		</dependency>
		<!-- 添加 junit 环境jar包 测试使用 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
   	    </dependency>
四、新建dao接口和类

在这里插入图片描述
IUserDao接口代码

@Mapper
public interface IUserDao {
	@Select("SELECT id,name,age FROM user")
	List<Map<String, Object>> findUsers();
}

UserDao代码

public class UserDao implements IUserDao {

	@Autowired
	IUserDao userDao;

	@Override
	public List<Map<String, Object>> findUsers() {
		return userDao.findUsers();
	}
}

此时要注意,IUserDao接口和实现类的包路径要在启动类(@SpringBootApplication注解标明的类)包的子路径下面,SpringBoot默认找@SpringBootApplication注解的包及子包,如果不在范围内需要使用注解标明,否则注入使用的时候就会报错

新建测试类

在这里插入图片描述

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = StartClass.class)
public class TestUserDao {

	@Autowired
	IUserDao userDao;

	@Test
	public void userTest() {
		List<Map<String, Object>> users = userDao.findUsers();
		System.out.println(JSONArray.toJSONString(users));

	}
}

数据库数据
在这里插入图片描述
此时我们启动userTest方法
在这里插入图片描述
看到如下界面则表示成功,而在控制台上,也打印出了我们想得到的数据
在这里插入图片描述
上面的这种方式在我们项目中很少用到,一般项目中都是使用的xml配置版本的,将sql写在xml上,这样子代码的耦合会低很多,而且使用xml配置有利于后期的维护和复杂sql的编写

xml配置版本

重复上面一、二、三操作,这个时候我们在IUserDao新建一个findUser()方法

一、新增mybatis配置

application.properties文件

#基础配置文件、映射路径
#mybatis config
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
二、新增findUser方法

IUserDao接口新增findUser()方法

	Map<String, Object> findUser(String userId);

UserDao代码

	@Override
	public Map<String, Object> findUser(String userId) {
		return userDao.findUser(userId);
	}

新增IUserDao.xml文件(namespace需要与对应接口匹配路径)
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.springboot.dao.IUserDao" >
    <select id="findUser" parameterType="java.lang.String" resultType="java.util.Map">
       SELECT  id, name, age
       FROM user
       Where id = #{param1}
    </select>
</mapper>
三、测试配置是否正确
	@Test
	public void userTest1() {
		Map<String, Object> user = userDao.findUser("1");
		System.out.println(JSONObject.toJSONString(user));

	}

启动后,junit标识成功,并且控制台打印出数据,证明此事整合成功!
在这里插入图片描述
在这里插入图片描述
需要注意的点一个是,springboot扫描包的路径,还有一个就是IUserDao.xml里的namespace必须是对应IUserDao的接口路径,否则mybatis将会绑定错误的接口,导致报错

在这里插入图片描述
这是最终的项目目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值