spring boot-14.集成MyBatis
1.如何使用注解版Mybatis?
(1)引入mybatis ,druid,Mysql 的依赖,环境搭建可以参考第13篇的内容
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
(2)使用@Mapper注解。如果不想使用注解在每个接口上去标记,那么可以在主类上使用@MapperScan(value = "com.springboot.dao") 批量扫描接口
package com.springboot.dao; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select; import com.springboot.entity.StockCode; @Mapper
public interface Stock { @Select("select * from stock_code where id = #{id}")
public StockCode getStockByID(Integer id); }
(3)这下Mybatis 的整合就完成,直接在controller中测试就行了
package com.springboot.controller; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController; import com.springboot.dao.Stock;
import com.springboot.dao.StockCodeMapper;
import com.springboot.entity.StockCode; @RestController
public class StockController {
@Autowired
private Stock stockmapper; @GetMapping("/getStock/{id}")
public StockCode getStockByID(@PathVariable("id")Integer id) {
StockCode stock = stockmapper.getStockByID(id);
return stock;
}
}
这时我们会发现下面的情况,实体的属性的值为空,这时因为我们的数据字段单词中间是有下划线的,而实体是没有的,所以导致无法映射。
解决办法是:开启mybatis 的驼峰写法,在全局配置文件中添加一下配置即可
2.配置文件版集成MyBatis
(1)编写Mybatis 全局配置文件
<?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>
<!--开启驼峰命名法 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
(2)编写Mybatis sql映射文件
(3)在全局配置文件声明mybatis 配置文件的位置和sql映射文件的位置
mybatis:
# 指定全局配置文件位置
config-location: classpath:mybatis-config.xml
# 指定sql映射文件位置
mapper-locations: classpath:mapper/*.xml
(4)这样mybatis 已经集成完了,我们可以测试了
package com.springboot.controller; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController; import com.springboot.dao.Stock;
import com.springboot.dao.StockCodeMapper;
import com.springboot.entity.StockCode; @RestController
public class StockController { @Autowired
StockCodeMapper stockCodeMapper; @GetMapping("/getStock/{id}")
public StockCode getStockByID(@PathVariable("id")Integer id) {
StockCode stock = stockCodeMapper.selectByPrimaryKey(id);
return stock;
}
}
spring boot-14.集成MyBatis的更多相关文章
- 小代学Spring Boot之集成MyBatis
想要获取更多文章可以访问我的博客 - 代码无止境. 上一篇小代同学在Spring Boot项目中配置了数据源,但是通常来讲我们访问数据库都会通过一个ORM框架,很少会直接使用JDBC来执行数据库操作的 ...
- spring boot(三) 集成mybatis
前言 还记得之前我们写接口也是基于SpringMVC+MyBatis环境下,项目入手就需要N个配置文件,N个步骤才能实现,不但繁琐,而且时间长了xml配置文件太多,难以维护.现在基于spring bo ...
- Spring Boot入门——集成Mybatis
步骤: 1.新建maven项目 2.在pom.xml文件中引入相关依赖 <!-- mysql依赖 --> <dependency> <groupId>mysql&l ...
- Spring Boot:实现MyBatis动态数据源
综合概述 在很多具体应用场景中,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库.又比如业务A要访问A数据库,业务B要访问B数据库等,都可以使用动态数据 ...
- Spring Boot:整合MyBatis框架
综合概述 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单 ...
- Spring Boot:集成Druid数据源
综合概述 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据 ...
- [转帖]spring boot项目集成jacoco
小试牛刀:spring boot项目集成jacoco 2019-03-28 20:14:36 zyq23333 阅读数 509 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议, ...
- Spring Boot中使用MyBatis注解配置详解(1)
之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...
- spring boot 2使用Mybatis多表关联查询
模拟业务关系:一个用户user有对应的一个公司company,每个用户有多个账户account. spring boot 2的环境搭建见上文:spring boot 2整合mybatis 一.mysq ...
- spring boot 2整合mybatis
mybatis-spring-boot-starter主要有两种解决方案,一种是使用注解,一种是使用XML. 参考这篇文章动手跑了一个例子,稍微不同之处,原文是spring boot,这里改成了spr ...
随机推荐
- CSS3的2D 转换——旋转,缩放,translate(),skew(),matrix()
2D转换方法:在平面对元素进行旋转,缩放,移动,拉伸. ㈠浏览器支持 ⑴2D转换效果有以下的浏览器支持: ⑵在编辑代码的时候要注明用哪种浏览器打开,在前面加上前缀,下面是编辑器的简写形式,以及前缀 ...
- cordova打包遇到Connection timedout:
在cordova项目打包时,有时候处在公司内网环境,导致有些文件无法下载报下面的错误: A problem occurred configuring root project 'android'. & ...
- UVa 1595 Symmetry (set && math)
题意:给出n个在直角坐标系上的点,问你能不能找出一条竖轴(即垂直于x的轴)使得所有的点根据这条轴对称,能则输出YES,否则输出NO 分析:首先需要找到对称轴的值,将所有n个点的x轴的值加起来然后去除以 ...
- R & and &&
https://blog.csdn.net/jining11/article/details/84933110 和C中的&不用,不要用&&,一般情况都是用&表示并且
- 论文阅读:Camdoop: Exploiting In-network Aggregation for Big Data Applications
摘要: 大公司与中小型企业每天都在批处理作业和实时应用程序中处理大量数据,这会产生大量的网络流量,而使用传统的的网络基础架构则很难支持.为了解决这个问题已经提出了几种新颖的网络拓扑,旨在增加企业集群中 ...
- 利用H5缓存机制实现点击按钮第一次与之后再点击分别跳转不同页面
昨天碰到这样一个需求,要求点击按钮第一次跳转到a页面,之后再点击它就跳转到b页面.这个问题我首先就想到了利用H5的缓存sessionstorage来实现,SessionStorage用于本地存储一个会 ...
- JavaWeb_Servlet生命周期
菜鸟教程 传送门 Servlet生命周期 package com.Gary.servlet; import java.io.IOException; import javax.servlet.Serv ...
- JAVA源文件中可以包含多个类
可以的,一个“.java”源文件里面可以包含多个类,但是只允许有一个public类,并且类名必须和文件名一直:例如: package test; public class test { } class ...
- mysql 查询一个月的数据
//今天 select * from 表名 where to_days(时间字段名) = to_days(now()); //昨天 SELECT * FROM 表名 WHERE TO_DAYS( NO ...
- LeetCode328----奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂度应为 O(1),时 ...