




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第MyBatis图文并茂讲解注解开发一对一查询目录MyBatis的注解实现复杂映射开发一对一查询一对一查询的模型一对一查询的语句创建PersonMapper接口使用注解配置Mapper测试类一对一配置总结
MyBatis的注解实现复杂映射开发
实现复杂关系映射之前我们可以在映射文件中通过配置来实现,使用注解开发后,我们可以使用@Results注解,@Result注解,@One注解,@Many注解组合完成复杂关系的配置
一对一查询
一对一查询的模型
一对一查询的需求:查询一个用户信息,与此同时查询出该用户对应的身份证信息
一对一查询的语句
创建数据库:
------------------------------
--Tablestructureforcard
------------------------------
DROPTABLEIFEXISTS`card`;
CREATETABLE`card`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`number`varchar(30)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
`pid`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE,
INDEX`cp_fk`(`pid`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=4CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofcard
------------------------------
INSERTINTO`card`VALUES(1,'12345',1);
INSERTINTO`card`VALUES(2,'23456',2);
INSERTINTO`card`VALUES(3,'34567',3);
------------------------------
--Tablestructureforclasses
------------------------------
DROPTABLEIFEXISTS`classes`;
CREATETABLE`classes`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(20)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=3CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofclasses
------------------------------
INSERTINTO`classes`VALUES(1,'极地一班');
INSERTINTO`classes`VALUES(2,'极地二班');
------------------------------
--Tablestructureforcourse
------------------------------
DROPTABLEIFEXISTS`course`;
CREATETABLE`course`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(20)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=3CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofcourse
------------------------------
INSERTINTO`course`VALUES(1,'语文');
INSERTINTO`course`VALUES(2,'数学');
------------------------------
--Tablestructureforperson
------------------------------
DROPTABLEIFEXISTS`person`;
CREATETABLE`person`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(20)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
`age`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=4CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofperson
------------------------------
INSERTINTO`person`VALUES(1,'张三',23);
INSERTINTO`person`VALUES(2,'李四',24);
INSERTINTO`person`VALUES(3,'王五',25);
------------------------------
--Tablestructureforstu_cr
------------------------------
DROPTABLEIFEXISTS`stu_cr`;
CREATETABLE`stu_cr`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`sid`int(11)NULLDEFAULTNULL,
`cid`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE,
INDEX`sc_fk1`(`sid`)USINGBTREE,
INDEX`sc_fk2`(`cid`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=5CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Fixed;
------------------------------
--Recordsofstu_cr
------------------------------
INSERTINTO`stu_cr`VALUES(1,1,1);
INSERTINTO`stu_cr`VALUES(2,1,2);
INSERTINTO`stu_cr`VALUES(3,2,1);
INSERTINTO`stu_cr`VALUES(4,2,2);
------------------------------
--Tablestructureforstudent
------------------------------
DROPTABLEIFEXISTS`student`;
CREATETABLE`student`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(30)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
`age`int(11)NULLDEFAULTNULL,
`cid`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE,
INDEX`cs_fk`(`cid`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=5CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofstudent
------------------------------
INSERTINTO`student`VALUES(1,'张三',23,1);
INSERTINTO`student`VALUES(2,'李四',24,1);
INSERTINTO`student`VALUES(3,'王五',25,2);
INSERTINTO`student`VALUES(4,'赵六',26,2);
SETFOREIGN_KEY_CHECKS=1;
对应的sql语句:
SELECT*FROMcard;
SELECT*FROMpersonWHEREid=#{id};
创建PersonMapper接口
publicinterfacePersonMapper{
//根据id查询
@Select("SELECT*FROMpersonWHEREid=#{id}")
publicabstractPersonselectById(Integerid);
}
使用注解配置Mapper
publicinterfaceCardMapper{
//查询全部
@Select("SELECT*FROMcard")
@Results({
@Result(column="id",property="id"),
@Result(column="number",property="number"),
@Result(
property="p",//被包含对象的变量名
javaType=Person.class,//被包含对象的实际数据类型
column="pid",//根据查询出的card表中的pid字段来查询person表
one、@One一对一固定写法
select属性:指定调用哪个接口中的哪个方法
one=@One(select="com.yyl.one_to_one.PersonMapper.selectById")
publicabstractListCardselectAll();
}
测试类
publicclassTest01{
@Test
publicvoidselectAll()throwsException{
//1.加载核心配置文件
InputStreamis=Resources.getResourceAsStream("MyBatisConfig.xml");
//2.获取SqlSession工厂对象
SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(is);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从信息到知识数字健康在心血管病教育中的应用转变
- 2019-2025年公用设备工程师之专业基础知识(暖通空调+动力)提升训练试卷B卷附答案
- 从现实到虚拟探索数字化教育中的老年课堂建设
- AI赋能商业创新-智能版权管理系统的构建与实施
- 商业领域的数字化创新与机遇
- 企业数字化战略与绩效评估的关联分析
- 医疗领域中数字化教学资源的应用探索
- 在智慧化发展中促进生产力释放从数字化到智能化的转型之路探讨
- 基于云计算的销售数据分析平台建设
- 沿江污水老旧管网更新改造项目可行性研究报告(模板)
- 教研员考试试题及答案
- 河北检察院试题及答案
- 东北石油大学专用毕业答辩模板2
- 《统计学》完整ppt课件(PPT 228页)
- 群体改良和轮回选择课件
- D502-15D502等电位联结安装图集
- 保留脾脏的胰体尾切除术62页PPT课件
- 中考词汇背诵默写
- 用药错误报告处理制度
- 公园景观工程施工方案及技术措施
- 想象作文复习课(
评论
0/150
提交评论