SpringBoot整合MyBatis首先导入;SpringBoot整合MyBatis的依赖,pom依赖如下面代码所示:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- MySql的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--整合阿里巴巴的数据源 类似于dataSource-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
然后在yml文件中进行配置数据库源和Mybatis的配置:
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#整合mybatis
mybatis:
#这个是配置实体类地址 在xml文件中的返回值是可以直接写实体类名字,不需要写全类名,类似:resultType="User"
type-aliases-package: com.kuang.pojo
# classpath代表resources mybatis前面千万不能带“/” 如果带"/"的话就从主文件目录下中寻找
mapper-locations: classpath:mybatis/mapper/*.xml
开始写Mapper层,代码如下所示:
package com.kuang.mapper;
import com.kuang.pojo.User;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author ygl
* @description
* @date 2020/11/4 19:50
*/
//Mapper 也可以使用类似MapperScan
@org.apache.ibatis.annotations.Mapper
@Repository
public interface UserMapper {
List<User> userList();
User userById(int id);
int deleterUserById(int id);
int updateUser(@RequestBody User user);
int addUser(User user);
}
注意:1、@Repository
注解类似与@component
注解,将这个类注入到Spring容器中,只不过@Repository
注解是@component
注解的衍生注解,区分出这是mappe类。
2、@Mapper
注解为了把mapper这个DAO交給Spring管理,不需要再写映射文件,它和在启动类的@MapperScan({"com.xttblog.mapper","com.xttblog.dao"})
注解一样。
xml文件如下图所示:
<?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.kuang.mapper.UserMapper">
<select id="userList" resultType="User">
select * from user
</select>
<select id="userById" resultType="User">
select * from user where id = #{id}
</select>
<delete id="deleterUserById" parameterType="int">
delete from user where id = #{id}
</delete>
<update id="updateUser" parameterType="User">
update user set name = #{name},pwd = #{pwd} where id = #{id}
</update>
<insert id="addUser" parameterType="User">
insert into user (id , name ,pwd) values (#{id},#{name},#{pwd})
</insert>
</mapper>
注意:1、namespace="com.kuang.mapper.UserMapper"
地址映射到mapper接口。
2、resultType="User"
实体类已经在yml文件中进行配置:type-aliases-package: com.kuang.pojo
3、resultType
是返回类型,parameterType
是接收类型
总体架构如下图所示:
随手分享是美德,欢迎转发点赞评论