springboot+my batis-plus 는 다 중 표 공동 조회 기능(주석 방식)을 실현 합 니 다.

STEP 1:my batis-plus 의존 가입

두 번 째 단계:데이터 원본 설정

spring:
 thymeleaf:
 cache: false
 encoding: utf-8
 prefix: classpath:/templates/
 suffix: .html
 enabled: true
 datasource:
 url: jdbc:mysql://192.168.1.152:3306/timo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
 driver-class-name: com.mysql.cj.jdbc.Driver
 username: root
 password: root
 type: com.alibaba.druid.pool.DruidDataSource
mybatis-plus:
 configuration:
   map-underscore-to-camel-case: true
   log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
세 번 째 단계:관련 된 표 두 장 만 들 기(내 것 은 다음 과 같다.  )
            sys_user:사용자 테이블

          sys_역할:권한 표

 STEP 4:두 장의 시 계 를 실체 클래스 bean 에 투사 합 니 다(사실 sysrole 건설 이 든 안 건설 이 든 상 관 없 이 sys리 얼 클래스

@Data
@TableName("sys_user") //     (       )            
public class SysUser extends Model {
 
 @TableId(type = IdType.AUTO)
 private Long id;
 private String username;
 private String password;
 private String salt;
 private Integer deptId;
 private String picture;
 private String sex;
 private String email;
 private String phone;
 
 @Version
 private Integer version;
 
 @TableField(fill = FieldFill.INSERT)
 private Date createDate;
 
 @TableField(fill = FieldFill.INSERT_UPDATE)
 private Date updateDate;
 
 
 private Integer status;
***********************  무의미 하 다 

public class SysRole {
 
 private long id;
 private String roleName;
 
 
 public long getId() {
 return id;
 }
 
 public void setId(long id) {
 this.id = id;
 }
 
 
 public String getRoleName() {
 return roleName;
 }
 
 public void setRoleName(String roleName) {
 this.roleName = roleName;
 }
 
}
다섯 번 째 단계:mapper 정의(이@Select 에 있 는 SQL 을 주의 하 세 요)

여섯 번 째 단계:유 니 버 설 실체 레코드 정의

import com.alibaba.druid.proxy.jdbc.ClobProxyImpl;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.Reader;
import java.util.*;
 
/**
 * @author Wxiaokun
 * @version 1.0
 * @date 2020/9/25 0025    4:15
 */
public class Record extends HashMap implements Map {
 
  private static final long serialVersionUID = 1L;
 
  Map map = null;
  HttpServletRequest request;
public Record(HttpServletRequest request){
   this.request = request;
   Map properties = request.getParameterMap();
   Map returnMap = new HashMap();
   Iterator entries = properties.entrySet().iterator();
   Map.Entry entry;
   String name = "";
   String value = "";
   while (entries.hasNext()) {
    entry = (Map.Entry) entries.next();
    name = (String) entry.getKey();
    Object valueObj = entry.getValue();
    if(null == valueObj){
     value = "";
    }else if(valueObj instanceof String[]){
     String[] values = (String[])valueObj;
     for(int i=0;i<values.length;i++){
      value = values[i] + ",";
     }
     value = value.substring(0, value.length()-1);
    }else{
     value = valueObj.toString();
    }
    returnMap.put(name, value);
   }
   map = returnMap;
  }
 
public Record() {
   map = new HashMap();
  }
 
@Override
public Object get(Object key) {
   Object obj = null;
   if(map.get(key) instanceof Object[]) {
    Object[] arr = (Object[])map.get(key);
    obj = request == null ? arr:(request.getParameter((String)key) == null ? arr:arr[0]);
   } else {
    obj = map.get(key);
   }
   return obj;
  }
 
public String getString(Object key) {
   return (String)get(key);
  }
 
@SuppressWarnings("unchecked")
@Override
public Object put(Object key, Object value) {
   if(value instanceof ClobProxyImpl){    //        durid             Clob    
    try {
     ClobProxyImpl cpi = (ClobProxyImpl)value;
     Reader is = cpi.getCharacterStream();  //   
     BufferedReader br = new BufferedReader(is);
     String str = br.readLine();
     StringBuffer sb = new StringBuffer();
     while(str != null){      //            
      sb.append(str);
      sb.append("
"); str = br.readLine(); } value = sb.toString(); } catch (Exception e) { e.printStackTrace(); } } return map.put(key, value); } @Override public Object remove(Object key) { return map.remove(key); } @Override public void clear() { map.clear(); } @Override public boolean containsKey(Object key) { return map.containsKey(key); } @Override public boolean containsValue(Object value){ return map.containsValue(value); } public Set entrySet() { return map.entrySet(); } @Override public boolean isEmpty() { return map.isEmpty(); } public Set keySet() { return map.keySet(); } @SuppressWarnings("unchecked") @Override public void putAll(Map t) { map.putAll(t); } @Override public int size() { return map.size(); } public Collection values() { return map.values(); } }
 STEP 7:다음은 테스트 다.

테스트 결 과 는 다음 과 같다.
 
여기에 이르다  여기까지 와 서 저 는 이 물건 이 Jfinal 바 텀 에 포 장 된 Record 류 와 비슷 하 다 고 생각 합 니 다.여러 표 의 공동 조회 상황 에서 저 희 는 my batis-plus 를 편리 하 게 사용 하여 진행 할 수 있 습 니 다.
springboot+my batis-plus 가 다 중 표 공동 조회 기능(주해 방식)을 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 Mybatis-plus 다 중 표 공동 조회 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기