當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
Springboot轻松整合Mybatis
生活随笔
收集整理的這篇文章主要介紹了
Springboot轻松整合Mybatis
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在springboot沒(méi)有出現(xiàn)之前,spring整合mybatis是相當(dāng)麻煩,各種bean配置,現(xiàn)在我們來(lái)感受一下Springboot整合Mybatis是有多么方便
先來(lái)看看效果
添加用戶:
查詢用戶:
開始動(dòng)手
第一步創(chuàng)建springboot項(xiàng)目
到這里項(xiàng)目就創(chuàng)建完成了,我們可以看看pom文件:
動(dòng)手創(chuàng)建類
首先看看我的目錄結(jié)構(gòu):
創(chuàng)建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;//實(shí)際項(xiàng)目中不用Double,用更精確的private Double money; }創(chuàng)建統(tǒng)一返回結(jié)果
package com.hawk.yoga.common.result;import com.hawk.yoga.common.CodeEnum; import lombok.Data;/*** @Author: * @Description: 自定義返回結(jié)果* @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;} }創(chuàng)建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開頭頻段為錯(cuò)誤*/ERROR("error",4000);CodeEnum(String desc,Integer code){this.code = code;this.desc = desc;}@Getterprivate String desc;@Getterprivate Integer code; }創(chuàng)建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); }添加方法使用的是注解,簡(jiǎn)單應(yīng)用推薦第一種,一般使用第二中通過(guò)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>實(shí)際應(yīng)用中不要用*,會(huì)導(dǎo)致掃描全表。
配置文件 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數(shù)據(jù)庫(kù)
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到此項(xiàng)目已經(jīng)完成,可以運(yùn)行起來(lái)了,其中有一點(diǎn)不規(guī)范的地方就是service哪里,我直接寫死了數(shù)據(jù),只是為了測(cè)試起來(lái)方便,最后一點(diǎn)在啟動(dòng)應(yīng)用上加一個(gè)注解:掃描mapper
是不是很輕松呢,感謝你的閱讀,不當(dāng)之處請(qǐng)指教。
總結(jié)
以上是生活随笔為你收集整理的Springboot轻松整合Mybatis的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php实现短信找回密码,thinkphp
- 下一篇: 0033__PDM,全称为 Persep