公司网站实名认证,网站建设分几模块,英文书 影印版 网站开发,松江营销型网站建设#x1f343;作者简介#xff1a;准大三本科网络工程专业在读#xff0c;持续学习Java#xff0c;努力输出优质文章 ⭐MyBatis系列①#xff1a;增删改查 ⭐MyBatis系列②#xff1a;两种Dao开发方式 ⭐MyBatis系列③#xff1a;动态SQL ⭐MyBatis系列④#xff1a;核心… 作者简介准大三本科网络工程专业在读持续学习Java努力输出优质文章 ⭐MyBatis系列①增删改查 ⭐MyBatis系列②两种Dao开发方式 ⭐MyBatis系列③动态SQL ⭐MyBatis系列④核心配置文件详解 ⭐MyBatis系列⑤多表查询 1、基本步骤
步骤如下
①编写接口在接口方法上面使用对应的注解配置相应的SQL语句
②编写测试方法
③在mybatis核心配置文件中修改映射信息。
2、常用注解
首先是基本的CRUD来学习后面再介绍复杂映射多表操作。 注解 说明 Insert 实现新增 Update 实现更新 Delete 实现删除 Select 实现查询 Result 实现结果集封装 Results 可以与Result 一起使用封装多个结果集 One 实现一对一结果集封装 Many 实现一对多结果集封装
代码如下
①接口及其接口方法 ②测试方法 ③核心配置文件加载映射 3、复杂映射
实现复杂关系映射之前可以在映射文件中通过配置resultMap来实现使用注解开发后可以使用Results注解 Result注解One注解Many注解组合完成复杂关系的配置。 注解 说明 Results 代替的是标签该注解中可以使用单个Result注解也可以使用Result集合。 使用格式 Results( {Result ()Result () } ) 或 Results( Result () ) Result 代替了id标签和result标签 Result 中属性介绍 : - column数据库的列名 - property需要装配的属性名 - one需要使用的One 注解(Result(oneOne) ())) - many需要使用的Many 注解(Result(manymany)())) One (一对一) 代替了assocation标签是多表查询的关键在注解中用来指定子查询返回单一对象。 One 注解属性介绍 : - select: 指定用来多表查询的 sqlmapper 使用格式Result(column,property,oneOne(select)) Many (多对一) 代替了collection标签, 是多表查询的关键在注解中用来指定子查询返回对象集合。 使用格式:Result(property,column,manyMany(select))
3.1、一对一
用户表和订单表的关系为一个用户有多个订单一个订单只从属于一个用户。
一对一查询的需求查询一个订单与此同时查询出该订单所属的用户 3.1.1、xml回顾
在使用xml配置的时候对应的sql语句为
select ordersquery.*, userquery.username,userquery.password,userquery.birthday from ordersquery, userquery where ordersquery.userID userquery.id; 3.1.2、注解
使用注解配置的时候需要把之前的SQL语句一分为二 3.2、一对多
用户表和订单表的关系为一个用户有多个订单一个订单只从属于一个用户
一对多查询的需求查询一个用户与此同时查询出该用户具有的订单 3.2.1、xml回顾
在使用xml配置的时候对应的sql语句为
select userquery.*,ordersquery.id as orderID,ordersquery.ordertime,ordersquery.total from userquery left join ordersquery on userquery.id ordersquery.userID; 3.2.2、注解
使用注解配置的时候需要把之前的SQL语句一分为二 3.3、多对多
用户表和角色表的关系为一个用户有多个角色一个角色被多个用户使用
多对多查询的需求查询用户同时查询出该用户的所有角色 3.3.1、xml回顾
在使用xml配置的时候对应的sql语句为
select userquery.id,userquery.username,userquery.password,userquery.birthday,rolequery.id AS roleID,rolequery.rolename from userquery LEFT JOIN user_role ON userquery.id user_role.user_id INNER JOIN rolequery ON user_role.role_id rolequery.id; 3.3.2、注解
使用注解配置的时候需要把之前的SQL语句一分为二 4、⭐注意事项
在使用注解的时候不管是“一对一”、“一对多”还是“多对多”都涉及到一个“对独立的Result封装”的过程其中有一个参数为column这个传的是数据库类型但是传的是来源于第一条SQL查询的数据库的表单如下 行文至此烦请给个三连支持一下。 您的三连支持是我创作的最大动力