最近工作上时间有点多,然后自己就学习了一下Spring boot,外加上Mybatis,在实际开发中都是比较常用的,所以这篇写一下SpringBoot整合Mybatis。

一、数据准备

  

  1. CREATE TABLE `bookbean` (
  2. `name` varchar(255) DEFAULT NULL,
  3. `author` varchar(255) DEFAULT NULL,
  4. `price` varchar(255) DEFAULT NULL
  5. )
  6.  
  7. INSERT INTO `bookbean` VALUES ('张三', 'ZHANGSAN', '');
  8. INSERT INTO `bookbean` VALUES ('李四', 'LISI', '');
  9. INSERT INTO `bookbean` VALUES ('王五', 'WANGWU', '');

二、引入依赖

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3.  
  4. <modelVersion>4.0.0</modelVersion>
  5.  
  6. <groupId>com.example</groupId>
  7. <artifactId>demo</artifactId>
  8. <version>0.0.1-SNAPSHOT</version>
  9. <packaging>jar</packaging>
  10.  
  11. <name>demo</name>
  12. <description>Demo project for Spring Boot</description>
  13.  
  14. <parent>
  15. <groupId>org.springframework.boot</groupId>
  16. <artifactId>spring-boot-starter-parent</artifactId>
  17. <version>2.0.1.RELEASE</version>
  18. <relativePath/> <!-- lookup parent from repository -->
  19. </parent>
  20.  
  21. <properties>
  22. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  23. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  24. <java.version>1.8</java.version>
  25. <mybatis.version>3.4.5</mybatis.version>
  26. <mybatis-spring.version>1.3.1</mybatis-spring.version>
  27. <mysql.version>6.0.6</mysql.version>
  28. </properties>
  29.  
  30. <dependencies>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-web</artifactId>
  34. </dependency>
  35. <!-- 热部署 -->
  36. <dependency>
  37. <groupId>org.springframework.boot</groupId>
  38. <artifactId>spring-boot-devtools</artifactId>
  39. <optional>true</optional>
  40. <scope>true</scope>
  41. </dependency>
  42. <dependency>
  43. <groupId>org.springframework.boot</groupId>
  44. <artifactId>spring-boot-starter-test</artifactId>
  45. <scope>test</scope>
  46. </dependency>
  47.  
  48. <!-- mybatis依赖 -->
  49. <dependency>
  50. <groupId>org.mybatis</groupId>
  51. <artifactId>mybatis</artifactId>
  52. <version>${mybatis.version}</version>
  53. </dependency>
  54.  
  55. <!-- mybatis-spring -->
  56. <dependency>
  57. <groupId>org.mybatis</groupId>
  58. <artifactId>mybatis-spring</artifactId>
  59. <version>${mybatis-spring.version}</version>
  60. </dependency>
  61.  
  62. <!-- mysql驱动包 -->
  63. <dependency>
  64. <groupId>mysql</groupId>
  65. <artifactId>mysql-connector-java</artifactId>
  66. <version>${mysql.version}</version>
  67. </dependency>
  68.  
  69. <dependency>
  70. <groupId>org.mybatis.spring.boot</groupId>
  71. <artifactId>mybatis-spring-boot-starter</artifactId>
  72. <version>1.3.0</version>
  73. </dependency>
  74.  
  75. <!-- 数据源 -->
  76. <dependency>
  77. <groupId>com.alibaba</groupId>
  78. <artifactId>druid</artifactId>
  79. <version>1.0.29</version>
  80. </dependency>
  81. </dependencies>
  82.  
  83. <build>
  84. <plugins>
  85. <plugin>
  86. <groupId>org.springframework.boot</groupId>
  87. <artifactId>spring-boot-maven-plugin</artifactId>
  88. </plugin>
  89. </plugins>
  90. </build>
  91.  
  92. </project>

