一:总结说明
1.需求
根据classId查询出对应的班级信息,包括学生和老师。
2.结构目录
3.新建学生表
1 CREATE TABLE student( 2 s_id INT PRIMARY KEY AUTO_INCREMENT, 3 s_name VARCHAR(20), 4 class_id INT 5 ); 6 INSERT INTO student(s_name,class_id) VALUES('xs1',1); 7 INSERT INTO student(s_name,class_id) VALUES('xs2',1); 8 INSERT INTO student(s_name,class_id) VALUES('xs3',1); 9 INSERT INTO student(s_name,class_id) VALUES('xs4',2);10 INSERT INTO student(s_name,class_id) VALUES('xs5',2);11 INSERT INTO student(s_name,class_id) VALUES('xs6',2);
4.实体类Student.java
1 package com.jun.bean; 2 3 public class Student { 4 // 5 private int id; 6 private String name; 7 // 8 public Student() {} 9 public Student(int id,String name) {10 this.id=id;11 this.name=name;12 }13 public int getId() {14 return id;15 }16 public void setId(int id) {17 this.id = id;18 }19 public String getName() {20 return name;21 }22 public void setName(String name) {23 this.name = name;24 }25 @Override26 public String toString() {27 return "Student [id=" + id + ", name=" + name + "]";28 }29 30 }
5.修改Classes.java类
因为classes除了老师,现在需要添加一个属性学生,这个学生的属性是List。
需要修改get set方法,修改构造函数,修改tostring方法。
1 package com.jun.bean; 2 3 import java.util.List; 4 5 public class Classes { 6 // 7 private int id; 8 private String name; 9 private Teacher teacher;10 private Listlist; //新添加的属性11 //12 public Classes() {}13 public Classes(int id,String name,Teacher teacher,List list) {14 this.id=id;15 this.name=name;16 this.teacher=teacher;17 this.list=list;18 }19 public int getId() {20 return id;21 }22 public void setId(int id) {23 this.id = id;24 }25 public String getName() {26 return name;27 }28 public void setName(String name) {29 this.name = name;30 }31 public Teacher getTeacher() {32 return teacher;33 }34 public void setTeacher(Teacher teacher) {35 this.teacher = teacher;36 }37 public List getList() {38 return list;39 }40 public void setList(List list) {41 this.list = list;42 }43 @Override44 public String toString() {45 return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher + ", list=" + list + "]";46 }47 48 }
6.Configuration.xml
1 2 3 45 6 18 197 178 109 11 1612 13 14 15 20 22 2321
二:第一种方式
1.映射文件class.xml
1 2 56 10 13 14 2515 16 17 2018 19 21 2422 23
2.测试类
1 package com.jun.main; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 6 import org.apache.ibatis.io.Resources; 7 import org.apache.ibatis.session.SqlSession; 8 import org.apache.ibatis.session.SqlSessionFactory; 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;10 import org.junit.Test;11 import com.jun.bean.Classes;12 public class MainTest {13 /**14 * 方式一15 * @throws Exception16 */17 @Test18 public void test1() throws Exception {19 Reader reader=Resources.getResourceAsReader("com/jun/config/Configuration.xml");20 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);21 SqlSession sqlSession=sqlSessionFactory.openSession(true); //true后是自动提交22 String statement="one2many.selectAll";23 Classes classes=sqlSession.selectOne(statement, 1);24 System.out.println(classes);25 sqlSession.close();26 }27 28 }
3.测试结果
三:方式二
1.映射文件
1 2 56 10 13 14 25 26 33 36 39 4215 16 17 2018 19 21 2422 23 43 4844 45 46 47
2.测试类
1 package com.jun.main; 2 3 import java.io.IOException; 4 import java.io.Reader; 5 6 import org.apache.ibatis.io.Resources; 7 import org.apache.ibatis.session.SqlSession; 8 import org.apache.ibatis.session.SqlSessionFactory; 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;10 import org.junit.Test;11 import com.jun.bean.Classes;12 public class MainTest {13 /**14 * 方式一15 * @throws Exception16 */17 @Test18 public void test1() throws Exception {19 Reader reader=Resources.getResourceAsReader("com/jun/config/Configuration.xml");20 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);21 SqlSession sqlSession=sqlSessionFactory.openSession(true); //true后是自动提交22 String statement="one2many.selectAll";23 Classes classes=sqlSession.selectOne(statement, 1);24 System.out.println(classes);25 sqlSession.close();26 }27 /**28 * 方式二29 * @throws Exception30 */31 @Test32 public void test2() throws Exception {33 Reader reader=Resources.getResourceAsReader("com/jun/config/Configuration.xml");34 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);35 SqlSession sqlSession=sqlSessionFactory.openSession(true); //true后是自动提交36 String statement="one2many.selectClass";37 Classes classes=sqlSession.selectOne(statement, 1);38 System.out.println(classes);39 sqlSession.close();40 }41 42 }
3.结果