無關風月,我題序等你回。
練習的一個小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 ;
public interface UserMapper { public User queryUserByName ( String userName
) ; 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 { @Resource private 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
) { 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
) { 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 { @Resource private UserService userService
; @GetMapping ( "/user/nume/{userName}" )
public 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
; } @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 { 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 ; 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
- 8 username
: rootpassword
: rootdriver
- class - name
: com. mysql. cj. jdbc. Driver#type
: com. mchange. v2. c3p0. ComboPooledDataSource#mybatis配置
mybatis
: #映射文件的存放路徑mapper
- locations
: classpath
: / mappers
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数据库增添查改,分页操作实现 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。