Technology sharing

Quomodo Mybatis ad efficiendum iunctim sinistram

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cum MyBatis Plus in operationibus datorum utendo, interdum notitias ex pluribus tabulis obtinere debemus. Hic articulus introducet quomodo interrogationem iungendam reliquit ad efficiendum in MyBatis Plus. Duas tabulas in exemplum sumemus, una est tabula capitis department (system_dept_leader) et alia est mensa usoris (system_user) et demonstrat detailed informationem department ducis per iungere sinisteriorem, inclusa agnomine et numero usoris.

Data structuram mensam

Ponantur duae sequentes tabulae datae;

Department ducibus mensa (system_dept_leader)

Nomen agritypedescribere
idLongprima clavis
dept_idLongDepartment ID
user_idLongSed rutrum sapien id
is_primaryIntegerGravis est?

 

user mensam (system_user)

Nomen agritypedescribere
idLongprima clavis
cognomenStringQuisque nomen tuum
operarius_codeStringJob numerus

Exsequendam gradus

Sinistram interrogationem iungemus per gradus sequentes deducemus:

  1. Define interrogationis eventum classium
  2. Scribens SQL provisor
  3. Definire modum interrogationis in Mapper interface

1. Definire quaesitum exitum classis

In primis opus est ut proventum interrogationis definiamus genus ut proventus investigationis reponendi.Hic definimus aDeptLeaderDORespVO Class, quam turpisDeptLeaderDOBaseVO, et continet in agris numerum et cognomen usoris.

  1. @Data
  2. @EqualsAndHashCode(callSuper = true)
  3. @ToString(callSuper = true)
  4. public class DeptLeaderDORespVO extends DeptLeaderDOBaseVO {
  5. private Long id;
  6. @NotNull(message = "Department不能为空")
  7. private Long deptId;
  8. @NotNull(message = "User不能为空")
  9. private Long userId;
  10. @NotNull(message = "Is Primary不能为空")
  11. private Integer isPrimary;
  12. private String nickname;
  13. private String workerCode;
  14. }

2. Scribe SQL provisor

Deinceps scribimus provisorem SQL genus pro SQL queries dynamice generantem.usus est hicSelectProvider Annotationes ad SQL denotare consuetudinem.

  1. public class DeptLeaderSqlProvider {
  2. public String selectDeptLeaderWithUserDetails(Map<String, Object> params) {
  3. Long deptId = (Long) params.get("deptId");
  4. Long userId = (Long) params.get("userId");
  5. Integer isPrimary = (Integer) params.get("isPrimary");
  6. StringBuilder sql = new StringBuilder();
  7. sql.append("SELECT dl.*, su.nickname, su.worker_code AS workerCode ");
  8. sql.append("FROM system_dept_leader dl ");
  9. sql.append("LEFT JOIN system_user su ON dl.user_id = su.id ");
  10. sql.append("WHERE 1=1 ");
  11. if (deptId != null) {
  12. sql.append("AND dl.dept_id = #{deptId} ");
  13. }
  14. if (userId != null) {
  15. sql.append("AND dl.user_id = #{userId} ");
  16. }
  17. if (isPrimary != null) {
  18. sql.append("AND dl.is_primary = #{isPrimary} ");
  19. }
  20. sql.append("ORDER BY dl.id DESC");
  21. return sql.toString();
  22. }
  23. }

3. Definire modum interrogationis in Mapper interface

Denique definire modum interrogationis in Mapper instrumenti et usu SelectProvider SQL Provisor dat speciem annotationis.

  1. @Mapper
  2. public interface DeptLeaderMapper extends BaseMapperX<DeptLeaderDO> {
  3. @SelectProvider(type = DeptLeaderSqlProvider.class, method = "selectDeptLeaderWithUserDetails")
  4. List<DeptLeaderDORespVO> selectDeptLeaderWithUserDetails(@Param("deptId") Long deptId,
  5. @Param("userId") Long userId,
  6. @Param("isPrimary") Integer isPrimary);
  7. }

4. voca ministerium accumsan modum

Modus quaesitus appellatur in tabulato ministerio et eventus qui ante finem vel ulteriorem processum redduntur.

  1. @Service
  2. public class DeptLeaderService {
  3. @Autowired
  4. private DeptLeaderMapper deptLeaderMapper;
  5. public List<DeptLeaderDORespVO> getDeptLeaders(Long deptId, Long userId, Integer isPrimary) {
  6. return deptLeaderMapper.selectDeptLeaderWithUserDetails(deptId, userId, isPrimary);
  7. }
  8. }

Summatim

Per gradus superiores modum utendi sinistro adiuncto ad interrogationem pervestigandae methodum pervestigandae informationes ducum departmentarum MyBatis Plus. Haec methodus dynamice potest generare SQL queries subnixas condiciones advenientis habere informationes de ducibus department et eorum consociatis utentibus. Haec methodus valde utilis est cum interrogatione data per plures tabulas confici debet, ut flexibilitatem et efficientiam notitiarum quaesitum sit.

Spero hunc articulum melius adiuvare vos posse intelligcre et uti MyBatis Plus in quaestionibus complexibus. Si quas quaestiones vel ulteriores necessitates habes, gratus es discutere et communicare.