Springboot轻松整合Mybatis
在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相关推荐
- springboot项目整合mybatis
SpringBoot项目整合mybatis 本章内容 使用 idea创建 SpringBoot项目 SpringBoot项目中配制 mybatis 框架 1 创建 SpringBoot项目 1.1 在 ...
- springboot中整合mybatis及简单使用
springboot中整合mybatis及简单使用 1.引入依赖 2.在applicaiton.yaml中配置数据源以及mybatis 3.创建sql测试表 4.编写mapper接口和mapper.x ...
- 玩转springboot:整合mybatis实例
这篇文章讲解一下springboot整合mybatis,其实,springboot整合mybatis和springmvc整合mybatis并没有什么太大的区别,大体上还是差不多哦,只是比springm ...
- java xml快捷注释_详解SpringBoot 快速整合Mybatis(去XML化+注解进阶)
序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用@Select注解直接编写SQL完成数据查询,使用@SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求. 一 ...
- springboot之整合mybatis
第一次搞,真的是花了老大的经历了,各种字段敲错了. 记录一下过程: 首先添加依赖: <dependency><groupId>org.mybatis.spring.boot&l ...
- springboot/springcloud整合mybatis(mysql)
1.导入相关jar包 <!-- mysql客户端 --> <dependency><groupId>mysql</groupId><artifac ...
- SpringBoot第六篇:springboot整合mybatis
本文主要讲解如何在springboot下整合mybatis,并访问数据库.由于mybatis这个框架太过于流行,所以我就不讲解了. 引入依赖 在pom文件引入mybatis-spring-boot-s ...
- springboot整合mysql5.7_springboot整合mybatis访问mysql,数据库
讲解如何在springboot下整合mybatis,并访问数据库. 引入依赖 在pom文件引入mybatis-spring-boot-starter的依赖: org.mybatis.spring.bo ...
- Springboot 整合 Mybatis 的完整 Web 案例
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 推荐一本书<腾讯 ...
最新文章
- java int parse_java中Integer.parseInt和Integer.valueOf的区别
- windows挂载linux网络文件系统NFS
- 如何修改 asp.net core 5 程序的默认端口号?
- [Python技巧]如何加快循环操作和Numpy数组运算速度
- 虚拟机linux如何扩大内存吗,如何扩大Vmware虚拟机中Ubuntu系统磁盘空间的方法
- 高手追小萝莉的故事(洛谷P1184题题解,Java语言描述)
- 充满艺术范儿!艺术感在线的界面欣赏
- rhel5 下cacti安装日志
- 数据库 备份 压缩
- html3d龙卷风特效代码,使用Canvas 2D模拟出来的3D龙卷风动画特效
- c语言设计简易游戏背包
- 解决Vmware虚拟机startx进入图形界面卡退、白屏、黑屏的问题
- 基于DCMTK的医学影像工作站设计
- 金融(银行)有关业务总结
- 武义县城区棚户区改造溪南区块安置房建设项目(标段一)电能管理系统的研究及应用
- java eden space_JVM内存区域详解(Eden Space、Survivor Space、Old Gen、Code Cache和Perm Gen)...
- pvifa怎么用计算机算,年金现值系数表【完整版】
- 直播界要哭了!罗永浩进军电商直播:最可怕的对手,永远来自未知领域!
- 最适合微商的直播平台——微信直播
- HighNewTech:2019年5月4日《巴菲特股东大会》—6小时20多个亮点50多个问答(划重点)
热门文章
- matlab迭代求解泊松方程,MATLAB编程求解二维泊松方程
- Home Assistant 入门安装
- windows防火墙设置_详解关闭Windows防火墙操作技巧,让你彻底断开与外网的连接...
- 北邮 复习 软件工程_2019北京邮电大学083500软件工程考研备考指南
- 刚性PCB和柔性PCB的区别
- win10如何截屏_win10使用技巧分享!
- os 通过pptt table得到cache信息
- EOF:warning: delimited by end-of-file
- nginx master-worker工作模式简析
- 微软编程规范(文档)