Skip to content

Commit

Permalink
mybatis完成user与tag多对多映射
Browse files Browse the repository at this point in the history
  • Loading branch information
suvvm committed Nov 21, 2019
1 parent bc9b259 commit ff18956
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.jdbc.SQL;
import qdu.suvvm.onlinesurvey.pojo.Tag;
import qdu.suvvm.onlinesurvey.pojo.User;

import java.util.List;

Expand All @@ -15,7 +16,16 @@
public interface TagMapper {
// 根据动态sql查询tag
@SelectProvider(type = TagMapperProvider.class, method = "findTag")
@Results({
@Result(property = "id", column = "id", id = true),
@Result(property = "users", column = "id", many = @Many(select = "qdu.suvvm.onlinesurvey.mapper.UserMapper.getUserByTagId"))
})
public List<Tag> selectTags(Tag tag);

// 根据tag id查询用户
@Select("select * from tags t inner join usertag ut on t.id=ut.tid where ut.uid=#{uid}")
public Tag getTagByUserId(Integer uid);

// 根据id删除tag
@Delete("delete from tags where id = #{id}")
public int deleteTagById(Integer id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,16 @@
public interface UserMapper {
// 根据动态sql查询user
@SelectProvider(type = UserMapperProvider.class, method="findUser")
@Results({
@Result(property = "id", column = "id", id = true),
@Result(property = "tags", column = "id", many = @Many(select = "qdu.suvvm.onlinesurvey.mapper.TagMapper.getTagByUserId"))
})
public List<User> getUser(User user);

// 根据tag id查询用户
@Select("select * from users u inner join usertag ut on u.id=ut.uid where ut.tid=#{tid}")
public User getUserByTagId(Integer tid);

// 根据id删除user
@Delete("delete from users where id=#{id}")
public int deleteUserById(Integer id);
Expand All @@ -41,6 +50,21 @@ class UserMapperProvider {
* @Parameter:
* user 查询数据封装的用户类
* @Return: 返回对应的sql语句
*/
/*
select
*
from
user b
  inner join
   tags m
  on
   b.bid=m.m_bid
  inner join
   category c
  on
   m.m_cid=c.cid
*/
public String findUser(User user) {
return new SQL() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package qdu.suvvm.onlinesurvey.pojo;

import java.util.List;

/**
* @Author: SUVVM
* @Date: 2019/11/12 16:58
Expand All @@ -8,7 +10,7 @@ public class Tag {
private Integer id;
private String name;
private String description;

private List<User> users;
public Integer getId() {
return id;
}
Expand All @@ -32,4 +34,22 @@ public String getDescription() {
public void setDescription(String description) {
this.description = description;
}

public List<User> getUsers() {
return users;
}

public void setUsers(List<User> users) {
this.users = users;
}

@Override
public String toString() {
return "Tag{" +
"id=" + id +
", name='" + name + '\'' +
", description='" + description + '\'' +
", users=" + users +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package qdu.suvvm.onlinesurvey.pojo;

import java.util.List;

/**
* @Author: SUVVM
* @Date: 2019/11/12 16:43
Expand All @@ -15,6 +17,7 @@ public class User {
private String avatar;
private String imgbase64;
private Integer power;
private List<Tag> tags;

public Integer getId() {
return id;
Expand Down Expand Up @@ -95,4 +98,29 @@ public Integer getPower() {
public void setPower(Integer power) {
this.power = power;
}

public List<Tag> getTags() {
return tags;
}

public void setTags(List<Tag> tags) {
this.tags = tags;
}

@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", name='" + name + '\'' +
", pnum='" + pnum + '\'' +
", email='" + email + '\'' +
", gender='" + gender + '\'' +
", avatar='" + avatar + '\'' +
", imgbase64='" + imgbase64 + '\'' +
", power=" + power +
", tags=" + tags +
'}';
}
}

0 comments on commit ff18956

Please sign in to comment.