三、数据库配置文件

  项目application.properties内容如下:

  1. banner.charset=UTF-8
  2. server.tomcat.uri-encoding=UTF-8
  3. spring.http.encoding.charset=UTF-8
  4. spring.http.encoding.enabled=true
  5. spring.http.encoding.force=true
  6. spring.messages.encoding=UTF-8
  7. #配置设置不同的信息名字获取不同的配置文件
  8. #application-dev.properties:用于开发环境
  9. #application-test.properties:用于测试环境
  10. #application-prod.properties:用于生产环境
  11. spring.profiles.active=dev
  12.  
  13. #spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy。
  14. #如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可
  15. logging.config=classpath:logback-spring.xml
  16.  
  17. ######数据库链接配置########
  18. spring.datasource.url=jdbc\:mysql\://127.0.0.1\:3306/aa
  19. spring.datasource.username=root
  20. spring.datasource.password=123456
  21. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  22. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  23. spring.datasource.initialSize=5
  24. spring.datasource.minIdle=5
  25. spring.datasource.maxActive=20
  26. spring.datasource.maxWait=60000
  27.  
  28. mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
  29. mybatis.config-location=classpath:mybatis/mybatis-config.xml

四、代码

实体类BookBean.java

  1. public class BookBean {
  2. private String name;
  3. private String author;
  4. private String price;
  5. public String getName() {
  6. return name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public String getAuthor() {
  12. return author;
  13. }
  14. public void setAuthor(String author) {
  15. this.author = author;
  16. }
  17. public String getPrice() {
  18. return price;
  19. }
  20. public void setPrice(String price) {
  21. this.price = price;
  22. }
  23. @Override
  24. public String toString() {
  25. return "BookBean [name=" + name + ", author=" + author + ", price="
  26. + price + "]";
  27. }
  28. public BookBean(String name, String author, String price) {
  29. super();
  30. this.name = name;
  31. this.author = author;
  32. this.price = price;
  33. }
  34. public BookBean() {
  35. // TODO Auto-generated constructor stub
  36. }
  37.  
  38. }

BookBeanMapper.java

  1. package com.example.demo.mapper;
  2.  
  3. import java.util.List;
  4.  
  5. import org.apache.ibatis.annotations.Mapper;
  6.  
  7. import com.example.demo.bean.BookBean;
  8.  
  9. @Mapper
  10. public interface BookBeanMapper {
  11.  
  12. /**
  13. * 集合
  14. * @return
  15. */
  16. public List<BookBean> findBookBeanInfo();
  17.  
  18. /**
  19. * 添加
  20. * @param bookBean
  21. * @return
  22. */
  23. public int addBookBeanInfo(BookBean bookBean);
  24.  
  25. /**
  26. * 删除
  27. * @param id
  28. * @return
  29. */
  30. public int delBookBeanInfo(String id);
  31. }

BookBeanService.java

  1. package com.example.demo.service;
  2.  
  3. import java.util.List;
  4.  
  5. import com.example.demo.bean.BookBean;
  6.  
  7. public interface BookBeanService {
  8. /**
  9. * 集合
  10. * @return
  11. */
  12. public List<BookBean> findBookBeanInfo();
  13.  
  14. /**
  15. * 添加
  16. * @param bookBean
  17. * @return
  18. */
  19. public int addBookBeanInfo(BookBean bookBean);
  20.  
  21. /**
  22. * 删除
  23. * @param id
  24. * @return
  25. */
  26. public int delBookBeanInfo(String id);
  27. }

BookBeanServiceImpl.java

  1. package com.example.demo.service.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7.  
  8. import com.example.demo.bean.BookBean;
  9. import com.example.demo.mapper.BookBeanMapper;
  10. import com.example.demo.service.BookBeanService;
  11.  
  12. @Service
  13. public class BookBeanServiceImpl implements BookBeanService{
  14.  
  15. @Autowired
  16. private BookBeanMapper bookBeanMapper;
  17.  
  18. @Override
  19. public List<BookBean> findBookBeanInfo() {
  20.  
  21. return bookBeanMapper.findBookBeanInfo();
  22. }
  23.  
  24. @Override
  25. public int addBookBeanInfo(BookBean bookBean) {
  26.  
  27. return bookBeanMapper.addBookBeanInfo(bookBean);
  28. }
  29.  
  30. @Override
  31. public int delBookBeanInfo(String id) {
  32.  
  33. return bookBeanMapper.delBookBeanInfo(id);
  34. }
  35.  
  36. }

TestController.java

  1. package com.example.demo.controller;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.http.ResponseEntity;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.PathVariable;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestMethod;
  11. import org.springframework.web.bind.annotation.RestController;
  12.  
  13. import com.example.demo.bean.BookBean;
  14. import com.example.demo.service.BookBeanService;
  15. import com.example.demo.util.JsonResult;
  16.  
  17. @RestController
  18. @RequestMapping(value="/demo")
  19. public class TestController {
  20.  
  21. @Autowired
  22. private BookBean bookBean;
  23.  
  24. @Autowired
  25. private BookBeanService bookBeanService;
  26.  
  27. @RequestMapping(value="/helloworld",produces="text/plan;charset=UTF-8")
  28. public String helloworld() {
  29. System.out.println(bookBean.toString());
  30. return "helloworld-"+bookBean.getName()+"----"+bookBean.getAuthor()+"----"+bookBean.getPrice();
  31. }
  32.  
  33. @GetMapping("/helloworld2")
  34. public String helloworld2() {
  35. return "helloworld2";
  36. }
  37.  
  38. /**
  39. * 根据id删除用户
  40. * @param id
  41. * @return
  42. */
  43. @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
  44. public ResponseEntity<JsonResult> delete (@PathVariable(value = "id") String id){
  45. JsonResult r = new JsonResult();
  46. try {
  47. int ret = bookBeanService.delBookBeanInfo(id);
  48. if (ret < 0) {
  49. r.setResult(ret);
  50. r.setStatus("fail");
  51. } else {
  52. r.setResult(ret);
  53. r.setStatus("ok");
  54. }
  55. } catch (Exception e) {
  56. r.setResult(e.getClass().getName() + ":" + e.getMessage());
  57. r.setStatus("error");
  58.  
  59. e.printStackTrace();
  60. }
  61. return ResponseEntity.ok(r);
  62. }
  63.  
  64. /**
  65. * 查询
  66. * @return
  67. */
  68. @RequestMapping(value="/find")
  69. public ResponseEntity<JsonResult> add(){
  70. JsonResult r = new JsonResult();
  71. try {
  72. System.out.println(1);
  73. List<BookBean> findBookBeanInfo = bookBeanService.findBookBeanInfo();
  74. r.setResult(findBookBeanInfo);
  75. r.setStatus("ok");
  76. } catch (Exception e) {
  77. r.setResult(e.getClass().getName() + ":" + e.getMessage());
  78. r.setStatus("error");
  79.  
  80. e.printStackTrace();
  81. }
  82.  
  83. return ResponseEntity.ok(r);
  84.  
  85. }
  86.  
  87. }

JsonResult类是一个通用转json的工具类  如下:

  1. package com.example.demo.util;
  2.  
  3. /**
  4. * 通用json返回类
  5. * @author Administrator
  6. *
  7. */
  8. public class JsonResult {
  9. private String status = null;
  10.  
  11. private Object result = null;
  12.  
  13. public JsonResult status(String status) {
  14. this.status = status;
  15. return this;
  16. }
  17.  
  18. public String getStatus() {
  19. return status;
  20. }
  21.  
  22. public void setStatus(String status) {
  23. this.status = status;
  24. }
  25.  
  26. public Object getResult() {
  27. return result;
  28. }
  29.  
  30. public void setResult(Object result) {
  31. this.result = result;
  32. }
  33.  
  34. }

目录结构:

BookbeanMapper.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.example.demo.mapper.BookBeanMapper" >
  4. <resultMap id="bookBeanMap" type="bookBean" >
  5. <result column="name" property="name" jdbcType="VARCHAR" />
  6. <result column="author" property="author" jdbcType="VARCHAR" />
  7. <result column="price" property="price" jdbcType="VARCHAR"/>
  8. </resultMap>
  9.  
  10. <sql id="bookbean" >
  11. name,author,price
  12. </sql>
  13.  
  14. <select id="findBookBeanInfo" resultMap="bookBeanMap">
  15. select <include refid="bookbean"/> from BOOKBEAN
  16. </select>
  17.  
  18. <insert id="addBookBeanInfo" parameterType="bookBean">
  19. insert into BOOKBEAN(name,author,price) values(#{name},#{author},#{price})
  20. </insert>
  21.  
  22. <delete id="delBookBeanInfo" parameterType="string">
  23. delete from BOOKBEAN where price = #{price}
  24. </delete>
  25.  
  26. </mapper>

然后启动DemoApplication.java 打开浏览器 输入http://localhost:8081/demo/find 就出现下图

完成到这里说明springboot整合mybatis就成功了,有什么不对的地方欢迎朋友们提出建议!

版权声明:本文为博主原创文章,未经博主允许不得转载。

http://www.cnblogs.com/tangyin/p/8862687.html

Spring boot 整合 Mybatis (完整版)的更多相关文章

  1. 太妙了!Spring boot 整合 Mybatis Druid,还能配置监控?

    Spring boot 整合 Mybatis Druid并配置监控 添加依赖 <!--druid--> <dependency> <groupId>com.alib ...

  2. Spring Boot整合Mybatis并完成CRUD操作

    MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...

  3. spring boot 整合 mybatis 以及原理

    同上一篇文章一样,spring boot 整合 mybatis过程中没有看见SqlSessionFactory,sqlsession(sqlsessionTemplate),就连在spring框架整合 ...

  4. Spring Boot 整合mybatis时遇到的mapper接口不能注入的问题

    现实情况是这样的,因为在练习spring boot整合mybatis,所以自己新建了个项目做测试,可是在idea里面mapper接口注入报错,后来百度查询了下,把idea的注入等级设置为了warnin ...

  5. Spring Boot整合Mybatis报错InstantiationException: tk.mybatis.mapper.provider.base.BaseSelectProvider

    Spring Boot整合Mybatis时一直报错 后来发现原来主配置类上的MapperScan导错了包 由于我使用了通用Mapper,所以应该导入通用mapper这个包

  6. Spring Boot整合MyBatis(非注解版)

    Spring Boot整合MyBatis(非注解版),开发时采用的时IDEA,JDK1.8 直接上图: 文件夹不存在,创建一个新的路径文件夹 创建完成目录结构如下: 本人第一步习惯先把需要的包结构创建 ...

  7. Spring Boot整合Mybatis完成级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  8. Spring Boot系列(三):Spring Boot整合Mybatis源码解析

    一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...

  9. Spring boot整合Mybatis

    时隔两个月的再来写博客的感觉怎么样呢,只能用“棒”来形容了.闲话少说,直接入正题,之前的博客中有说过,将spring与mybatis整个后开发会更爽,基于现在springboot已经成为整个业界开发主 ...

  10. Spring Boot 整合 Mybatis 实现 Druid 多数据源详解

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲一.多数据源的应用场景二.运行 sp ...

随机推荐

  1. 【Python】 发邮件用 smtplib & email

    smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要 ...

  2. 大数据 --> 分布式服务框架Zookeeper

    分布式服务框架 Zookeeper Zookeeper系列 分布式服务框架 Zookeeper -- 管理分布式环境中的数据

  3. hibernate框架学习笔记3:API详解

    Configuration对象: package api; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configur ...

  4. 连接数据后,当执行查询语句报错:ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询

    参考博客:http://blog.csdn.net/lanchengxiaoxiao/article/details/40982771 1.在cmd窗口通过sqlplus连接数据库 C:\Users\ ...

  5. 高级软件工程2017第7次作业--团队项目:Beta阶段综合报告

    Deadline:2017-11-06(周一) 21:00pm (注:以下内容参考集大作业8 集大作业9 集大作业10 ) 0.评分规则: 按时交 - 有分,内容包括以下5个方面: Beta阶段敏捷冲 ...

  6. 201621123062《java程序设计》第12周作业总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 思维导图: 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车. 2. ...

  7. Bate敏捷冲刺每日报告--day2

    1 团队介绍 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(267),蔡凯峰(285)  Git链接:https://github.com/WHUSE2017/C-team 2 ...

  8. 《高级软件测试》web测试实践--12月31日记录

    今日的任务进度如上图所示.我们对华科软件学院和计算机学院的网站进行了对比分析,分析的角度包括基本功能分析.前端性能分析.用户调研等.在这里我们简单总结下我们得到的评测结果. 基本功能分析:计算机学院和 ...

  9. SDOI2017 相关分析

    把两个式子拆开 Σ(xi-px)(yi-py) =Σ xiyi + py * Σ xi - px * Σ yi + Σ 1* px * py Σ (xi-px)² = Σ xi² +  px * Σ ...

  10. 构建微服务开发环境3————Java应用的优秀管理工具Maven的下载安装及配置

    [内容指引] 下载安装包: MacOS下Maven的安装及配置: Windows下Maven的安装及配置. 一.下载安装包 进入Maven的官方下载地址:http://maven.apache.org ...