一、核心配置文件
二、实体类
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); }}