【翠花学MyBatis】每日打卡——MyBatis框架打卡2

接上一篇博客继续写

我们在配置mysql连接时,连接的数据库不同,所配置的路径也不同。在企业应用开发中,数据库环境是需要划分为测试环境和生产环境。而我们的mybatis-config相当于是生产环境,如果我们每换一个数据库都改动自己的生产环境的话,这是不合理的,所以我们需要在外部导入配置文件,在我们的mysql-config配置文件中导入外部文件,并将原先的配置内容改为占位符的形式。

具体操作如下:

创建mysql.properties文件,将我们连接所需要的配置写入文件中

在原来的mybatis-config配置文件中将原先的配置内容改为占位符的格式,并导入我们刚刚所写的外部配置文件(注意:外部配置文件优先级高于内部配置文件)

同时这边还有一个知识点typeAliases:别名处理器

该标签主要是为了避免冗长的文件名,具体内容如下:

在mybatis-config配置文件中加入该标签

设置完后我们在mapper映射文件中就可以由原来的com.zb.entity.UserInfo转变为下面的UserInfo

实战演练:

1.单条件模糊查询

在我们的接口类中添加如下方法

接着在对应的mapper映射文件中写查询语句

写完查询语句后,我们创建一个测试类,基于接口调用方法,完成单个条件查询

 2.多条件模糊查询

多条件模糊查询时,parameterType属性并不能代表多个参数的类型,所以我们将以如下三种解决方案解决

首先第一种就是加@param注解

在我们的接口类中写方法

然后在我们的对应的mapper映射文件中写方法对应的查询语句

 最后创建测试类,进行测试

 

第二种解决方案 就是将我们所要查询的条件放到map集合中,以map集合作为参数

第一步还是在我们的接口类中定义方法

接着在我们的mapper映射文件中写对应的查询语句,语句内容与第一种方法的内容一样

最后创建测试类,在测试类中创建map对象,添加你想要查询的条件,完成测试

 

第三种解决方案就是将我们所要查询的条件封装到一个类中,然后我们方法的参数为对应的类

 同样的道理,在我们的mapper映射文件中写查询语句,语句仍和第一条语句一样

最后创建测试类, 因为我们所要查询的参数在我们所封装的对象中,所以为了更方便的填写我们的条件,最好在我们的类中添加构造方法

以上就是多条件查询的三种解决方案

3.多表查询

在我们所连接的数据库中创建一张房屋表,并与之前的用户表形成主外键关系

这边需要理解是:一个用户对应一个房子或多个房子,而一个房子只能对应一个用户

理解完之后我们回到idea

看house表可发现,house表中的public为java代码的关键字,我们在创建房屋的实体类写public属性显然会报错,可是如果不写,那我们这个实体类与这张house表就不能够一一对应了,这也不符合我们mapper映射文件中自动映射的理念,在我们第一篇博客中写道:mybatis框架为半自动化的ORM框架。简单地概括为可手动,也可自动。

所以我们这时就需要将mapper映射文件的自动映射,变为手动映射。

这边首先创建实体类  其中房屋表中的userid对应的是UserInfo对象,一个房子对应一个用户,所以我们把House表中的userid换成我们的用户对象

接着我们创建一个house的接口

基于接口我们创建一个HouseMapper映射文件,作为接口的实现类,并完成手动映射以及你想要查询的sql语句

这边要特别注意,创建mapper映射文件后一定要在mybatis-config配置文件中注册映射文件,否则,配置中不包含该映射文件,将无法完成测试

 

最后创建测试类进行测试 可以发现,多个房子对应一个用户 这是association的用法

 好,讲完多对一的关系,接下来我们来讲一对多的关系,一个用户可以对应多个房子

添加完之后我们在对应的接口中添加对应的方法

添加完之后到对应的映射文件中实现方法

最后创建测试类 可以看到一个用户对应多个房子,一个用户对应一个房子,这就是collection的用法

 到这边的案例基本讲完,如有错误的地方,希望各位大神能够指点指点!!!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BUG忠实爱好者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值