
①创建数据库和表,数据库为mytest,表为teacher和student
1 DROP TABLE IF EXISTS teacher;
2 DROP TABLE IF EXISTS student;
3
4 CREATE TABLE teacher(
5 teacher_id INT PRIMARY KEY auto_increment NOT NULL,
6 teacher_name VARCHAR(20)
7 );
8
9 CREATE TABLE student(
10 student_id INT PRIMARY KEY auto_increment NOT NULL,
11 student_name VARCHAR(20),
12 teacher_id INT
13 );
14
15 ALTER TABLE student ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(teacher_id);
16
17 INSERT INTO teacher(teacher_name) VALUES ("张三丰");
18 INSERT INTO teacher(teacher_name) VALUES ("王重阳");
19 INSERT INTO student(student_name, teacher_id) VALUES ("宋远桥", 1);
20 INSERT INTO student(student_name, teacher_id) VALUES ("俞莲舟", 1);
21 INSERT INTO student(student_name, teacher_id) VALUES ("俞岱岩", 1);
22 INSERT INTO student(student_name, teacher_id) VALUES ("张松溪", 1);
23 INSERT INTO student(student_name, teacher_id) VALUES ("张翠山", 1);
24 INSERT INTO student(student_name, teacher_id) VALUES ("殷梨亭", 1);
25 INSERT INTO student(student_name, teacher_id) VALUES ("莫声谷", 1);
26
27 INSERT INTO student(student_name, teacher_id) VALUES ("丹阳子马钰", 2);
28 INSERT INTO student(student_name, teacher_id) VALUES ("长真子谭处端", 2);
29 INSERT INTO student(student_name, teacher_id) VALUES ("长生子刘处玄", 2);
30 INSERT INTO student(student_name, teacher_id) VALUES ("长春子丘处机", 2);
31 INSERT INTO student(student_name, teacher_id) VALUES ("玉阳子王处一", 2);
32 INSERT INTO student(student_name, teacher_id) VALUES ("广宁子郝大通", 2);
33 INSERT INTO student(student_name, teacher_id) VALUES ("清静散人孙不二", 2); ②创建Java工程,导入相应的jar包
③创建配置文件l和数据库配置文件db.properties
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE configuration PUBLIC "-//mybatis//DTD Config 3.0//EN"
3 ".dtd">
4
5 <configuration>
6 <properties resource="db.properties"></properties>
7 <environments default="development">
8 <environment id="development">
9 <transactionManager type="JDBC"></transactionManager>
10 <dataSource type="POOLED">
11 <property name="driver" value="${driver}"/>
12 <property name="url" value="${url}"/>
13 <property name="username" value="${name}"/>
14 <property name="password" value="${password}"/>
15 </dataSource>
16 </environment>
17 </environments>
18
19 <mappers>
20 <mapper resource="org/mybatis/l"/>
21 <mapper resource="org/mybatis/l"/>
22 </mappers>
23 </configuration> 1 driver = sql.jdbc.Driver 2 url = jdbc:mysql://localhost:3306/mytest 3 name = root 4 password = root
④创建实体类Teacher和Student
1 batis.domain;
2
3 import java.util.List;
4
5 public class Teacher {
6
7 private int teacher_id;
8 private String teacher_name;
9 private List<Student> students;
10
11 public int getTeacher_id() {
12 return teacher_id;
13 }
14
15 public void setTeacher_id(int teacher_id) {
16 acher_id = teacher_id;
17 }
18
19 public String getTeacher_name() {
20 return teacher_name;
21 }
22
23 public void setTeacher_name(String teacher_name) {
24 acher_name = teacher_name;
25 }
26
27 public List<Student> getStudents() {
28 return students;
29 }
30
31 public void setStudents(List<Student> students) {
32 this.students = students;
33 }
34
35 @Override
36 public String toString() {
37 return "[Teacher = teacher_id:" + teacher_id + ", teacher_name:" + teacher_name
38 + ", the number of students:" + students.size() + "]";
39 }
40
41
42 }
1 batis.domain;
2
3 public class Student {
4
5 private int student_id;
6 private String student_name;
7 private Teacher teacher;
8
9 public int getStudent_id() {
10 return student_id;
11 }
12
13 public void setStudent_id(int student_id) {
14 this.student_id = student_id;
15 }
16
17 public String getStudent_name() {
18 return student_name;
19 }
20
21 public void setStudent_name(String student_name) {
22 this.student_name = student_name;
23 }
24
25 public Teacher getTeacher() {
26 return teacher;
27 }
28
29 public void setTeacher(Teacher teacher) {
30 acher = teacher;
31 }
32
33 @Override
34 public String toString() {
35 return "[Student = student_id:" + student_id + ", student_name:" + student_name +
36 ", teacher:" + Teacher_name() + "]";
37 }
38
39
40 } ⑤创建sql映射文件l和l
注意比较两者的区别
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis//DTD Mapper 3.0//EN"
3 ".dtd">
4
5 <mapper namespace=batis.mapping.studentMapper">
6 <select id="getStudent" resultMap="getStudentMap">
7 select * from teacher t, student s acher_idacher_id acher_id=#{id}
8 </select>
9
10 <resultMap type=batis.domain.Student" id="getStudentMap">
11 <id column="student_id" property="student_id" />
12 <result column="student_name" property="student_name" />
13 <association property="teacher" javaType=batis.domain.Teacher">
14 <id column="teacher_id" property="teacher_id"/>
15 <result column="teacher_name" property="teacher_name"/>
16 </association>
17 </resultMap>
18 </mapper> l 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis//DTD Mapper 3.0//EN"
3 ".dtd">
4
5 <mapper namespace=acherMapper">
6 <select id="getTeacher" resultMap="getTeacherMap">
7 select * from teacher t, student s acher_idacher_id acher_id=#{id}
8 </select>
9
10 <resultMap type=batis.domain.Teacher" id="getTeacherMap">
11 <id column="teacher_id" property="teacher_id" />
12 <result column="teacher_name" property="teacher_name" />
13 <collection property="students" ofType=batis.domain.Student">
14 <id column="student_id" property="student_id"/>
15 <result column="student_name" property="student_name"/>
16 </collection>
17 </resultMap>
18 </mapper> l ⑥向配置文件中注册 l和l 文件【已添加,查看第③步】
⑦测试类
1 batis.app;
2
3 import java.io.InputStream;
4 import java.util.List;
5
6 import org.apache.ibatis.session.SqlSession;
7 import org.apache.ibatis.session.SqlSessionFactory;
8 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
9 import org.junit.Before;
10 import org.junit.Test;
11 batis.domain.Student;
12 batis.domain.Teacher;
13
14 public class TestOneToMany {
15
16 SqlSession session;
17
18 @Before
19 public void beforeLoad() {
20 InputStream inputStream =
21 ClassLoader().getResourceAsStream(l");
22 SqlSessionFactory sqlSessionFactory =
23 new SqlSessionFactoryBuilder().build(inputStream);
24 session = sqlSessionFactory.openSession();
25 }
26
27 @Test
28 public void testGetStudents() {
29 String statement = batis.Student";
30 List<Student> studentList = session.selectList(statement, 1);
31 for(Student s : studentList) {
32 System.out.Student_name() + "的师傅是:" + s.getTeacher().getTeacher_name());
33 }
34
35 session.close();
36 }
37
38 @Test
39 public void testGetTeacher() {
40 String statement = Teacher";
41 Teacher t = session.selectOne(statement, 1);
42 System.out.Teacher_name() + "有" + t.getStudents().size() + "个徒弟");
43 session.close();
44 }
45
46 } ⑧结构图
转载于:.html
本文发布于:2024-01-30 18:54:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661208422120.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |