在springboot没有出现之前,spring整合mybatis是相当麻烦,各种bean配置,现在我们来感受一下Springboot整合Mybatis是有多么方便

先来看看效果

添加用户:

查询用户:

开始动手

第一步创建springboot项目





到这里项目就创建完成了,我们可以看看pom文件:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.10</version></dependency></dependencies>

动手创建类

首先看看我的目录结构:

创建model user

package com.hawk.yoga.model;import lombok.Data;/*** @Author: * @Description: user* @Date: Create in  2019/7/13*/
@Data
public class User {private Integer age;private String name;//实际项目中不用Double,用更精确的private Double money;
}

创建统一返回结果

package com.hawk.yoga.common.result;import com.hawk.yoga.common.CodeEnum;
import lombok.Data;/*** @Author: * @Description: 自定义返回结果* @Date: Create in  2019/7/13*/
@Data
public class YogaResult<T> {private String code;private T data;private YogaResult(){code = CodeEnum.OK.getCode().toString();}public static YogaResult ok(){return new YogaResult();}public static <T>YogaResult ok(T data){YogaResult yogaResult = new YogaResult();yogaResult.setData(data);return yogaResult;}
}

创建code表

package com.hawk.yoga.common;import lombok.Data;
import lombok.Getter;/*** @Author: * @Description:* @Date: Create in  2019/7/13*/
public enum CodeEnum {/*** 2开通频段为成功*/OK("ok",2000),/*** 4开头频段为错误*/ERROR("error",4000);CodeEnum(String desc,Integer code){this.code = code;this.desc = desc;}@Getterprivate String desc;@Getterprivate Integer code;
}

创建controller

package com.hawk.yoga.controller;import com.hawk.yoga.common.result.YogaResult;
import com.hawk.yoga.model.User;
import com.hawk.yoga.model.dto.UserDto;
import com.hawk.yoga.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;/*** @Author:* @Description: demo* @Date: Create in  2019/7/13*/
@RestController
@RequestMapping("/user")
public class TestController {@Autowiredprivate UserService userService;@RequestMapping(value = "/add", method = RequestMethod.GET)public YogaResult addUser(UserDto userDto) {userService.add(userDto);return YogaResult.ok();}@RequestMapping(value = "/find", method = RequestMethod.GET)public YogaResult<User> addUser(String name) {User userByName = userService.findUserByName(name);return YogaResult.ok(userByName);}}

service

package com.hawk.yoga.service;import com.hawk.yoga.mapper.UserMapper;
import com.hawk.yoga.model.User;
import com.hawk.yoga.model.dto.UserDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;/*** @Author: * @Description:* @Date: Create in  2019/7/13*/
@Service
public class UserServiceImpl implements UserService{@Autowiredprivate UserMapper userMapper;@Overridepublic void add(UserDto userDto) {userMapper.add("yoga", 22, 3000.0);}@Overridepublic User findUserByName(String name) {return userMapper.findUserByName(name);}}
public interface UserService {/*** add*/void add(UserDto userDto);/**** @param name* @return*/User findUserByName(String name);
}

mapper

@Mapper
public interface UserMapper {/*** @param name* @param age* @param money* @return*/@Insert("INSERT INTO user(name, age,money) VALUES(#{name}, #{age}, #{money})")Integer add(@Param("name") String name, @Param("age") Integer age, @Param("money") Double money);/*** @param name* @return*/User findUserByName(String name);
}

添加方法使用的是注解,简单应用推荐第一种,一般使用第二中通过xml配置

userMapper.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.hawk.yoga.mapper.UserMapper"><select id="findUserByName" parameterType="java.lang.String" resultType="com.hawk.yoga.model.User">SELECT * FROM user WHERE name = #{name}</select>
</mapper>

实际应用中不要用*,会导致扫描全表。

配置文件 application.properties

server.port=8520
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/item?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml

数据库

