mybatis annotation of use @One

Here Insert Picture Description
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();
			}	
		}
	}
}
Published 328 original articles · won praise 110 · views 470 000 +

Guess you like

Origin blog.csdn.net/qq_42249896/article/details/93485201