MyBatis对象关系映射--- 多对一
来源:互联网 发布:华美卷皮最新源码 编辑:程序博客网 时间:2024/06/04 18:28
实体类:
package cn.et.lesson03.emp;import cn.et.lesson03.dept.Dept;public class Emp {/** * 对象关系映射 * 举例:一个部门中有过个员工 * 那么查询唯一的一个员工时,部门信息是确定的 * (即多对一的关系) * Emp中添加Dept来体现 */private String empId;private String empName;//部门对象private Dept dept;public String getEmpId() {return empId;}public void setEmpId(String empId) {this.empId = empId;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}public Dept getDept() {return dept;}public void setDept(Dept dept) {this.dept = dept;}@Overridepublic String toString() {return "Emp [empId=" + empId + ", empName=" + empName + ", dept="+ dept + "]";}}
接口:
package cn.et.lesson03.emp;import org.apache.ibatis.annotations.One;import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select;import cn.et.lesson03.dept.Dept;public interface EmpMapper {/** * 将列名和字段名 建立关系 * property指向 java中的实体类字段 区分大小写 * column指向 数据库中的 列名不分区大小写 * @param empNo * @return * * <!-- emp中多对一使用xml演示 --> <resultMap type="cn.et.mybatis.lesson03.result.anno.Emp" id="myEmp"> <result column="empNo" property="empId"/> <association property="dept" select="selectMyDept" column="deptno" javaType="cn.et.mybatis.lesson03.result.xml.Dept"> </association> </resultMap> * * */@Results({@Result(column="empno",property="empId"),@Result(column="ename",property="empName"),/*noe是Mybatis中 多对一 的关键字 * @One指向 一 的查询语句 * 这里的column 是将selectEmpByEmpNo查询出来的deptno传入到selectDeptByDeptNO * javaType 申明 one=@One查询出来的 结果类型 * property="dept" 将结果 存入dept*/@Result(column="deptno",property="dept", javaType=Dept.class, one=@One(select="cn.et.lesson03.emp.EmpMapper.selectDeptByDeptNO"))})@Select("select empno,ename,deptno from emp where empno=#{0}")public Emp selectEmpByEmpNo(String empNo);@Results({@Result(column="deptNo",property="deptId"),@Result(column="dname",property="deptName"),@Result(column="loc" , property="deptLoc"),})@Select("select * from dept where deptno=#{0}")public Dept selectDeptByDeptNO(String deptNo);}
Test
package cn.et.lesson03.emp;import java.io.InputStream;import java.util.List;import java.util.Map;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class TestMybatis {private static SqlSession getSession() {//因为需要的mybatis.xml文件 不在同一层目录 所以这里才使用 cn.et.lesson01.TestMybatisInputStream is = TestMybatis.class.getResourceAsStream("/cn/et/lesson03/mybatis.xml");SqlSessionFactory session = new SqlSessionFactoryBuilder().build(is);//openSession()获取操作数据库的类 SqlSessionSqlSession sqlSession = session.openSession();return sqlSession;}public static void main(String[] args) {SqlSession sqlSession = getSession();//通过动态代理创建一个实体类 通过接口会自动调用配置文件EmpMapper dm = sqlSession.getMapper(EmpMapper.class);Emp emp = dm.selectEmpByEmpNo("7900");System.out.println(emp);}}
Run
阅读全文
0 0
- MyBatis对象关系映射--- 多对一
- Mybatis映射关系-多对一映射
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- mybatis 多对多映射关系
- MyBatis多对多关系映射
- mybatis多对多关系映射
- Mybatis 多对多关系映射
- 将数据储存到SharedPreferences
- Mac10.12下Eclipse4.6+Maven3.5+Tomcat8.5+JDK1.8开发环境的搭建
- 内核源码--------boot_cpu_init();
- iOS开发抓包工具之Charles使用
- SQL介绍
- MyBatis对象关系映射--- 多对一
- Word2vec 原理公式推到和代码实现
- java.util.Date和java.sql.Date的区别及应用
- C++对象的内存分布和虚函数表
- Ubuntu16.04 Jupyter安装(Ipython Notebook安装)
- androidStudio打包apk混淆配置
- 研究了100多个创业失败案例后,这里有7个血色教训
- 限制容器的 Block IO
- 自适应布局下的图片垂直水平居中,自适应手机横竖屏