博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis学习——一对一关联表查询
阅读量:6155 次
发布时间:2019-06-21

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

1.SQL语句建表

1 CREATE TABLE teacher( 2 t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20) 3 ); 4 CREATE TABLE class( 5 c_id INT PRIMARY KEY AUTO_INCREMENT, c_name VARCHAR(20), 6 teacher_id INT 7 ); 8 ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id); 9 INSERT INTO teacher(t_name) VALUES('LS1'); INSERT INTO teacher(t_name) VALUES('LS2');10 INSERT INTO class(c_name, teacher_id) VALUES('bj_a', 1); INSERT INTO class(c_name, teacher_id) VALUES('bj_b', 2);
sql

2.实体类

1 package com.zhengbin.entity; 2  3 public class Teacher { 4     private int id; 5     private String name; 6     public int getId() { 7         return id; 8     } 9     public void setId(int id) {10         this.id = id;11     }12     public String getName() {13         return name;14     }15     public void setName(String name) {16         this.name = name;17     }18     @Override19     public String toString() {20         return "Teacher [id=" + id + ", name=" + name + "]";21     }22     public Teacher(int id, String name) {23         super();24         this.id = id;25         this.name = name;26     }27     public Teacher() {28         super();29         // TODO Auto-generated constructor stub30     }31 }
Teacher.java
1 package com.zhengbin.entity; 2  3 public class Classes { 4     private int id; 5     private String name; 6     private Teacher teacher; 7     @Override 8     public String toString() { 9         return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher + "]";10     }11     public Classes() {12         super();13     }14     public int getId() {15         return id;16     }17     public void setId(int id) {18         this.id = id;19     }20     public String getName() {21         return name;22     }23     public void setName(String name) {24         this.name = name;25     }26     public Teacher getTeacher() {27         return teacher;28     }29     public void setTeacher(Teacher teacher) {30         this.teacher = teacher;31     }32 }
Classes.java

3.实体类映射文件

  两种方式:

    1. 联表查询

      关键是返回值的设置

    2. 执行两次查询

      关键是返回值的设置,和第二次查询所需参数的传递

1 
2 3
4
5
6
7 8
12
15
16
17
18
19
20
21
22
23
29
32
35
36
37
38
39
40
classMapper.xml

4.测试类

1 package com.zhengbin.test; 2  3 import org.apache.ibatis.session.SqlSession; 4 import org.apache.ibatis.session.SqlSessionFactory; 5  6 import com.zhengbin.entity.Classes; 7 import com.zhengbin.util.MyBatisUtils; 8  9 public class Test3 {10     @org.junit.Test11     public void getTeacher(){12         SqlSessionFactory sessionFactory = MyBatisUtils.getFactory();13         // 参数为TRUE,相当于session.commit();14         SqlSession session = sessionFactory.openSession(true);15         // 读取映射文件16         String statement = "com.zhengbin.entity.classMapper" + ".getClass";17 //        String statement = "com.zhengbin.entity.classMapper" + ".getClass2";18         Classes c = session.selectOne(statement,1);19         System.out.println(c);20         session.close();21     }22 }
Test3.java

5.几个关键的属性

association : 用于一对一的关联查询property : 对象属性的名称javaType : 对象属性的类型column : 所对应的外键字段名称select : 使用另一个查询封装的结果

 

转载地址:http://pjbfa.baihongyu.com/

你可能感兴趣的文章
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>
命令查询每个文件文件数
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
RAC表决磁盘管理和维护
查看>>
Apache通过mod_php5支持PHP
查看>>
发布一个TCP 吞吐性能测试小工具
查看>>
java学习:jdbc连接示例
查看>>
PHP执行批量mysql语句
查看>>
Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模块
查看>>
Silverlight 如何手动打包xap
查看>>
建筑电气暖通给排水协作流程
查看>>
JavaScript面向对象编程深入分析(2)
查看>>
linux 编码转换
查看>>
POJ-2287 Tian Ji -- The Horse Racing 贪心规则在动态规划中的应用 Or 纯贪心
查看>>
Windows8/Silverlight/WPF/WP7/HTML5周学习导读(1月7日-1月14日)
查看>>
关于C#导出 文本文件
查看>>
使用native 查询时,对特殊字符的处理。
查看>>
maclean liu的oracle学习经历--长篇连载
查看>>
ECSHOP调用指定分类的文章列表
查看>>