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 ...
随机推荐
- 【Python】 发邮件用 smtplib & email
smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要 ...
- 大数据 --> 分布式服务框架Zookeeper
分布式服务框架 Zookeeper Zookeeper系列 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
- hibernate框架学习笔记3:API详解
Configuration对象: package api; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configur ...
- 连接数据后,当执行查询语句报错:ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
参考博客:http://blog.csdn.net/lanchengxiaoxiao/article/details/40982771 1.在cmd窗口通过sqlplus连接数据库 C:\Users\ ...
- 高级软件工程2017第7次作业--团队项目:Beta阶段综合报告
Deadline:2017-11-06(周一) 21:00pm (注:以下内容参考集大作业8 集大作业9 集大作业10 ) 0.评分规则: 按时交 - 有分,内容包括以下5个方面: Beta阶段敏捷冲 ...
- 201621123062《java程序设计》第12周作业总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 思维导图: 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车. 2. ...
- Bate敏捷冲刺每日报告--day2
1 团队介绍 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(267),蔡凯峰(285) Git链接:https://github.com/WHUSE2017/C-team 2 ...
- 《高级软件测试》web测试实践--12月31日记录
今日的任务进度如上图所示.我们对华科软件学院和计算机学院的网站进行了对比分析,分析的角度包括基本功能分析.前端性能分析.用户调研等.在这里我们简单总结下我们得到的评测结果. 基本功能分析:计算机学院和 ...
- SDOI2017 相关分析
把两个式子拆开 Σ(xi-px)(yi-py) =Σ xiyi + py * Σ xi - px * Σ yi + Σ 1* px * py Σ (xi-px)² = Σ xi² + px * Σ ...
- 构建微服务开发环境3————Java应用的优秀管理工具Maven的下载安装及配置
[内容指引] 下载安装包: MacOS下Maven的安装及配置: Windows下Maven的安装及配置. 一.下载安装包 进入Maven的官方下载地址:http://maven.apache.org ...