简介
在Mybatis3系列课程6中,实现了查询全部学生信息,
那接下来 , 我们来讨论下 如何实现 查询全部年级
学习目标
1. 实现查询全部年级
实现步骤
1.编写GradeMapper.java ,并增加查询全部的方法
2.编写GradeMapper.xml ,并设置namespace及select标签实现查询
3.编写mybatis-config.xml, 增加 映射器GradeMapper.xml
按照上述步骤 肯定可以实现相关查询功能,
但是 引出一个问题, 就是
每编写一个XXXXMapper.xml 就需要修改一个mybatis-config.xml,增加相关配置
如何解决该问题呢?
很简单, 就是 修改mybatis-config.xml 中 mappers的写法使用 package
映射器package
mybatis-config.xml 配置如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 编写 mybatis 的相关配置 -->
<!--配置 环境 -->
<environments default="development">
<!-- 设置环境 , id 要唯一 -->
<environment id="development">
<!--
transactionManager 事务管理器, 因为没有 Spring 框架的支持 ,因此 这里 使用 JDBC
如果 后期 使用了 Spring ,则这里换成 Manage
-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置 数据源, POOLED 连接池 -->
<dataSource type="POOLED">
<!--配置 驱动-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- 配置url-->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<!--配置 用户名-->
<property name="username" value="root"/>
<!--配置 密码-->
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="mapper"/>
</mappers>
</configuration>
别名配置(重要)
我们来说说 别名问题, 在 之前StudentMapper.xml中 我们曾经配置过 entity.Student 如下图
<!-- 查询全部--> <select id="findAll" resultType="entity.Student"> select * from student </select>那 如果 我们在写 10个多条件查询,那么 entity.Student 一直会出现在映射文件中,
反复出现的内容,能否简化处理? 使用 类型别名
根据之前 配置讲过, 在mybatis-config.xml中所有的配置 有顺序 ,
发现类型别名配置在环境配置前, 因此 我们需要修改 mybatis-config.xml ,增加配置
然后 修改映射文件 StudentMapper.xml
找到之前写好的单元测试用例进行测试
总结
在程序开发中,设计的表肯定不止一个,实体类也不止一个, 那么接口与映射文件也不止一个,
通过 类型别名配置及映射器的包名配置, 这样的话就不需要反复修改 mybatis-config.xml
配置类型别名后 , entity.Student 可以简化为 student或Student 都可以