Spring boot 整合 Mybatis (完整版)
最近工作上时间有点多,然后自己就学习了一下Spring boot,外加上Mybatis,在实际开发中都是比较常用的,所以这篇写一下SpringBoot整合Mybatis。
一、数据准备
CREATE TABLE `bookbean` (
`name` varchar(255) DEFAULT NULL,
`author` varchar(255) DEFAULT NULL,
`price` varchar(255) DEFAULT NULL
) INSERT INTO `bookbean` VALUES ('张三', 'ZHANGSAN', '');
INSERT INTO `bookbean` VALUES ('李四', 'LISI', '');
INSERT INTO `bookbean` VALUES ('王五', 'WANGWU', '');
二、引入依赖
<?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.1.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>
<mybatis.version>3.4.5</mybatis.version>
<mybatis-spring.version>1.3.1</mybatis-spring.version>
<mysql.version>6.0.6</mysql.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency> <!-- mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency> <!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency> <dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency> <!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.29</version>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>
三、数据库配置文件
项目application.properties内容如下:
banner.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8
#配置设置不同的信息名字获取不同的配置文件
#application-dev.properties:用于开发环境
#application-test.properties:用于测试环境
#application-prod.properties:用于生产环境
spring.profiles.active=dev #spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy。
#如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可
logging.config=classpath:logback-spring.xml ######数据库链接配置########
spring.datasource.url=jdbc\:mysql\://127.0.0.1\:3306/aa
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000 mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
mybatis.config-location=classpath:mybatis/mybatis-config.xml
四、代码
实体类BookBean.java
public class BookBean {
private String name;
private String author;
private String price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
@Override
public String toString() {
return "BookBean [name=" + name + ", author=" + author + ", price="
+ price + "]";
}
public BookBean(String name, String author, String price) {
super();
this.name = name;
this.author = author;
this.price = price;
}
public BookBean() {
// TODO Auto-generated constructor stub
}
}
BookBeanMapper.java
package com.example.demo.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; import com.example.demo.bean.BookBean; @Mapper
public interface BookBeanMapper { /**
* 集合
* @return
*/
public List<BookBean> findBookBeanInfo(); /**
* 添加
* @param bookBean
* @return
*/
public int addBookBeanInfo(BookBean bookBean); /**
* 删除
* @param id
* @return
*/
public int delBookBeanInfo(String id);
}
BookBeanService.java
package com.example.demo.service;
import java.util.List;
import com.example.demo.bean.BookBean;
public interface BookBeanService {
/**
* 集合
* @return
*/
public List<BookBean> findBookBeanInfo();
/**
* 添加
* @param bookBean
* @return
*/
public int addBookBeanInfo(BookBean bookBean);
/**
* 删除
* @param id
* @return
*/
public int delBookBeanInfo(String id);
}
BookBeanServiceImpl.java
package com.example.demo.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.example.demo.bean.BookBean;
import com.example.demo.mapper.BookBeanMapper;
import com.example.demo.service.BookBeanService; @Service
public class BookBeanServiceImpl implements BookBeanService{ @Autowired
private BookBeanMapper bookBeanMapper; @Override
public List<BookBean> findBookBeanInfo() { return bookBeanMapper.findBookBeanInfo();
} @Override
public int addBookBeanInfo(BookBean bookBean) { return bookBeanMapper.addBookBeanInfo(bookBean);
} @Override
public int delBookBeanInfo(String id) { return bookBeanMapper.delBookBeanInfo(id);
} }
TestController.java
package com.example.demo.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import com.example.demo.bean.BookBean;
import com.example.demo.service.BookBeanService;
import com.example.demo.util.JsonResult; @RestController
@RequestMapping(value="/demo")
public class TestController { @Autowired
private BookBean bookBean; @Autowired
private BookBeanService bookBeanService; @RequestMapping(value="/helloworld",produces="text/plan;charset=UTF-8")
public String helloworld() {
System.out.println(bookBean.toString());
return "helloworld-"+bookBean.getName()+"----"+bookBean.getAuthor()+"----"+bookBean.getPrice();
} @GetMapping("/helloworld2")
public String helloworld2() {
return "helloworld2";
} /**
* 根据id删除用户
* @param id
* @return
*/
@RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
public ResponseEntity<JsonResult> delete (@PathVariable(value = "id") String id){
JsonResult r = new JsonResult();
try {
int ret = bookBeanService.delBookBeanInfo(id);
if (ret < 0) {
r.setResult(ret);
r.setStatus("fail");
} else {
r.setResult(ret);
r.setStatus("ok");
}
} catch (Exception e) {
r.setResult(e.getClass().getName() + ":" + e.getMessage());
r.setStatus("error"); e.printStackTrace();
}
return ResponseEntity.ok(r);
} /**
* 查询
* @return
*/
@RequestMapping(value="/find")
public ResponseEntity<JsonResult> add(){
JsonResult r = new JsonResult();
try {
System.out.println(1);
List<BookBean> findBookBeanInfo = bookBeanService.findBookBeanInfo();
r.setResult(findBookBeanInfo);
r.setStatus("ok");
} catch (Exception e) {
r.setResult(e.getClass().getName() + ":" + e.getMessage());
r.setStatus("error"); e.printStackTrace();
} return ResponseEntity.ok(r); } }
JsonResult类是一个通用转json的工具类 如下:
package com.example.demo.util; /**
* 通用json返回类
* @author Administrator
*
*/
public class JsonResult {
private String status = null; private Object result = null; public JsonResult status(String status) {
this.status = status;
return this;
} public String getStatus() {
return status;
} public void setStatus(String status) {
this.status = status;
} public Object getResult() {
return result;
} public void setResult(Object result) {
this.result = result;
} }
目录结构:

