一: 准备工作
1. 建立数据CREATE TABLE boss(
b_id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,
b_name VARCHAR(255)
);
CREATE TABLE manager(
m_id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,
m_name VARCHAR(255)
);
INSERT INTO boss(b_name) VALUES('Tom');
INSERT INTO manager(m_name) VALUES('Mgr1');
INSERT INTO manager(m_name) VALUES('Mgr2');
INSERT INTO manager(m_name) VALUES('Mgr3');
2. 建立对应的实体类package com.mybatis.entities;
public class Manager {
private Integer id;
private String name;
// 提供对应的 getter/setter 方法
// 提供 toString 方法
}
================================
package com.mybatis.entities;
import java.util.List;
public class Boss {
private Integer id;
private String name;
private List mgrs;
// 提供相应的 getter/setter 方法
// 提供 toString 方法
}
3. 建立对应的sql映射文件
这里只查询 Boss 然后接着把Boss下的所有管理者都查出来, 所以就只建立Boss的映射文件.
二: 测试
1. 在 BossMapper.xml 写 SQL语句, 以及对应的配置<?xml version="1.0" encoding="UTF-8"?>
mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT * FROM boss b, manager m WHERE b.b_id=m.b_id AND b.b_id=#{b_id}
SELECT b_id, b_name FROM boss WHERE b_id=#{b_id}
SELECT m_id id, m_name name FROM manager WHERE b_id=#{b_id}
2. 代码测试package com.mybatis.test;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.mybatis.entities.Boss;
import com.mybatis.util.MyBatisUtil;
public class TestBoss {
@Test
public void testGetBoss1(){
SqlSession session = MyBatisUtil.getSqlSession();
String statement = "com.mybatis.entities.BossMapper.getBoss1";
Boss boss = session.selectOne(statement, 1);
System.out.println(boss);
}
@Test
public void testGetBoss2(){
SqlSession session = MyBatisUtil.getSqlSession();
String statement = "com.mybatis.entities.BossMapper.getBoss2";
Boss boss = session.selectOne(statement, 1);
System.out.println(boss);
}
}
完成测试!