这次我们要多牵涉到一张表格T_ORGAN我们通过表格T_USER的ORGAN_ID和表格T_ORGAN进行关联。具体的T_ORGAN表格的建表SQL如下
CREATE TABLE `T_ORGAN` (
`ORGAN_ID` varchar(10) ,
`ORGAN_NAME` varchar(300)
)
然后我们在之前我们的Mapping类里面新建一个方法以及相关的SQL
@Select(" SELECT TU.user_name name, TOO.organ_name organName from T_USER TU,T_ORGAN TOO WHERE TOO.ORGAN_ID = TU.ORGAN_ID AND TU.USER_ID = #{userId}")
public UserInfo findUserInfo(int userId);
我们通过别名来将字段名和我们的bean类进行关联,以下是我们的Bean类
package mybatisTest.web;
public class UserInfo {
private String name;
private String organName;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOrganName() {
return organName;
}
public void setOrganName(String organName) {
this.organName = organName;
}
}
然后我们稍微修改下我们的测试类使用JUNIT进行一次测试
@Test
public void testInfoInterface(){
String resource = "config.xml";
//在这里使用类加载器只是方便我们找到我们的文件
//如果使用不同的路径或者是在服务器上面我们可以不这么使用这个,关键是我们要取得我们配置文件的input
InputStream is = MybatisTest.class.getClassLoader().getResourceAsStream(resource);
//构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
//通过我们的session和我们需要的mapping类的class获取我们需要的映射
userMapping mapper = session.getMapper(userMapping.class);
UserInfo userInfo = mapper.findUserInfo(2);
session.commit();
System.out.println(" "+ userInfo.getName()+" "+userInfo.getOrganName());
session.close();
}
这样我们就能够正常的使用了