CREATE TABLE `user` (`id` int(13) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(33) DEFAULT NULL COMMENT '姓名',`age` int(3) DEFAULT NULL COMMENT '年龄',`money` double DEFAULT NULL COMMENT '账户余额',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

到此项目已经完成,可以运行起来了,其中有一点不规范的地方就是service哪里,我直接写死了数据,只是为了测试起来方便,最后一点在启动应用上加一个注解:扫描mapper

是不是很轻松呢,感谢你的阅读,不当之处请指教。

Springboot轻松整合Mybatis相关推荐

  1. springboot项目整合mybatis

    SpringBoot项目整合mybatis 本章内容 使用 idea创建 SpringBoot项目 SpringBoot项目中配制 mybatis 框架 1 创建 SpringBoot项目 1.1 在 ...

  2. springboot中整合mybatis及简单使用

    springboot中整合mybatis及简单使用 1.引入依赖 2.在applicaiton.yaml中配置数据源以及mybatis 3.创建sql测试表 4.编写mapper接口和mapper.x ...

  3. 玩转springboot:整合mybatis实例

    这篇文章讲解一下springboot整合mybatis,其实,springboot整合mybatis和springmvc整合mybatis并没有什么太大的区别,大体上还是差不多哦,只是比springm ...

  4. java xml快捷注释_详解SpringBoot 快速整合Mybatis(去XML化+注解进阶)

    序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用@Select注解直接编写SQL完成数据查询,使用@SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求. 一 ...

  5. springboot之整合mybatis

    第一次搞,真的是花了老大的经历了,各种字段敲错了. 记录一下过程: 首先添加依赖: <dependency><groupId>org.mybatis.spring.boot&l ...

  6. springboot/springcloud整合mybatis(mysql)

    1.导入相关jar包 <!-- mysql客户端 --> <dependency><groupId>mysql</groupId><artifac ...

  7. SpringBoot第六篇:springboot整合mybatis

    本文主要讲解如何在springboot下整合mybatis,并访问数据库.由于mybatis这个框架太过于流行,所以我就不讲解了. 引入依赖 在pom文件引入mybatis-spring-boot-s ...

  8. springboot整合mysql5.7_springboot整合mybatis访问mysql,数据库

    讲解如何在springboot下整合mybatis,并访问数据库. 引入依赖 在pom文件引入mybatis-spring-boot-starter的依赖: org.mybatis.spring.bo ...

  9. Springboot 整合 Mybatis 的完整 Web 案例

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 推荐一本书<腾讯 ...

最新文章

  1. java int parse_java中Integer.parseInt和Integer.valueOf的区别
  2. windows挂载linux网络文件系统NFS
  3. 如何修改 asp.net core 5 程序的默认端口号?
  4. [Python技巧]如何加快循环操作和Numpy数组运算速度
  5. 虚拟机linux如何扩大内存吗,如何扩大Vmware虚拟机中Ubuntu系统磁盘空间的方法
  6. 高手追小萝莉的故事(洛谷P1184题题解,Java语言描述)
  7. 充满艺术范儿!艺术感在线的界面欣赏
  8. rhel5 下cacti安装日志
  9. 数据库 备份 压缩
  10. html3d龙卷风特效代码,使用Canvas 2D模拟出来的3D龙卷风动画特效
  11. c语言设计简易游戏背包
  12. 解决Vmware虚拟机startx进入图形界面卡退、白屏、黑屏的问题
  13. 基于DCMTK的医学影像工作站设计
  14. 金融(银行)有关业务总结
  15. 武义县城区棚户区改造溪南区块安置房建设项目(标段一)电能管理系统的研究及应用
  16. java eden space_JVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)...
  17. pvifa怎么用计算机算,年金现值系数表【完整版】
  18. 直播界要哭了!罗永浩进军电商直播:最可怕的对手,永远来自未知领域!
  19. 最适合微商的直播平台——微信直播
  20. HighNewTech:2019年5月4日《巴菲特股东大会》—6小时20多个亮点50多个问答(划重点)

热门文章

  1. matlab迭代求解泊松方程,MATLAB编程求解二维泊松方程
  2. Home Assistant 入门安装
  3. windows防火墙设置_详解关闭Windows防火墙操作技巧,让你彻底断开与外网的连接...
  4. 北邮 复习 软件工程_2019北京邮电大学083500软件工程考研备考指南
  5. 刚性PCB和柔性PCB的区别
  6. win10如何截屏_win10使用技巧分享!
  7. os 通过pptt table得到cache信息
  8. EOF:warning: delimited by end-of-file
  9. nginx master-worker工作模式简析
  10. 微软编程规范(文档)