Springboot整合MyBatis参数传值方式

环境:springboot2.3.9.RELEASE + MyBatis + MySQL

成都创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、成都网站建设、网站制作、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

环境配置

依赖

 
 
 
  1.   org.springframework.boot
  2.   spring-boot-starter-data-jpa
  3.   mysql
  4.   mysql-connector-java
  5.   runtime
  6.   org.mybatis.spring.boot
  7.   mybatis-spring-boot-starter
  8.   2.1.4
  9.   com.github.pagehelper
  10.   pagehelper-spring-boot-starter
  11.   1.3.0

 应用配置

 
 
 
  1. spring:
  2.   datasource:
  3.     driverClassName: com.mysql.cj.jdbc.Driver
  4.     url: jdbc:mysql://localhost:3306/testjpa?serverTimezone=GMT%2B8
  5.     username: root
  6.     password: 123123
  7.     type: com.zaxxer.hikari.HikariDataSource
  8.     hikari:
  9.       minimumIdle: 10
  10.       maximumPoolSize: 200
  11.       autoCommit: true
  12.       idleTimeout: 30000
  13.       poolName: MasterDatabookHikariCP
  14.       maxLifetime: 1800000
  15.       connectionTimeout: 30000
  16.       connectionTestQuery: SELECT 1
  17. ---
  18. spring:
  19.   jpa:
  20.     generateDdl: false
  21.     hibernate:
  22.       ddlAuto: update
  23.     openInView: true
  24.     show-sql: true
  25. ---
  26. pagehelper:
  27.   helperDialect: mysql
  28.   reasonable: true
  29.   pageSizeZero: true
  30.   offsetAsPageNum: true
  31.   rowBoundsWithCount: true
  32. ---
  33. mybatis:
  34.   type-aliases-package: com.pack.domain
  35.   mapper-locations:
  36.   - classpath:/mappers/*.xml

 主要是数据源 + MyBatis starter + pagehelper相关配置。

Mapper接口参数传值方式

方式1:

 
 
 
  1. List queryUsers1(String idNo, String username) ;

xml

 
 
 
  1.   SELECT * FROM bc_users T where T.ID_NO = #{param1} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{param2}), '%') 

根据方法的参数顺序param*。

或者:

 
 
 
  1.   SELECT * FROM bc_users T where T.ID_NO = #{idNo} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{username}), '%') 

直接写参数名称。

方式2:

通过@Param注解指明参数的名称

 
 
 
  1. List queryUsers2(@Param("no")String idNo,  @Param("un")String username) ;

xml

 
 
 
  1.   SELECT * FROM bc_users T where T.ID_NO = #{no} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{un}), '%') 

方式3:

通过Map传参

 
 
 
  1. List queryUsers3(Map params) ;

xml

 
 
 
  1.   SELECT * FROM bc_users T where T.ID_NO = #{id_no} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{user_name}), '%') 

这里的#{xxx} 就是存入Map中的Key。

方式4:

通过对象传参

 
 
 
  1. List queryUsers4(UsersDTO params) ;

UsersDTO.java

 
 
 
  1. public class UsersDTO extends ParamsDTO {
  2.     
  3.     private String idNo ;
  4.     private String username ;
  5.     public String getIdNo() {
  6.         return idNo;
  7.     }
  8.     public void setIdNo(String idNo) {
  9.         this.idNo = idNo;
  10.     }
  11.     public String getUsername() {
  12.         return username;
  13.     }
  14.     public void setUsername(String username) {
  15.         this.username = username;
  16.     }
  17.     
  18. }

 xml

 
 
 
  1.   SELECT * FROM bc_users T where T.ID_NO = #{idNo} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{username}), '%') 

这里的#{xxx} 对象中必须有该属性对应的getter方法。

方式5:

List集合参数

 
 
 
  1. List queryUsers5(Collection params) ;

xml

 
 
 
  1.   SELECT * FROM bc_users T where T.id in 
  2.     
  3.       #{id}
  4.     

Mapper

 
 
 
  1. @Mapper
  2. public interface UsersMapper {
  3.     
  4.     List queryUsers1(String idNo, String username) ;
  5.     
  6.     List queryUsers2(@Param("no")String idNo,  @Param("un")String username) ;
  7.     
  8.     List queryUsers3(Map params) ;
  9.     
  10.     List queryUsers4(UsersDTO params) ;
  11.     
  12.     List queryUsers5(Collection params) ;
  13.     
  14. }

 XML

 
 
 
  1.     
  2.         
  3.         
  4.         
  5.         
  6.         
  7.         
  8.         
  9.     
  10.     
  11.         SELECT * FROM bc_users T where T.ID_NO = #{idNo} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{username}), '%') 
  12.     
  13.     
  14.         SELECT * FROM bc_users T where T.ID_NO = #{no} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{un}), '%') 
  15.     
  16.     
  17.         SELECT * FROM bc_users T where T.ID_NO = #{id_no} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{user_name}), '%') 
  18.     
  19.     
  20.         SELECT * FROM bc_users T where T.ID_NO = #{idNo} AND T.USERNAME LIKE CONCAT(CONCAT('%',#{username}), '%') 
  21.     
  22.     
  23.         SELECT * FROM bc_users T where T.id in 
  24.          
  25.             #{id}
  26.         
  27.     

 Controller

 
 
 
  1. @Resource
  2.     private UsersMapper usersMapper ;
  3.     
  4.     @GetMapping("/q1")
  5.     public Object q1(UsersDTO params) {
  6.         return R.success(Pager.query(params, () -> {
  7.             return usersMapper.queryUsers1(params.getIdNo(), params.getUsername()) ;
  8.         })) ;
  9.     }
  10.     
  11.     @GetMapping("/q2")
  12.     public Object q2(UsersDTO params) {
  13.         return R.success(Pager.query(params, () -> {
  14.             return usersMapper.queryUsers2(params.getIdNo(), params.getUsername()) ;
  15.         })) ;
  16.     }
  17.     
  18.     @GetMapping("/q3")
  19.     public Object q3(UsersDTO params) {
  20.         return R.success(Pager.query(params, () -> {
  21.             Map ps = new HashMap<>() ;
  22.             ps.put("id_no", params.getIdNo()) ;
  23.             ps.put("user_name", params.getUsername()) ;
  24.             return usersMapper.queryUsers3(ps) ;
  25.         })) ;
  26.     }
  27.     
  28.     @GetMapping("/q4")
  29.     public Object q4(UsersDTO params) {
  30.         return R.success(Pager.query(params, () -> {
  31.             return usersMapper.queryUsers4(params) ;
  32.         })) ;
  33.     }
  34.     
  35.     @GetMapping("/q5")
  36.     public Object q5(@RequestBody List ids) {
  37.         return R.success(Pager.query(new UsersDTO(), () -> {
  38.             return usersMapper.queryUsers5(ids) ;
  39.         })) ;
  40.     }

完毕!!!

网页题目:Springboot整合MyBatis参数传值方式
链接地址:http://www.36103.cn/qtweb/news49/19849.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联