mybtais(2)


设置别名
在mybatis配置文件中,别名是一直存在的,实际上在框架中已经存在一些默认的别名。
在开发中,一般mapper.xml配置文件中的parameterTyperesultType往往对应的名称需要写上
model****的全路径,而且还是多次被重复使用,可以选择给该路径取一个别名。用别名来替换比较复杂的

全路径名
设置别名位置是在SqlMapConfig.xml配置文件中
好处:将复杂的全路径可以一次性设置好,后续在任何**mapper.xml文件中要使用的时候,直接可以

使用简单的别名即可。

<environments default="development"> 
<!-- 配置单条的数据源和事务管理的标签 --> 
<environment id="development"> 
<!-- 事务管理,暂时全部交给mybatis进行管理事务 --> 
<transactionManager type="JDBC" /> 
<!-- 配置数据源 --> 
<dataSource type="POOLED"> 
<!-- 配置数据库的驱动 --> 
<property name="driver" value="com.mysql.jdbc.Driver"/> 
<!-- 配置数据库的链接,里面就绑定好了数据库名 --> 
<property name="url" 
value="jdbc:mysql://localhost:3306/db_shop? 
useUnicode=true&characterEncoding=utf-8"/>
<!-- 配置数据库的用户名 --> 
<property name="username" value="root"/> 
<!-- 配置数据库的密码 --> 
<property name="password" value=""/> 
</dataSource> 
</environment> 
</environments> 
<!-- 配置mapper.xml的文件,用于加载mapper.xml --> 
<mappers> 
<mapper resource="productMapper.xml"/> 
</mappers> 
</configuration> 
<!-- 设置一个别名 --> 
<typeAliases> 
<!--
type: 要设置的model全路径名 
alias:取的别名 
--> 
<typeAlias type="com.woniuxy.mall.model.User" alias="user"/> 
</typeAliases>**注意:如果以扫描包的方式进行设置别名,那么默认的别名为****java****代码的类名** 
**Mapper****映射关系配置** 
**以****mapper.xml****配置文件的方式** 
**以配置****Mapper****接口的方式进行配置** 

以扫描包的形式进行配置
自定义的POJO类(重点)
自定义POJO类,一般指的是高级查询,在想要的数据和传入的条件不再一张表中,通过表所创建的失血
模型model已经不能够满足传入参数的需求了,这个时候,就需要使用自定义的POJO
因为一个失血模型已经不能够满足查询输入参数的要求了,所以进行扩展,创建一个UserCustom**,
**面包含
user对象声明和userInfo**对象声明**
name:包名
class:对应接口的全路径名
要求:
对应的mapper.java接口文件和mapper.xml配置文件必须放在同一个包下面。
mapper.java接口文件和mapper.xml配置文件的名字必须要一致。
name:mapper接口的包名

输入映射和输出映射

输入映射:目前在mybatis用到的都是parameterType类型,其中可以是简单数据类型,也可以是包装
类型(POJO)
parameterType:java.lang.Integer\java.lang.String\POJO模型类。
输出映射 输出的类型为POJO包装类(model失血模型),用的是resultType
输出的类型为简单数据类型,resultType,要求**😗*查询的结果集必须是一行一列的数据

一对一、一对多、多对多查询(重点)

一对一的关系
需求:查询订单对应的用户信息。
主表:订单表,附表:用户表
一对多查询
需求:查询订单和用户及订单明细
主表:订单
附表:用户、订单明细

多对多关系映射
需求:查询用户购买了哪些商品订单。
在User模型中添加List orderList;一个用户可以拥有多个订单。
在Order模型中添加List detailList;一个订单可能有多个订单明细。
在Detail模型中添加Product product;一个订单明细只能对应一个商品数据。

resultTyperesultMap区别**
resultType:会增加一个扩展的模型类,但是,这样可以简化xml配置文件中的繁琐步骤。操作和单表查
询操作一致,一对一的映射关系一般推荐使用resultType。
resultMap:需要有关联映射,需要自定义resultMap的配置信息,增加配置的难度,但是,可以用在一
对多的关系映射中(较为复杂的关系映射)。

总结:

别名,输出映射,输入映射,一对一,一对多,多对多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值