这里介绍两种整合SpringBoot和Mybatis的模式,分别是“全注解版” 和 “注解xml合并版”。
前期准备
开发环境
- 开发工具:IDEA
- JDK:1.8
- 技术:SpringBoot、Maven、Mybatis
创建项目
项目结构
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>
全注解版
SpringBoot配置文件
这里使用yml格式的配置文件,将application.properties改名为application.yml。
#配置数据源
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/dianping?useUnicode=true&characterEncoding=utf8
username: root
password: 123
driver-class-name: com.mysql.jdbc.Driver
SpringBoot会自动加载application.yml相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中。
实体类
public class Happiness {
private Long id;
private String city;
private Integer num;
//getters、setters、toString
}
映射类
@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);
}
Service类
事务管理只需要在方法上加个注解:@Transactional
@Service
public class HappinessService {
@Autowired
private HappinessDao happinessDao;
public Happiness selectService(String city){
return happinessDao.findHappinessByCity(city);
}
@Transactional
public void insertService(){
happinessDao.insertHappiness("西安", 9421);
int a = 1 / 0; //模拟故障
happinessDao.insertHappiness("长安", 1294);
}
}
Controller类
@RestController
@RequestMapping("/demo")
public class HappinessController {
@Autowired
private HappinessService happinessService;
@RequestMapping("/query")
public Happiness testQuery(){
return happinessService.selectService("北京");
}
@RequestMapping("/insert")
public Happiness testInsert(){
happinessService.insertService();
return happinessService.selectService("西安");
}
}
测试
http://localhost:8080/demo/query
http://localhost:8080/demo/insert
注解xml合并版
项目结构
SpringBoot配置文件
#配置数据源
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/dianping
username: root
password: 123
driver-class-name: com.mysql.jdbc.Driver
#指定mybatis映射文件的地址
mybatis:
mapper-locations: classpath:mapper/*.xml
映射类
@Mapper
public interface HappinessDao {
Happiness findHappinessByCity(String city);
int insertHappiness(HashMap<String, Object> map);
}
映射文件
<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>
Service类
事务管理只需要在方法上加个注解:@Transactional
@Service
public class HappinessService {
@Autowired
private HappinessDao happinessDao;
public Happiness selectService(String city){
return happinessDao.findHappinessByCity(city);
}
@Transactional
public 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);
}
}
Controller类
@RestController
@RequestMapping("/demo")
public class HappinessController {
@Autowired
private HappinessService happinessService;
@RequestMapping("/query")
public Happiness testQuery(){
return happinessService.selectService("北京");
}
@RequestMapping("/insert")
public Happiness testInsert(){
happinessService.insertService();
return happinessService.selectService("西安");
}
}
测试
http://localhost:8080/demo/query
http://localhost:8080/demo/insert
相关推荐
在这个"springboot和mybatis整合(单多表)"的案例中,我们将深入探讨如何将这两个框架结合起来处理单表和多表的操作,以用户注册登录和文章查询作者为例。 首先,让我们了解Spring Boot与MyBatis的基本整合步骤: 1...
SpringBoot和MyBatis是两个在Java开发领域广泛使用的开源框架。SpringBoot简化了Spring应用的初始搭建以及开发过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。现在我们来深入...
在本项目中,"springboot+mybatis整合实现注册登录"是一个典型的Web应用程序开发实例,主要涉及Spring Boot和MyBatis两大技术框架的融合应用。Spring Boot简化了Spring应用程序的初始搭建以及开发过程,而MyBatis则...
基于 Maven 多模块实现 SpringBoot 和 MyBatis 整合、RestFul URL 设计 如何使用 1、新建数据库 summer、导入数据库文件 summer.sql 2、使用 IntelliJ IDEA 导入 Maven 项目,项目名任意 3、修改数据库连接信息,在...
Spring Boot 和 Mybatis 的整合是现代 Java 开发中的常见实践,它简化了传统的 Spring 框架配置,提供了快速开发 Web 应用程序的能力,而 Mybatis 作为轻量级的持久层框架,使得数据库操作更加灵活和高效。...
进一步研究这个文件,我们可以看到具体如何组织和实现SpringBoot、MyBatis和Oracle的整合。 通过深入学习和实践这个整合代码,开发者可以掌握SpringBoot的便捷性,MyBatis的灵活性,以及Oracle数据库的强大功能,...
以上就是SpringBoot+MyBatis整合JSP的简单步骤。在实际开发中,你可能还需要处理异常、添加安全控制、优化性能等方面的工作。这个过程涉及到的知识点广泛,包括SpringBoot的自动配置原理、MyBatis的SQL映射机制、JSP...
这个工程是springboot+mybatis整合,用的是freemark解析前端文件,还有MyBatisPlusGenerator连接数据库生成代码,算是一个比较基础的demo吧,这也是我认真搭建的第一个springboot工程
本项目"springboot+mybatis+bootstrap整合的简单框架"旨在提供一个快速开发的解决方案,将三个流行的开源技术——Spring Boot、MyBatis和Bootstrap融合在一起,以简化Web应用的构建过程。 Spring Boot是由Pivotal...
这是SpringBoot整合MyBatis实现的简易登陆注册。这里所使用的开发环境是:IDEA、MySQL_8.0.17、Java8;其中用到了Druid数据库连接池。这个登录注册demo中,登录失败有两种情况:①账户不存在;②密码错误。注册失败...
主流技术 几乎零XML,极简配置 两套UI实现(bootstrap+layer ui),可以自由切换 报表后端采用技术: SpringBoot整合SSM(Spring+Mybatis-plus+ SpringMvc),spring security 全注解式的权限管理和JWT方式禁用Session,...
Spring Boot与MyBatis整合** - **添加依赖**:首先,我们需要在`pom.xml`文件中引入Spring Boot的starter-web和MyBatis的依赖。 ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-...
Springboot整合Mybatis MyBatis 的前身是 Apache 的开源项目 iBatis。MyBatis 几乎可以代替 JDBC,是一个支持普通 SQL 查询,存储过程和高级映射的基于 Java 的优秀持久层框架。 MyBatis 与 JDBC 相比,减少了 ...
总的来说,SpringBoot与Mybatis的整合让Web应用开发变得更加高效,而登录注册和拦截器的配置则涉及到用户认证与权限控制,这些都是构建Web应用时不可或缺的部分。通过深入理解这些知识点,开发者能够更好地掌握...
【标题】"springboot-mybatis-demo"是一个演示项目,展示了如何在Spring Boot框架下整合MyBatis和MySQL数据库。这个项目是基于现有的示例代码进行调整和改造的,旨在为学习者提供一个基础的实践环境。 【描述】该...
在IT行业中,SpringBoot和Mybatis是两个非常重要的框架,它们在开发Java Web应用程序时起着关键作用。SpringBoot简化了Spring应用的初始搭建以及开发过程,而Mybatis则是一个优秀的持久层框架,使得数据库操作变得...
在这个"SpringBoot+mybatis简单demo完整详细版"项目中,你将学到Spring Boot与MyBatis的集成技巧,以及如何利用它们来实现基础的用户管理功能和应用增强。通过实践这个项目,你将对Spring Boot的自动化配置、MyBatis...
通过这样的整合,我们可以享受到SpringBoot的便捷和MyBatis Plus的高效。这种模式使得代码更易于维护,同时也简化了数据库操作,提升了开发效率。在实际应用中,你还可以结合其他SpringBoot特性,如自动配置、AOP、...
SpringBoot+Mybatis -plus+Mysql+Vue渲染整合,需求为,院系和学生之间的多对一关系管理,外键不可删除,添加学生时完整显示学院姓名,成功添加,删除,修改,查询,模糊查询包括下拉框(院系),区间段(学生年龄)...
《SpringBoot与Mybatis整合详解》 在Java开发领域,SpringBoot和Mybatis是两个非常重要的框架。SpringBoot以其简洁的配置和快速的启动能力深受开发者喜爱,而Mybatis作为轻量级的持久层框架,提供了灵活的SQL操作,...