Mybatis多对多

Mybatis多对多

首先创建三个表,user,group,user_group.
然后创建对应的类在pojo下。
配置文件configure.xml和一对多没区别。
代码如下:

例group.xml代码:

测试类测试

import java.io.Reader;
import java.text.MessageFormat;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.yiibai.maper.GroupMaper;
import com.yiibai.maper.UserGroupMaper;
import com.yiibai.maper.UserMaper;
import com.yiibai.pojo.Group;
import com.yiibai.pojo.User;
import com.yiibai.pojo.UserGroup;

public class Main {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;

static {
    try {
        reader = Resources.getResourceAsReader("config/Configure.xml");
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public static SqlSessionFactory getSession() {
    return sqlSessionFactory;
}

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    // testAddGroup();
    // testAddUser();
    // testAddUserGroup();
    testGetGroupAndUsers();

}

public static void testGetGroupAndUsers() {
    UserGroup userGroup = new UserGroup();
    SqlSession session = sqlSessionFactory.openSession();
    try {
        GroupMaper groupMaper = session.getMapper(GroupMaper.class);
        Group group = groupMaper.getGroup(1);
        System.out.println("Group => " + group.getGroupName());
        List<User> users = group.getUsers();
        for (User user : users) {
            System.out.println("\t:" + user.getId() + "\t"
                    + user.getUsername());
        }
    } finally {
        session.close();
    }
}

public static void testAddUserGroup() {
    UserGroup userGroup = new UserGroup();
    userGroup.setGroupId(1);
    userGroup.setUserId(2);
    SqlSession session = sqlSessionFactory.openSession();
    try {
        UserGroupMaper userGroupMaper = session
                .getMapper(UserGroupMaper.class);
        userGroupMaper.insertUserGroup(userGroup);

        session.commit();
    } finally {
        session.close();
    }

}

public static void testAddUser() {
    // TODO Auto-generated method stub
    SqlSession session = sqlSessionFactory.openSession();
    try {
        User user = new User();
        user.setUsername("User-name-1");
        user.setMobile("13838009988");
        UserMaper userMaper = session.getMapper(UserMaper.class);
        userMaper.insertUser(user);
        session.commit();
        // System.out.println(user.getGroupId());
    } finally {
        session.close();
    }
}

public static void testAddGroup() {
    // TODO Auto-generated method stub
    SqlSession session = sqlSessionFactory.openSession();
    try {
        Group group = new Group();
        group.setGroupName("用户组-1");
        GroupMaper groupMapper = session.getMapper(GroupMaper.class);
        groupMapper.insertGroup(group);
        session.commit();
        System.out.println(group.getGroupId());
    } finally {
        session.close();
    }
}

}

运行结果如下

Group => Group-1
:1 yiibai
:2 User-name-1

全部评论

相关推荐

虚闻松声:简历看起来很清爽。几点建议。 1. 总结提炼项目工作内容。如第一个项目第一点,研发用户信息管理、购票功能:(然后具体展开)。还可以继续总结,如基础功能开发、算法优化座位分配、并发性能提升等等 2. 优化技术栈描述。全文多次出现Spring Boot,我感觉一次就够了。可以不写或者写整个体技术架构? 3. 增加业务指标描述。最好有一些业务效果的指标。或者优化的效果指标等等。
点赞 评论 收藏
分享
生命诚可贵:先不说内容怎么样 排版就已经太差劲了 第一眼看不到重点,第二眼已经没有再看的耐心了, 篇幅占的太满了 字体不要用灰色 观感不好 想重点突出的黑色加粗就可以了 多列要点 少些大段的句子 项目经历把项目用的技术要点列出来,光写个python plc什么的太宽泛了 自我评价也有点偏多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务