zoukankan      html  css  js  c++  java
  • mybatis一对一映射

    1)如图

    2)创建students.sql和cards.sql

    drop table students;
    drop table cards;
    create table cards(
        id    int(5)    primary key,
        num varchar(20)
    );
    create table students(
        id    int(5)    primary key,
        name varchar(10),
        cid int(5),
        constraint cid_fk foreign key(cid) references cards(id)
    );
    insert into cards(id,num) values(1,'111');
    insert into students(id,name,cid) values(1,'哈哈',1);

    3)创建Students.java和Card.java

    public class Card {
        private Integer id;
        private String num;
        private Student student;
        public Card(){}
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getNum() {
            return num;
        }
        public void setNum(String num) {
            this.num = num;
        }
        public Student getStudent() {
            return student;
        }
        public void setStudent(Student student) {
            this.student = student;
        }
    }
    public class Student {
        private Integer id;
        private String name;
        private Card card;
        public Student(){}
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Card getCard() {
            return card;
        }
        public void setCard(Card card) {
            this.card = card;
        }
    }

    4)创建StudentMapper.xml和CardMapper.xml

     CardMapper.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">
    <mapper namespace="cardNamespace">
        <resultMap type="loaderman.one2one.Card" id="cardMap">
            <id property="id" column="id" />
            <result property="num" column="num" />
        </resultMap>
    </mapper>

    StudentMapper.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">
    <mapper namespace="studentNamespace">
        <resultMap type="loaderman.one2one.Student" id="studentMap">
            <id property="id" column="id" />
            <result property="name" column="name"/>
            <association property="card" resultMap="cardNamespace.cardMap"/>
        </resultMap>
        <select id="findById" parameterType="int" resultMap="studentMap">
            select s.id,s.name,c.id,c.num
            from students s inner join cards c
            on s.cid = c.id 
            and s.id = #{id}
        </select>
    </mapper>

    5)创建StudentCardDao.java

    public class StudentCardDao {
        /**
         * 查询1号【学生】
         */
        public Student findById(int id) throws Exception{
            SqlSession sqlSession = null;
            try{
                sqlSession = MybatisUtil.getSqlSession();
                return sqlSession.selectOne("studentNamespace.findById",id);
            }catch(Exception e){
                e.printStackTrace();
                throw e;
            }finally{
                MybatisUtil.closeSqlSession();
            }
        }
        public static void main(String[] args) throws Exception{
            StudentCardDao dao = new StudentCardDao();
            Student student = dao.findById(1);
            System.out.println(student.getId()+":"+student.getName());
            System.out.println(student.getCard().getId()+":"+student.getCard().getNum());
        }
    }
  • 相关阅读:
    如何在linux系统安装redis
    关于—单例模式
    2.观察者模式(发布-订阅模式)
    1.提供者模式
    提供者模式:提供者的实例化加锁
    为已有的类添加特性,常用于数据库生成的类模型
    C#特性
    JSON.parse(jsonStr)和eval('('+jsonStr+')')
    a标签的href和onclick
    查看SQL语句执行时间/性能测试
  • 原文地址:https://www.cnblogs.com/loaderman/p/10064562.html
Copyright © 2011-2022 走看看