日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Springboot轻松整合Mybatis

發布時間:2024/1/8 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。