Mybaities多对一注解和xml的实现
来源:互联网 发布:网络上写小说能赚钱吗 编辑:程序博客网 时间:2024/06/15 02:26
Dept实体类:
package cn.et.mybatis.lesson03.manyToOne;// default package/** * Dept entity. @author MyEclipse Persistence Tools */public class Dept{// Fieldsprivate String deptno;private String dname;private String loc;public String getDeptno() {return deptno;}public void setDeptno(String deptno) {this.deptno = deptno;}public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}public String getLoc() {return loc;}public void setLoc(String loc) {this.loc = loc;}@Overridepublic String toString() {return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc+ "]";}}
Emp实体类:
package cn.et.mybatis.lesson03.manyToOne;/** * 举例: * 一个部门——多个员工 * 员工表和部门表的关系是多对一关系 * * Emp中添加Dept对象 * @author Administrator * */public class Emp {private String empNo;private String ename;private String sal;private Dept dept;public Dept getDept() {return dept;}public void setDept(Dept dept) {this.dept = dept;}public String getEmpNo() {return empNo;}public void setEmpNo(String empNo) {this.empNo = empNo;}public String getEname() {return ename;}public void setEname(String ename) {this.ename = ename;}public String getSal() {return sal;}public void setSal(String sal) {this.sal = sal;}@Overridepublic String toString() {return "Emp [dept=" + dept + ", empNo=" + empNo + ", ename=" + ename+ ", sal=" + sal + "]";}}
EmpMapper:
package cn.et.mybatis.lesson03.manyToOne;import org.apache.ibatis.annotations.One;import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select;public interface EmpMapper {/** * 注解多对一 * @param empno * @return */@Results({@Result(column="deptno",property="dept",javaType=Dept.class,one=@One(select="cn.et.mybatis.lesson03.manyToOne.EmpMapper.queryDeptByDeptno"))})@Select("select * from emp where empno=#{0}")public Emp queryEmp(String empno);@Select("select * from dept where deptno=#{0}")public Dept queryDeptByDeptno(String deptNo);//==========================================================public Emp queryEmpXml(String empno);public Dept queryDeptByDeptnoXml(String deptNo);}
many_mapper.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 多对一xml --><mapper namespace="cn.et.mybatis.lesson03.manyToOne.EmpMapper"><resultMap type="cn.et.mybatis.lesson03.manyToOne.Emp" id="myEmp"><association column="deptno" property="dept" select="cn.et.mybatis.lesson03.manyToOne.EmpMapper.queryDeptByDeptnoXml"
javaType="cn.et.mybatis.lesson03.manyToOne.Dept"></association></resultMap> <select id="queryEmpXml" resultMap="myEmp">select * from emp where empno=#{0} </select> <select id="queryDeptByDeptnoXml" resultType="cn.et.mybatis.lesson03.manyToOne.Dept">select * from dept where deptno=#{0} </select></mapper>
mybatis.xml
要注册二份,一份是xml的一份是注解接口的
<mapper class="cn.et.mybatis.lesson03.manyToOne.EmpMapper"/> <mapper resource="cn/et/mybatis/lesson03/manyToOne/many_mapper.xml"/>
测试类:
package cn.et.mybatis.lesson03.manyToOne;/** * 多对一 */import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;public class TestMybatis {public static SqlSession getSession(){String resource = "/cn/et/mybatis/lesson03/mybatis.xml";InputStream inputStream = TestMybatis.class.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//打开会话SqlSession session = sqlSessionFactory.openSession();return session;}public static void main(String[] args) {SqlSession session = getSession();EmpMapper emp = session.getMapper(EmpMapper.class);Emp result = emp.queryEmp("8000");System.out.println(result);}@Testpublic void test(){SqlSession session = getSession();EmpMapper emp = session.getMapper(EmpMapper.class);Emp result = emp.queryEmpXml("8000");System.out.println(result);}}
阅读全文
0 0
- Mybaities多对一注解和xml的实现
- Mybaities多对一注解和xml的实现
- Mybaities一对多注解和xml的实现
- Mybaities一对多注解和xml的实现
- Hibernate教程之六一对多&多对一实现基于xml和注解
- hibernate学习一对一,一对多,多对一,多对多,注解版和XML版
- Hibernate多对一实例【xml和注解】many-to-one(十六)
- Hibernate教程之七多对多实现基于xml和注解
- hibernate5简单入门一对多,多对一,多对多的配置及注解实现
- hibernate注解实现1对多和多对多
- Hibernate使用持久化注解实现多对一映射
- hibernate注解多对一和一对多
- hibernate 多对一注解
- 基于Annotation 的多对一ManyToOne双向和基于XML配置多对一双向
- 用反射和注解实现对findViewById的简化调用
- DOM4J 对XML的读写 详细注解
- hibernate单向多对一关联映射(many-to-one)XML与注解版
- hibernate使用注解的方式进行多对一关联
- Class类的了解(一)
- 三大数据库的端口号
- 用户建立
- TensorFlow教程06:MNIST的CNN实现——源码和运行结果
- 欢迎使用CSDN-markdown编辑器
- Mybaities多对一注解和xml的实现
- SpringMVC重要注解(二)@ControllerAdvice
- 分别用selenium和scrapy爬取网站(一)
- faster-rcnn 多尺度目标检测
- android----下拉刷新
- dao的在封装
- html5内置音频 <audio>
- angular中的表达式
- TensorFlow基础 介绍