Mybatis plus,SpringBoot和Mybatis的整合

 2023-09-26 阅读 29 评论 0

摘要:这里介绍两种整合SpringBoot和Mybatis的模式,分别是“全注解版” 和 “注解xml合并版”。前期准备开发环境开发工具:IDEAJDK:1.8技术:SpringBoot、Maven、MybatisMybatis plus、创建项目项目结构maven java?Maven依赖<?xml version="

这里介绍两种整合SpringBoot和Mybatis的模式,分别是“全注解版” 和 “注解xml合并版”。

前期准备

开发环境

  • 开发工具:IDEA
  • JDK:1.8
  • 技术:SpringBoot、Maven、Mybatis

Mybatis plus、创建项目

 
 
 
 

项目结构

maven java?

Maven依赖

<?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><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>demo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></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></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

全注解版

SpringBoot配置文件

Springboot框架,这里使用yml格式的配置文件,将application.properties改名为application.yml。

#配置数据源
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/dianping?useUnicode=true&characterEncoding=utf8username: rootpassword: 123driver-class-name: com.mysql.jdbc.Driver
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

SpringBoot会自动加载application.yml相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中。

实体类

public class Happiness {private Long id;private String city;private Integer num;//getters、setters、toString
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Mybatis框架。映射类

@Mapper
public interface HappinessDao {@Select("SELECT * FROM happiness WHERE city = #{city}")Happiness findHappinessByCity(@Param("city") String city);@Insert("INSERT INTO happiness(city, num) VALUES(#{city}, #{num})")int insertHappiness(@Param("city") String city, @Param("num") Integer num);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Service类

事务管理只需要在方法上加个注解:@Transactional

@Service
public class HappinessService {@Autowiredprivate HappinessDao happinessDao;public Happiness selectService(String city){return happinessDao.findHappinessByCity(city);}@Transactionalpublic void insertService(){happinessDao.insertHappiness("西安", 9421);int a = 1 / 0; //模拟故障happinessDao.insertHappiness("长安", 1294);}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

MyBatis。Controller类

@RestController
@RequestMapping("/demo")
public class HappinessController {@Autowiredprivate HappinessService happinessService;@RequestMapping("/query")public Happiness testQuery(){return happinessService.selectService("北京");}@RequestMapping("/insert")public Happiness testInsert(){happinessService.insertService();return happinessService.selectService("西安");}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

测试

http://localhost:8080/demo/query
http://localhost:8080/demo/insert
  • 1
  • 2
  • 3

注解xml合并版

项目结构

SpringBoot配置文件

#配置数据源
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/dianpingusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driver#指定mybatis映射文件的地址
mybatis:mapper-locations: classpath:mapper/*.xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

映射类

@Mapper
public interface HappinessDao {Happiness findHappinessByCity(String city);int insertHappiness(HashMap<String, Object> map);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

映射文件

<mapper namespace="com.example.demo.dao.HappinessDao"><select id="findHappinessByCity" parameterType="String" resultType="com.example.demo.domain.Happiness">SELECT * FROM happiness WHERE city = #{city}</select><insert id="insertHappiness" parameterType="HashMap" useGeneratedKeys="true" keyProperty="id">INSERT INTO happiness(city, num) VALUES(#{city}, #{num})</insert>
</mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Service类

事务管理只需要在方法上加个注解:@Transactional

@Service
public class HappinessService {@Autowiredprivate HappinessDao happinessDao;public Happiness selectService(String city){return happinessDao.findHappinessByCity(city);}@Transactionalpublic void insertService(){HashMap<String, Object> map = new HashMap<String, Object>();map.put("city", "西安");map.put("num", 9421);happinessDao.insertHappiness(map);int a = 1 / 0; //模拟故障happinessDao.insertHappiness(map);}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

Controller类

@RestController
@RequestMapping("/demo")
public class HappinessController {@Autowiredprivate HappinessService happinessService;@RequestMapping("/query")public Happiness testQuery(){return happinessService.selectService("北京");}@RequestMapping("/insert")public Happiness testInsert(){happinessService.insertService();return happinessService.selectService("西安");}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

测试

http://localhost:8080/demo/query
http://localhost:8080/demo/insert
  • 1
  • 2
  • 3
版权声明:转载请注明出处! https://blog.csdn.net/litianxiang_kaola/article/details/79481422
文章标签: SpringBootMybatis整合
个人分类: Mybatis笔记

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/98282.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息