博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【MyBatis】-----【MyBatis】---表级联系【一对多】
阅读量:4563 次
发布时间:2019-06-08

本文共 5874 字,大约阅读时间需要 19 分钟。

一、核心配置文件

二、实体类

  Classes

package com.myBatis.entity;import java.util.List;public class Classes {    private int id; // id===>c_id    private String name; // name===>c_name    /**     * class表中有一个teacher_id字段,所以在Classes类中定义一个teacher属性,     * 用于维护teacher和class之间的一对一关系,通过这个teacher属性就可以知道这个班级是由哪个老师负责的     */    private Teacher teacher;        //使用一个List
集合属性表示班级拥有的学生 private List
students; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } public List
getStudents() { return students; } public void setStudents(List
students) { this.students = students; } @Override public String toString() { return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher + ", students=" + students + "]"; } //增删改要用到的两个构造方法 public Classes(String name, Teacher teacher) { super(); this.name = name; this.teacher = teacher; } public Classes() { super(); } }

  Teacher

package com.myBatis.entity;public class Teacher {    // 定义实体类的属性,与teacher表中的字段对应    private int id; // id===>t_id    private String name; // name===>t_name    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "Teacher [id=" + id + ", name=" + name + "]";    }    public Teacher() {        super();    }    public Teacher(int id) {        super();        this.id = id;    }        }

  Student

package com.myBatis.entity;public class Student {    //定义属性,和student表中的字段对应    private int id;            //id===>s_id    private String name;    //name===>s_name        public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "Student [id=" + id + ", name=" + name + "]";    }}

三、映射文件

  classessMapper.xml

delete from classes where c_id=#{id}
insert into classes values(null,#{name},#{teacher.id})
update classes set t_id=#{teacher.id} where c_id=#{id}

  teacherMapper.xml

insert into teacher values(#{t_name})

四、封装类

package com.myBatis.util;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class myBtaisUtil {    static Reader reader=null;    static SqlSessionFactory sqlSessionFactory= null;    static SqlSession sqlSession = null;    /**     * 加载核心配置文件     * 获取SqlSessionFactory     * @return SqlSessionFactory     */    public static SqlSessionFactory getsqlSessionFactory() {        try {            reader = Resources.getResourceAsReader("SqlMapConfig.xml");            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);        } catch (IOException e) {            e.printStackTrace();        }        return sqlSessionFactory;    }    /**     * 获取SqlSession     * @return SqlSession     */    public static SqlSession getsqlSession() {        return sqlSession= getsqlSessionFactory().openSession(true);    }}

五、测试类

package myBatisTest;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import com.myBatis.entity.Classes;import com.myBatis.entity.Teacher;import com.myBatis.util.myBtaisUtil;public class TestUser {    //查询    @Test    public void testGetClasses() {        SqlSession sqlSession=myBtaisUtil.getsqlSession();        String select = "com.myBatis.mapper.classesMapper.getClass3";        Classes classes = sqlSession.selectOne(select, 1);        System.out.println(classes);    }}

 

转载于:https://www.cnblogs.com/angelye/p/7464945.html

你可能感兴趣的文章
服务器上centos 7 配置静态IP
查看>>
C# unsafe模式内存操作深入探索
查看>>
Redis拾遗(一)
查看>>
js字符串转换为Json对象的三种写法
查看>>
Is it possible to display icons in a PopupMenu?
查看>>
制作导航条
查看>>
iOS中的内存管理1
查看>>
23种设计模式全解析
查看>>
Learning Python 008 正则表达式-003 sub()方法
查看>>
Linux的虚拟机拷贝到另外的操作系统时,NAT方式的静态IP无效,一直是获取的DHCP动态地址...
查看>>
要检测两个C文件的代码的抄袭情况
查看>>
PHP-多域名单点登陆方案
查看>>
iOS开发之应用内支付IAP全部流程
查看>>
【web技术】html特效代码(一)
查看>>
SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
查看>>
高可用集群搭建
查看>>
Lua学习笔记
查看>>
Redis监控工具,命令和调优
查看>>
zabbix-mysql迁移分离
查看>>
jQuery调用WCF 说明
查看>>