Spring boot MyBatis基本操作
Posted galibujianbusana
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring boot MyBatis基本操作相关的知识,希望对你有一定的参考价值。
目录结构
数据库信息:
数据库student -> 表名 custom_user -> 主键-> custom_id ,其他字段 cusotm_name,custom_age
1.加入依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
pom.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.guoxw</groupId>
<artifactId>mybatis_test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis_test</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.mybatis-config.xml (暂时没有配置具体信息)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
3. mapper/custom_user.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.guoxw.mybatis_test.mapper.CustomUserMapper">
<select id="findById" parameterType="Integer" resultType="com.guoxw.mybatis_test.entity.CustomUser">
select * from custom_user where custom_id =# value
</select>
<!-- 如果这里没有传入参数,不需要定义parameter ,如果是查询涉及多表,返回类型可以直接使用map 键值对-->
<!-- 使用LinkedHashMap 可以将map中的数据按照插入顺序进行排序 -->
<!-- #custom_id 传入参数,custom_id 是和map的key值对应-->
<!-- 可以加入if 语句 -->
<select id="findAll" parameterType="java.util.Map" resultType="java.util.Map">
select * from custom_user where custom_id > #custom_id
<if test="custom_age !=null">
and custom_age > #custom_age
</if>
<!-- select * from custom_user1 p ,custom_user2 d where p.nage=d.name -->
</select>
<insert id="create" parameterType="com.guoxw.mybatis_test.entity.CustomUser">
insert into custom_user ( custom_name,custom_age)
values (#custom_name,#custom_age)
<!-- selectKEY 用于回填数据 keyProperty 主键 keycolume是字段名 resultType 是字段类型 order 是指定在执行sql前或后返回数据-->
<selectKey keyProperty="custom_id" keyColumn="custom_id" resultType="Integer" order="AFTER">
select Last_INSERT_ID()
</selectKey>
</insert>
<update id="update" parameterType="com.guoxw.mybatis_test.entity.CustomUser">
update custom_user set custom_age = #custom_age where custom_id=2
</update>
<delete id="del" parameterType="Integer">
delete from custom_user where custom_id=#custom_id
</delete>
</mapper>
4.CustomUserMapper
public interface CustomUserMapper
public CustomUser findById(Integer id);
public List<Map> findAll(Map params);
public void create(CustomUser user);
public void update(CustomUser user);
public void del(Integer custom_id);
5.CustomUserService
@Service
public class CustomUserService
@Resource
private CustomUserMapper customUserMapper;
public CustomUser findById(Integer id)
return customUserMapper.findById(id);
/***
*
* @return
*/
public List<Map> findAll(Integer id,Integer age)
Map params=new HashMap();
params.put("custom_id",id);
params.put("custom_age",age);
return customUserMapper.findAll(params);
@Transactional
public void create(CustomUser user)
customUserMapper.create(user);
@Transactional
public void update(CustomUser user)
customUserMapper.update(user);
@Transactional
public void del(Integer custom_id)
customUserMapper.del(custom_id);
6. entity/CustomUser
public class CustomUser
private Integer custom_id;
private String custom_name;
private Integer custom_age;
public Integer getCustom_id()
return custom_id;
public void setCustom_id(Integer custom_id)
this.custom_id = custom_id;
public String getCustom_name()
return custom_name;
public void setCustom_name(String custom_name)
this.custom_name = custom_name;
public Integer getCustom_age()
return custom_age;
public void setCustom_age(Integer custom_age)
this.custom_age = custom_age;
7. CustomUserController
@RestController
@RequestMapping(path = "/get")
public class CustomUserController
@Resource
CustomUserService customUserService;
@RequestMapping(path = "/user/id")
public CustomUser findById(@PathVariable("id") int id)
return customUserService.findById(id);
@RequestMapping(path = "/user/all",method = RequestMethod.GET)
public List<Map>findAll(@RequestParam("custom_id") Integer custom_id, Integer custom_age)
List<Map> list=customUserService.findAll(custom_id,custom_age);
return list;
@RequestMapping(path = "/user/insert",method = RequestMethod.GET)
public CustomUser create()
CustomUser user=new CustomUser();
user.setCustom_age(31);
user.setCustom_name("guoxw_4");
customUserService.create(user);
return user;
@RequestMapping(path = "/user/update",method = RequestMethod.GET)
public CustomUser update()
CustomUser user=customUserService.findById(2);
user.setCustom_age(user.getCustom_age()*2);
customUserService.update(user);
return user;
@RequestMapping(path = "/user/del",method = RequestMethod.GET)
public String del(Integer id)
customUserService.del(id);
return "ok";
8.yml
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8
username: root
password: 12345678
# jackson:
# deserialization: true
mybatis:
config-location: classpath:/mybatis/mybatis-config.xml
mapper-locations: classpath:/mybatis/mapper/*.xml
logging:
level:
com.guoxw.mybatis_test: debug
9. code :mybatis_test
链接:https://pan.baidu.com/s/1NTf_H-n2Ch0Wwe878I84ig 密码:49ak
以上是关于Spring boot MyBatis基本操作的主要内容,如果未能解决你的问题,请参考以下文章
「Spring Boot架构」集成Mybatis-Plus的实例详解
264.Spring Boot MyBatis集成MyBatis-Plus