Mybatis 的优化:
** 第一个 对于数据库配置的优化:
创建一个 DB.properties 的文件
里面编写Key = value 形式的数据库信息
比如:
driver = com.mysql.jdbc.Driver
注意没有有引号 写完换行 不写分号
我的文件叫 【db.properties】
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/stu
username=root
password=gubin
这个文件使用的话 在mybatis的核心配置文件里面直接引入就行:
使用<properties resource="文件位置"></properties> 注意要在<configuration>标签内 不能包括在其他标签!!
使用的话类似于el表达式 使用${key} 通过key获取value
** 第二个 mybatis的全局参数 :
配置mybatis可能对mybatis的运行出现问题!!谨慎使用!!
参数 |
简介 |
有效值 |
cacheEnabled |
在全局范围内,启用或禁用缓存 |
true(默认)、false |
lazyLoadingEnabled |
在全局范围内启用或禁用延迟加载。当禁用时,所有相关联的对象都将立即加载(热加载)。 |
true(默认)、false |
aggressiveLazyLoading |
启用时,有延迟加载属性的对象,在被调用时将会完全加载所有属性(立即加载)。否则,每一个属性都将按需加载(即延迟加载)。 |
true(默认)、false |
multipleResultSetsEnabled |
允许或禁止执行一条单独的SQL语句后返回多条结果(结果集);需要驱动程序的支持 |
true(默认)、false |
autoMappingBehavior |
指定数据表字段和对象属性的映射方式。 NONE:禁止自动映射,只允许手工配置的映射 PARTIAL:只会自动映射简单的、没有嵌套的结果 FULL:自动映射任何结果(包含嵌套等) |
NONE、 PARTIAL(默认)、 FULL |
defaultExecutorType |
指定默认的执行器。 SIMPLE:普通的执行器。 REUSE:可以重复使用prepared statements语句。 BATCH:可以重复执行语句和批量更新。 |
SIMPLE(默认)、 REUSE、 BATCH |
defaultStatementTimeout |
设置驱动器等待数据库回应的最长时间 |
以秒为单位的,任意正整数。无默认值 |
safeRowBoundsEnabled |
允许或禁止使用嵌套的语句 |
true、false(默认) |
mapUnderscoreToCamelCase |
当在数据表中遇到有下划线的字段时,自动映射到相应驼峰式形式的Java属性名。例如,会自动将数据表中的stu_no字段,映射到POJO类的stuNo属性。 |
true、false(默认) |
lazyLoadTriggerMethods |
指定触发延迟加载的对象的方法 |
equals、clone、hashCode、toString |
如何使用?在mybatis的和核心配置文件中 注意要在<configuration>标签内 不能包括在其他标签!!
<settings>
<setting name="参数" value="值"></setting>
</setting>
** 第三个 mybatis的全局参数 :
在配置mapper文件中 通常都要写特别长的包名 或者是 标签中的返回值类型 需要写全路径特别长 特别麻烦!!
如图:在写 resultType的时候 需要学全类名 很长 因此 mybatis提供了设置别名
如何设置别名? 注意要在<configuration>标签内 不能包括在其他标签!!
<typeAliases>
<!-- 设置单个别名 注意是单标签 别名使用不区分大小写 -->
<typeAlias type="全类名" alias="要设置的名字"/>
<!-- 批量设置 单标签 别名不区分大小写 别名为类的名称-->
<package type="包名"/>
</typeAliases>
除了自定义别名外,MyBatis还内置了一些常见类的别名:《了解》
注意一个问题 idea+log4j 设置别名控制台 会有部分乱码 不过不碍事 但是我这个强迫症受不了!!有些抓狂!
:Reader entry: ���� 4 -