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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SpringBoot整合Mybatis mysql数据库增添查改,分页操作实现

發布時間:2023/12/15 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot整合Mybatis mysql数据库增添查改,分页操作实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無關風月,我題序等你回。

練習的一個小Demo,很適合新手練習
給需要的同學一點參考。
整體框架如下:

先寫基礎類
po:

package com.example.springboot.po;public class User {private Integer id;private String userName;private String userPwd;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserPwd() {return userPwd;}public void setUserPwd(String userPwd) {this.userPwd = userPwd;} }

dao層
UserMapper接口:

package com.example.springboot.dao;import com.example.springboot.po.User; import com.example.springboot.query.UserQuery;import java.util.List;/*** lbs 2021/8/6*/ public interface UserMapper {//通過用戶名查詢用戶記錄,返回用戶對象public User queryUserByName(String userName);//通過用戶ID查詢用戶對象,返回用戶對象public User queryUserById(Integer userId);//添加用戶,返回受影響的行數int addUser(User user);//修改用戶信息int update(User user);//刪除用戶受影響的行數int deleteUser(Integer userId);//通過指定條件查詢用戶集合List<User> queryUserByParams(UserQuery userQuery); }

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.example.springboot.dao.UserMapper"><select id="queryUserByName" parameterType="string" resultType="com.example.springboot.po.User">select * from tb_user where user_name = #{userName}</select><select id="queryUserById" parameterType="int" resultType="com.example.springboot.po.User">select * from tb_user where id = #{userId}</select><insert id="addUser">insert into tb_user (user_name, user_pwd) values (#{userName}, #{userPwd})</insert><update id="update">update tb_user set user_name = #{userName}, user_pwd= #{userPwd} where id =#{id}</update><delete id="deleteUser">delete from tb_user where id = #{userId}</delete><!--條件查詢,返回集合--><select id="queryUserByParams" parameterType="com.example.springboot.query.UserQuery" resultType="com.example.springboot.po.User">select * from tb_user<where><if test="null !=userName and '' != userName">and user_name like concat('%',#{userName},'%')</if></where></select></mapper>

服務層
UserService:

package com.example.springboot.service;import com.example.springboot.dao.UserMapper; import com.example.springboot.po.User; import com.example.springboot.query.UserQuery; import com.example.springboot.util.AssertUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.List; import java.util.Map;@Service public class UserService {@Resourceprivate UserMapper userMapper;public User queryUserByName(String userName){return userMapper.queryUserByName(userName);}public User queryUserById(Integer userId){return userMapper.queryUserById(userId);}public void addUser(User user) {//判斷是否為空//StringUtils.isBlank(str):判斷str是否為空//判斷用戶名姓名非空AssertUtil.isTure(StringUtils.isBlank(user.getUserName()),"用戶姓名不能為空!");//判斷用戶密碼是否為空AssertUtil.isTure(StringUtils.isBlank(user.getUserPwd()),"用戶密碼不能為空");//通過用戶名查詢用戶對象User temp = userMapper.queryUserByName(user.getUserName());//判斷用戶是否存在AssertUtil.isTure(temp !=null,"用戶名已存在,請重試!");//執行添加操作,判斷受影響的行數AssertUtil.isTure(userMapper.addUser(user)<1,"添加用戶失敗");}public void update(User user){//判斷是否為空//StringUtils.isBlank(str):判斷str是否為空//判斷用戶名姓名非空AssertUtil.isTure(StringUtils.isBlank(user.getUserName()),"用戶姓名不能為空!");//判斷用戶密碼是否為空AssertUtil.isTure(StringUtils.isBlank(user.getUserPwd()),"用戶密碼不能為空");//通過用戶名查詢用戶對象User temp = userMapper.queryUserByName(user.getUserName());//判斷用戶是否存在AssertUtil.isTure(temp !=null&& !user.getId().equals(temp.getId()),"用戶名已存在,請重試!");//執行添加操作,判斷受影響的行數AssertUtil.isTure(userMapper.update(user)<1,"修改用戶失敗");}public void deleteUser(Integer userId){//判斷參數非空,且刪除的記錄還在AssertUtil.isTure(null == userId||userMapper.queryUserById(userId)==null,"待刪除的記錄不存在");//執行刪除,判斷受影響的行數AssertUtil.isTure(userMapper.deleteUser(userId)<1,"刪除用戶失敗");}public PageInfo<User> queryUserByParams(UserQuery userQuery){//開啟分頁PageHelper.startPage(userQuery.getPageNum(),userQuery.getPageSize());//查詢用戶集合List<User> userList = userMapper.queryUserByParams(userQuery);//分頁查詢PageInfo<User> pageInfo = new PageInfo<>(userList);return pageInfo;}}

控制層:
UserController:

package com.example.springboot.controller;import com.example.springboot.exceptions.ParamsException; import com.example.springboot.po.User; import com.example.springboot.query.UserQuery; import com.example.springboot.service.UserService; import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;import javax.annotation.Resource; import java.util.HashMap; import java.util.Map;@RestController public class UserController {@Resourceprivate UserService userService;@GetMapping("/user/nume/{userName}") // @ResponseBodypublic User queryUserByName(@PathVariable String userName) {return userService.queryUserByName(userName);}@GetMapping("/user/id/{userId}")public User queryUserById(@PathVariable Integer userId) {return userService.queryUserById(userId);}@PostMapping("user")public Map<String, Object> addUser(@RequestBody User user){Map<String, Object> map = new HashMap<>();try{userService.addUser(user);map.put("code",200);map.put("msg","添加用戶成功!");}catch (ParamsException p ){map.put("code",p.getCode());map.put("msg",p.getMsg());p.printStackTrace();}catch (Exception e){map.put("code",500);map.put("msg","添加用戶失敗!");e.printStackTrace();}return map;}@PutMapping ("user")public Map<String, Object> updateUser(@RequestBody User user){Map<String, Object> map = new HashMap<>();try{userService.update(user);map.put("code",200);map.put("msg","修改用戶成功!");}catch (ParamsException p ){map.put("code",p.getCode());map.put("msg",p.getMsg());p.printStackTrace();}catch (Exception e){map.put("code",500);map.put("msg","修改用戶失敗!");e.printStackTrace();}return map;}@DeleteMapping ("user/{userId}")public Map<String, Object> deleteUser(@PathVariable Integer userId){Map<String, Object> map = new HashMap<>();try{userService.deleteUser(userId);map.put("code",200);map.put("msg","刪除用戶成功!");}catch (ParamsException p ){map.put("code",p.getCode());map.put("msg",p.getMsg());p.printStackTrace();}catch (Exception e){map.put("code",500);map.put("msg","刪除用戶失敗!");e.printStackTrace();}return map;}/*** 分頁查詢* @param userQuery* @return*/@RequestMapping("list")public PageInfo<User> queryUserByPage(UserQuery userQuery){return userService.queryUserByParams(userQuery);} }

工具類
AssertUtil:

package com.example.springboot.util;import com.example.springboot.exceptions.ParamsException;import java.text.ParseException;public class AssertUtil {/*** 判斷結果是否為ture* 如果是ture,拋出異常* @param flag* @param msg*/public static void isTure(Boolean flag, String msg){if (flag){throw new ParamsException(msg);}}

異常類
ParamsException:

package com.example.springboot.exceptions; /**自定義參數異常*/ public class ParamsException extends RuntimeException{private Integer code =500;private String msg = "參數異常!";public ParamsException(){super("參數異常");}public ParamsException(String msg){super(msg);this.msg = msg;}public ParamsException(Integer code){super("參數異常");this.code = code;}public ParamsException(Integer code,String msg){super(msg);this.code =code;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;} }

分頁:
UserQuery:

package com.example.springboot.query;public class UserQuery {/**分頁參數*/private Integer pageNum=1;//當前頁(未傳遞頁數時,默默認查詢第一頁)private Integer pageSize=10;//每頁顯示的記錄數(當未傳遞數量時,默認每頁顯示10條記錄)/*** 條件參數*/private String userName;public Integer getPageNum() {return pageNum;}public void setPageNum(Integer pageNum) {this.pageNum = pageNum;}public Integer getPageSize() {return pageSize;}public void setPageSize(Integer pageSize) {this.pageSize = pageSize;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;} }配置文件 application.yml```java server:#設置項目啟動端口號port: 8080#設置項目的訪問路徑(上下文路徑)servlet:context-path: /springboot#數據源配置 spring:#數據源datasource:url: jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=UTF-8username: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver#type: com.mchange.v2.c3p0.ComboPooledDataSource#mybatis配置 mybatis:#映射文件的存放路徑mapper-locations: classpath:/mappers/*.xmltype-aliases-package: com.example.springboot.poconfiguration:map-underscore-to-camel-case: true#typeAliasesPackage: com.example.mybaitsxml.dao.entity#mapperLocations: classpath:mapper/*.xml#configLocation: classpath:/mybatis-config.xmlpagehelper:helper-dialect: mysql## 顯示dao 執行sql語句 logging:level:com:example:springboot:dao: debug pom.xml```java <?xml version="1.0" encoding="UTF-8"?> <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.9</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>SpringbootMybatis</artifactId><version>0.0.1-SNAPSHOT</version><name>SpringbootMybatis</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><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.1.4</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>0.9.5</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></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

覺的有用的麻煩點個關注8**

總結

以上是生活随笔為你收集整理的SpringBoot整合Mybatis mysql数据库增添查改,分页操作实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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