目录
🍏Mybatis核心配置的优化
⭐起别名
在映射文件中, 常常将查询的返回值映射为一个实体类对象, 每次在resultType中都要重复的去写实体类的全类名, 针对这个问题, 我们可以尝试在核心配置文件中使用起别名的方式.
1.针对一个类
//只要在configuration父标签下, 写一个别名标签
<typeAliases>
<typeAlias type="com.abc.entity.Dish" alias="dish"></typeAlias>
</typeAliases>
2.针对一个包
//将包下所有类 自动按照小驼峰格式起别名
<typeAliases>
<package name="com.abc.entity"/>
</typeAliases>
⭐抽取基本四项
是否有办法可以让核心配置文件中的耦合度变的更低? 在核心配置文件中, 可以将驱动、url、用户名及密码单独抽取出来作为配置文件, 每次只要读取这个配置文件即可, 降低了耦合度也让代码更灵活
mybatis.Properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test?useSSL=false
username=root
password=root
核心配置文件
//在configuration父标签下添加 Properties子标签 读取resources下的配置文件
<properties resource="mybatis.properties"></properties>
⭐批量管理映射文件
假若只有一个映射文件需要管理
<mappers>
<mapper resource="DishMapper.xml"></mapper>
</mappers>
假若有很多映射文件需要管理
//在resources下新建和代码包结构一样的结构, 将这些映射文件放进同一个包中
<mappers>
<package name="com.abc.dao"/>
</mappers>
🍏Mybatis映射文件的优化
⭐Mybatis手动映射
某些特殊情况类和表的映射, 表中的字段和类中的成员变量名字对应不上,比如表中的create_time和类中的createTime, 导致自动映射时, 没有正常的给类中的属性赋值.
解决这个问题, 我们可以在映射配置文件中通过手动映射, 将不同名的成员变量和字段重新映射上
在mapper父标签中 创建resultMap子标签, 只将需要写手动映射的内容,其他内容仍然是自动映射.
<resultMap id="dish2dish" type="dish">
<result column="create_time" property="createTime"></result>
</resultMap>
对于 主键的描述比较特殊
<id property="did" column="did"></id>
这里需要注意的是, 在写sql标签的时候, 想要用手动映射, 就要使用resultMap标签替换resultType标签
<select id="selectAll" resultMap="dish2dish">
SELECT * FROM dish;
</select>