09—mybatis注解配置join查詢


今天來聊mybatis的join查詢,怎么說呢,有的時候,join查詢確實能提升查詢效率,今天舉個left join的例子,來看看mybatis的join查詢。

就不寫的很細了,把主要代碼貼出來了。

創建數據表:admin_user、admin_groups

CREATE TABLE `admin_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用戶編號',
  `user_name` varchar(255) NOT NULL COMMENT '用戶登錄賬號',
  `pwd` varchar(255) DEFAULT NULL COMMENT '登錄密碼',
  `create_date` datetime DEFAULT NULL COMMENT '創建時間',
  `enable_flag` int(20) DEFAULT NULL COMMENT '用戶狀態 0:可用 1:不可用',
  `group_id` int(20) DEFAULT NULL COMMENT '分組ID,0超級管理員,1一般管理員',
  `last_login_ip` varchar(255) DEFAULT NULL COMMENT '最后一次登錄IP地址',
  `last_login_time` datetime DEFAULT NULL COMMENT '最后登錄時間',
  `login_count` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `user_name` (`user_name`) USING BTREE
) 

---------------------------------------------------------------------------------
CREATE TABLE `admin_groups` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `group_name` varchar(255) DEFAULT NULL,
  `create_by_user_name` varchar(255) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `remarks` varchar(1000) NOT NULL DEFAULT '' COMMENT '描述',
  `enable_flag` int(2) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`)
)

 

創建實體類:AdminUserJoinGroups.java

package com.palmble.entity;
import lombok.Data;
import javax.persistence.Table;

@Table(name = "admin_user")
@Data
public class AdminUserJoinGroups {
    private Long id;
    private String userName;
    private String groupName;
    private String createByUserName;
}

service層:AdminUserService.java

@Service
public class AdminUserService {

    @Autowired
    private AdminUserMapper adminUserMapper;
    public List<AdminUserJoinGroups> selectAllList()
    {
        return  adminUserMapper.selectAllList();
    }
}

mapper層:AdminUserMapper.java

@Mapper
public interface AdminUserMapper {

    @Select(" SELECT u.id,user_name,g.group_name,g.create_by_user_name FROM admin_user u left join admin_groups g on u.group_id=g.id;")
    @Results(id = "userGroupMap", value = {
            @Result(id = true, column = "id", property = "id"),
            @Result(column = "user_name", property = "userName"),
@Result(column = "group_name", property = "groupName"), @Result(column = "create_by_user_name", property = "createByUserName") }) List<AdminUserJoinGroups> selectAllList(); }

 

測試:

@RestController
@RequestMapping("/admin")
public class AdminController {
    @Autowired
    private AdminUserService adminUserService;

    @RequestMapping("/getUserGroup")
    public String getUserGroup() {
        List<AdminUserJoinGroups> adminUserJoinGroups = adminUserService.selectAllList();
        StringBuilder sb = new StringBuilder();
        for (AdminUserJoinGroups item : adminUserJoinGroups) {
            sb.append("id=" + item.getId() + ",username=" + item.getUserName() + ",groupname=" + item.getGroupName() + ",createByUserName=" + item.getCreateByUserName());
        }
        return sb.toString();
    }

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM