Spring Boot入门——集成Mybatis
步骤:
1、新建maven项目
2、在pom.xml文件中引入相关依赖
<!-- mysql依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.42</version>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
3、在application.properties文件中添加配置信息
#mysql数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
4、编写Grade类
package com.wyl.bean;
public class Grade {
private int id;
private String gradeNm;
private int teacherId;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGradeNm() {
return gradeNm;
}
public void setGradeNm(String gradeNm) {
this.gradeNm = gradeNm;
}
public int getTeacherId() {
return teacherId;
}
public void setTeacherId(int teacherId) {
this.teacherId = teacherId;
}
}
Grade class
5、编写mapper
import java.util.List;
import org.apache.ibatis.annotations.Select;
import com.wyl.bean.Grade;
public interface GradeMapper {
@Select("select * from grade where grade_nm=#{name}")
public List<Grade> getByGradeNm(String name);
@Insert("insert into grade(grade_nm,teacher_id) values(#{gradeNm},#{teacherId})")
@Options(useGeneratedKeys=true,keyColumn="id",keyProperty="id")//设置id自增长
public void save(Grade grade);
}
6、编写service
import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.wyl.bean.Grade;
import com.wyl.dao.GradeMapper; @Service
public class GradeService { @Autowired
private GradeMapper gradeMapper; public List<Grade> getByGradeNm(String name){
return gradeMapper.getByGradeNm(name);
} }
Grade Service
7、编写Controller
import java.util.List; import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import com.wyl.bean.Grade;
import com.wyl.service.GradeService; @RestController
public class GradeController { @Resource
private GradeService gradeService; @RequestMapping("/getByGradeNm")
public List<Grade> getByGradeNm(String name){
return gradeService.getByGradeNm(name);
}
}
GradeController
8、创建启动类App.java,添加自动扫描mapper
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; /**
* Hello world!
*
*/
@SpringBootApplication
@MapperScan("com.wyl.dao")//告诉mapper所在的包名
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
SpringApplication.run(App.class, args);
}
}
5、测试结果

在上述结果中,输出的gradeNm字段的值为空,是由于设置接收的属性为name,可以在mapper中设置属性和数据库中字段的匹配
public interface GradeMapper {
@Select("select * from grade where grade_nm=#{name}")
@Results({
@Result(column="id", property="id"),
@Result(column="grade_nm", property="gradeNm"),
@Result(column="teacher_id", property="teacherId")
})
public List<Grade> getByGradeNm(String name);
}
之后结果为:

9、使用PageHelper分页插件
a、引入springboot自带的分页插件
<!-- 引入spring boot自带的pagehelper插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
@RequestMapping("/getByGradeNm2")
public List<Grade> getByGradeNm2(String name){
PageHelper.startPage(1,2); //显示第一页2条数据
return gradeService.getByGradeNm(name);
}
b、引入外部分页插件
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.2</version>
</dependency>
新建配置类,配置pagehelper的属性
import java.util.Properties; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import com.github.pagehelper.PageHelper; @Configuration
public class MybatisConfiguration { @Bean
public PageHelper pageHelper(){
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("offsetAsPageNum","true");
properties.setProperty("rowBoundsWithCount","true");
properties.setProperty("reasonable","true"); pageHelper.setProperties(properties);
return pageHelper;
}
}
@RequestMapping("/getByGradeNm2")
public List<Grade> getByGradeNm2(String name){
PageHelper.startPage(1,2); //显示第一页2条数据
return gradeService.getByGradeNm(name);
}
Spring Boot入门——集成Mybatis的更多相关文章
- 小代学Spring Boot之集成MyBatis
想要获取更多文章可以访问我的博客 - 代码无止境. 上一篇小代同学在Spring Boot项目中配置了数据源,但是通常来讲我们访问数据库都会通过一个ORM框架,很少会直接使用JDBC来执行数据库操作的 ...
- spring boot(三) 集成mybatis
前言 还记得之前我们写接口也是基于SpringMVC+MyBatis环境下,项目入手就需要N个配置文件,N个步骤才能实现,不但繁琐,而且时间长了xml配置文件太多,难以维护.现在基于spring bo ...
- Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件
上一篇文章,写了如何搭建一个简单的Spring boot项目,本篇是接着上一篇文章写得:Spring boot入门:快速搭建Spring boot项目(一),主要是spring boot集成mybat ...
- Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存
本片文章续<Spring Boot 入门(九):集成Quartz定时任务>.本文主要基于redis实现了mybatis二级缓存.较redis缓存,mybaits自带缓存存在缺点(自行谷歌) ...
- Spring Boot 入门(五):集成 AOP 进行日志管理
本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...
- Spring boot入门(三):SpringBoot集成结合AdminLTE(Freemarker),利用generate自动生成代码,利用DataTable和PageHelper进行分页显示
关于SpringBoot和PageHelper,前篇博客已经介绍过Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件,前篇博客大致讲述了S ...
- Spring Boot 入门(十一):集成 WebSocket, 实时显示系统日志
以前面的博客为基础,最近一篇为Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存.本篇博客主要介绍了Spring Boot集成 Web Socket进行日志的推送, ...
- Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版
一.前言 什么是MyBatis?MyBatis是目前Java平台最为流行的ORM框架https://baike.baidu.com/item/MyBatis/2824918 本篇开发环境1.操作系统: ...
- Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...
随机推荐
- 为什么要提倡"Design Pattern"呢? 开闭原则 系统设计时,注意对扩展开放,对修改闭合。
[亲身经历] 无规矩不成方圆 设计模式 - 搜狗百科 https://baike.sogou.com/v123729.htm?fromTitle=设计模式 为什么要提倡"Design Pat ...
- python面试题(四)
1 常用字符串格式化哪几种? 最方便的 print('hello %s and %s' % ('df', 'another df')) 复制代码 但是,有时候,我们有很多的参数要进行格式化,这个时候, ...
- Android系统移植与调试之------->如何修改Android的默认语言、默认时区
修改device/other/TBDG1073/ system.prop文件 1.设置默认语言 找到device/other/TBDG1073/ system.prop文件,修改属性ro.produc ...
- ReentrantLock VS synchronized
ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票.定时锁等候和可中断锁等候的一些特性. 此外,它还提供了在激烈争用情况 ...
- 画图-drawpoint and drawpath
版权声明:本文因海牛宝宝童鞋才疏学浅,可能晦涩难懂,但也是呕心沥血之作,麻烦转载的时候留个申明. https://blog.csdn.net/u012321815/article/details/26 ...
- LATEX教程(二)
插入图片 \documentclass{article} \usepackage{graphicx} \usepackage{Ctex} \title{插入图片} \author{yif} \begi ...
- 【转】ModelAndView 学习
http://blog.csdn.net/wavaya/article/details/6185226 ModelAndView 类别就如其名称所示,是代表了Spring Web MVC程式中呈现画面 ...
- 【渗透神器系列】Fiddler (收藏)
发表于 2017-04-27 | 分类于 安全工具 | | 阅读次数 593 人世起起落落 左手边上演的华灯初上 右手边是繁华落幕的星点余光 本篇作为渗透神器系列第二篇,将介绍 ...
- Loadrunder脚本篇——webservice接口测试(一)
函数介绍 soap_request 函数执行一个SOAP请求 函数原型 int soap_request( const char *StepName, ExpectedResponse, URL, , ...
- linux eclipse的桌面快捷方式
在桌面上创建一个eclipse.desktop [Desktop Entry] Encoding=UTF- Name=Eclipse Comment=Eclipse IDE Exec=/opt/Dev ...