XueSheng.java
:
package vo;
import java.io.Serializable;
import org.apache.ibatis.type.Alias;
public class XueSheng implements Serializable {
/**
*
*/
//学生编号(主键:sid)
private String bianhao;
//学生姓名(sname)
private String xingming;
//学生性别(sex)
private String xingbie;
//学生头像(newname)
private String touxiang;
//班级编号(外键:cid)
private String banjibianhao;
//班级对象
private Banji banji;
public Banji getBanji() {
return banji;
}
public void setBanji(Banji banji) {
this.banji = banji;
}
public String getBanjibianhao() {
return banjibianhao;
}
public void setBanjibianhao(String banjibianhao) {
this.banjibianhao = banjibianhao;
}
public String getXingming() {
return xingming;
}
public void setXingming(String xingming) {
this.xingming = xingming;
}
public String getBianhao() {
return bianhao;
}
public void setBianhao(String bianhao) {
this.bianhao = bianhao;
}
public String getXingbie() {
return xingbie;
}
public void setXingbie(String xingbie) {
this.xingbie = xingbie;
}
public String getTouxiang() {
return touxiang;
}
public void setTouxiang(String touxiang) {
this.touxiang = touxiang;
}
}
Banji.java
:
package vo;
import java.util.List;
public class Banji {
//班级id(主键)
private String id;
//班级名字
private String cname;
private List<Stu> stus;
public List<Stu> getStus() {
return stus;
}
public void setStus(List<Stu> stus) {
this.stus = stus;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
}
EmpMapper.java
:
package mapper;
import java.util.List;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.mapping.FetchType;
import vo.Banji;
import vo.XueSheng;
public interface EmpMapper {
//在DAO中定义的抽象方法要和映射文件中的id值匹配起来,映射中的参数就是此处的方法的参数
@Select(value="select * from stu")
@Results({
@Result(column="sid",property="bianhao"),
@Result(column="sname",property="xingming"),
@Result(column="sex",property="xingbie"),
@Result(column="cid",property="banji",
one=@One(select="mapper.EmpMapper.findBanjiByCid",fetchType= FetchType.EAGER))
})
public List<XueSheng> findAll();
@Select(value="select * from class where id=#{cid}")
public Banji findBanjiByCid();
}
EmpTest.java
:
package test;
import java.io.IOException;
import java.io.InputStream;
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 mapper.EmpMapper;
import vo.XueSheng;
public class EmpTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
InputStream input = null;
SqlSessionFactory sqlSessionFactory = null;
SqlSession sqlSession = null;
try {
//1.定位MyBatis的主配置文件
input = Resources.getResourceAsStream("mybatis-config.xml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//2.根据配置文件创建SqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
//3.使用SqlSessionFactory生产SqlSession
sqlSession = sqlSessionFactory.openSession();
EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);
//4、使用SqlSession调用相应的方法完成操作
List<XueSheng> list = empMapper.findAll();//com.sdbairui.mapper.EmpMapper.findAll
for(XueSheng xs : list) {
System.out.println(xs.getXingming()+" "+xs.getXingbie());
System.out.println(xs.getBanji().getCname());
}
//5.提交
sqlSession.commit();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
//如果出现了异常则回滚
if(sqlSession!=null) {
sqlSession.rollback();//回滚
}
}finally {
//6、关闭sqlSession
if(sqlSession!=null) {
sqlSession.close();
}
}
}
}