当前位置: 首页 > 科技观察

springboot整合MyBatis参与数据传递方式

时间:2023-03-12 17:18:23 科技观察

环境:springboot2.3.9.RELEASE+MyBatis+MySQL环境配置依赖org.springframework.bootspring-boot-starter-data-jpamysqlmysql-connector-java运行时org.mybatis.spring.bootmybatis-spring-boot-starter<版本>2.1.4com.github.pagehelperpagehelper-spring-boot-starter1.3.0应用配置spring:datasource:driverClassName:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/testjpa?serverTimezone=GMT%2B8username:rootpassword:123123type:com.zaxxer.hikari.HikariDataSourcehikari:minimumIdle:10maximumPoolSize:200autoCommit:trueidleTimeout:30000poolName:MasterDatabookHikariCPmaxLifetime:1800000connectionTimeout:30000connectionTestQuery:SELECT1---spring:jpa:generateDdl:falsehibernate:ddlAuto:updateopenInView:trueshow-sql:true---pagehelper:helperDialect:mysqlreasonable:truepageSizeZero:trueoffsetAsPageNum:truerowBoundsWithCount:true---mybatis:type-aliases-package:com.pack.domainmapper-locations:-classpath:/mappers/*.xml主要是数据源+MyBatisstarter+pagehelper相关配置Mapper接口参数值传递方式方法一:ListqueryUsers1(StringidNo,Stringusername);xmlSELECT*FROMbc_usersTwhereT.ID_NO=#{param1}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{param2}),'%')根据方法的参数顺序param*。或者:SELECT*FROMbc_usersTwhereT.ID_NO=#{idNo}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{username}),'%')直接写参数名称。方法二:通过@Param注解指定参数名称ListqueryUsers2(@Param("no")StringidNo,@Param("un")Stringusername);xmlSELECT*FROMbc_usersTwhereT.ID_NO=#{no}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{un}),'%')方法三:通过MapList传参queryUsers3(Mapparams);xmlSELECT*FROMbc_usersTwhereT.ID_NO=#{id_no}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{user_name}),'%')其中#{xxx}是存储在Map中的Key。方法四:通过对象ListqueryUsers4(UsersDTOparams);UsersDTO.javapublicclassUsersDTOextendsParamsDTO{privateStringidNo;privateStringusername;publicStringgetIdNo(){returnidNo;}publicvoidsetIdNo(StringidNo){this.idNo=idNo;}publicStringgetUsername(){returnusername;}传递参数publicvoidsetUsername(Stringusername){this.username=username;}}xmlSELECT*FROMbc_usersTwhereT.ID_NO=#{idNo}ANDT。USERNAMELIKECONCAT(CONCAT('%',#{username}),'%')这里的#{xxx}对象必须有这个属性对应的getter方法。方式5:List集合参数ListqueryUsers5(Collectionparams);xmlSELECT*FROMbc_usersTwhereT.idin#{id}Mapper@MapperpublicinterfaceUsersMapper{ListqueryUsers1(StringidNo,Stringusername);ListqueryUsers2(@Param("no")StringidNo,@Param("un")Stringusername);ListqueryUsers3(Mapparams);ListqueryUsers4(UsersDTOparams);ListqueryUsers5(Collectionparams);}XMLSELECT*FROMbc_usersTwhereT.ID_NO=#{idNo}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{username}),'%')SELECT*FROMbc_usersTwhereT.ID_NO=#{no}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{un}),'%')SELECT*FROMbc_usersTwhereT.ID_NO=#{id_no}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{user_name}),'%')SELECT*FROMbc_usersTwhereT.ID_NO=#{idNo}ANDT.USERNAMELIKECONCAT(CONCAT('%',#{username}),'%')SELECT*FROMbc_usersTwhereT.idin#{id}Controller@ResourceprivateUsersMapperusersMapper;@GetMapping("/q1")publicObjectq1(UsersDTOparams){returnR.success(Pager.query(params,()->{returnusersMapper.queryUsers1(params.getIdNo(),params.getUsername());}));}@GetMapping("/q2")publicObjectq2(UsersDTOparams){returnR.success(Pager.query(params,()->{returnusersMapper.queryUsers2(params.getIdNo(),params.getUsername());}));}@GetMapping("/q3")publicObjectq3(UsersDTOparams){returnR.success(Pager.query(params,()->{Mapps=newHashMap<>();ps.put("id_no",params.getIdNo());ps.put("user_name",params.getUsername());returnusersMapper.queryUsers3(ps);}));}@GetMapping("/q4")publicObjectq4(UsersDTOparams){returnR.success(Pager.query(params,()->{returnusersMapper.queryUsers4(params);}));}@GetMapping("/q5")publicObjectq5(@RequestBodyListids){returnR.success(Pager.query(newUsersDTO(),()->{returnusersMapper.queryUsers5(ids);}));}完成!!!