BookbeanMapper.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.example.demo.mapper.BookBeanMapper" >
<resultMap id="bookBeanMap" type="bookBean" >
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="author" property="author" jdbcType="VARCHAR" />
<result column="price" property="price" jdbcType="VARCHAR"/>
</resultMap> <sql id="bookbean" >
name,author,price
</sql> <select id="findBookBeanInfo" resultMap="bookBeanMap">
select <include refid="bookbean"/> from BOOKBEAN
</select> <insert id="addBookBeanInfo" parameterType="bookBean">
insert into BOOKBEAN(name,author,price) values(#{name},#{author},#{price})
</insert> <delete id="delBookBeanInfo" parameterType="string">
delete from BOOKBEAN where price = #{price}
</delete> </mapper>
然后启动DemoApplication.java 打开浏览器 输入http://localhost:8081/demo/find 就出现下图

完成到这里说明springboot整合mybatis就成功了,有什么不对的地方欢迎朋友们提出建议!
版权声明:本文为博主原创文章,未经博主允许不得转载。
http://www.cnblogs.com/tangyin/p/8862687.html
Spring boot 整合 Mybatis (完整版)的更多相关文章
- 太妙了!Spring boot 整合 Mybatis Druid,还能配置监控?
Spring boot 整合 Mybatis Druid并配置监控 添加依赖 <!--druid--> <dependency> <groupId>com.alib ...
- Spring Boot整合Mybatis并完成CRUD操作
MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...
- spring boot 整合 mybatis 以及原理
同上一篇文章一样,spring boot 整合 mybatis过程中没有看见SqlSessionFactory,sqlsession(sqlsessionTemplate),就连在spring框架整合 ...
- Spring Boot 整合mybatis时遇到的mapper接口不能注入的问题
现实情况是这样的,因为在练习spring boot整合mybatis,所以自己新建了个项目做测试,可是在idea里面mapper接口注入报错,后来百度查询了下,把idea的注入等级设置为了warnin ...
- Spring Boot整合Mybatis报错InstantiationException: tk.mybatis.mapper.provider.base.BaseSelectProvider
Spring Boot整合Mybatis时一直报错 后来发现原来主配置类上的MapperScan导错了包 由于我使用了通用Mapper,所以应该导入通用mapper这个包
- Spring Boot整合MyBatis(非注解版)
Spring Boot整合MyBatis(非注解版),开发时采用的时IDEA,JDK1.8 直接上图: 文件夹不存在,创建一个新的路径文件夹 创建完成目录结构如下: 本人第一步习惯先把需要的包结构创建 ...
- Spring Boot整合Mybatis完成级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- Spring Boot系列(三):Spring Boot整合Mybatis源码解析
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...
- Spring boot整合Mybatis
时隔两个月的再来写博客的感觉怎么样呢,只能用“棒”来形容了.闲话少说,直接入正题,之前的博客中有说过,将spring与mybatis整个后开发会更爽,基于现在springboot已经成为整个业界开发主 ...
- Spring Boot 整合 Mybatis 实现 Druid 多数据源详解
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲一.多数据源的应用场景二.运行 sp ...
随机推荐
- rpm打包工具---FPM
FPM的安装:fpm是由ruby gem仓库里面安装的所以要先装ruby.yum安装的ruby版本是1.8.7版本,使用gem命令会报错: >= 1.9.3,所以要安装一个比1.9.3版本高的 ...
- C语言第零次作业总结
本次作业发现的亮点 没有发现抄袭的现象,大家都是独立且认真地完成这次的作业,希望再接再厉,继续保持 戴洁 陈欢 陈张鑫三位同学的博客写的不错,希望同学们向这三位同学学习,认真对待每次作业 本次作业的问 ...
- C语言第一次作业——输入输出格式
题目1温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代码 #include& ...
- 20145237 实验五《Java网络编程》
20145237 实验五<Java网络编程> 一.实验内容 •1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: •2.利用加解密代码包,编译运行代码,一人加密,一人解密: •3 ...
- JAVAGUI设计步骤
①创建容器 首先要创建一个GUI应用程序,需要创建一个用于容纳所有其它GUI组件元素的载体,Java中称为容器.典型的包括窗口(Window).框架(Frame/JFrame).对话框(Dialog/ ...
- highcharts 具体参数详解
<script type="text/javascript" src="js/jquery.min.js"></script> < ...
- JAVA_SE基础——41.instanceof关键字(运算符)
instanceof 关键字 instanceof关键字的作用:判断一个对象是否属于指定的类别. instanceof关键字的使用前提:判断的对象与指定的类别必须要存在继承或者实现的关系.关于实现以后 ...
- EasyUI 动态创建对话框Dialog
// 拒绝审批通过 function rejectApproval() { // 创建填写审批意见对话框 $("<div id='reject-comment'> </di ...
- mingw打dll ,lib包命令和调用
1,下面的命令行将这个代码编译成 dll. gcc mydll.c -shared -o mydll.dll -Wl,--out-implib,mydll.lib 其中 -shared 告诉gcc d ...
- spring2——IOC之Bean的装配
spring容器对于bean的装配提供了两个接口容器分别是"ApplicationContext接口容器"和"BeanFactory接口容器",其中" ...