MyBatis图文并茂讲解注解开发一对一查询_第1页
MyBatis图文并茂讲解注解开发一对一查询_第2页
MyBatis图文并茂讲解注解开发一对一查询_第3页
MyBatis图文并茂讲解注解开发一对一查询_第4页
MyBatis图文并茂讲解注解开发一对一查询_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论