MyBatis配置
作者:互联网
MyBatis配置
- 掌握properties元素用法;
- 掌握settings元素的配置;
- 掌握typeAliases的用法;
- 重点掌握typeHandler在MyBatis中的用法;
- 了解ObjectFactory的作用;
- 了解environments的配置;
- 了解databaseIdProvider的用法 ;
- 掌握如何有效引入映射器;
MyBatis配置元素清单
注意:MyBatis配置项的顺序不能颠倒,如果颠倒了顺序,在MyBatis启动阶段就会发生异常,导致程序无法运行;
其中properties,settings,typeAliases,typeHandler,plugin,environments,mappers是常用内容;
properties属性
可以给系统配置一些运行参数,可以放在XML文件或者properties文件中,不放在Java编码中;
MyBatis三种方式使用properties:
- property子元素;
- properties文件;
- 程序代码传递;
property子元素
…
使用properties文件
比较普遍的方法,逻辑就是键值对应,可以配置多个键值放在一个properties文件中,也可以放在多个properties文件中,方便日后维护和修改;
使用程序传递方法传递参数
运维人员为了保密(数据库的用户密码),加密解密的过程;
小结
这三种方式是有优先级的,最优先使用程序传递方式,其次使用properties文件,最后是property子元素的方式,MyBatis会根据优先级来覆盖原先配置的属性值;
Settings设置
settings是MyBatis中最复杂的配置,能深刻影响MyBatis底层的运行,但是在大部分情况下使用默认值便可以运行;所以大部分情况下只需要修改一些常用的规则即可,比如自动映射,驼峰命名映射,级联规则,是否启动缓存,执行器(Executor)类型等;
typeAliases别名
由于类的全限定名很长,有时需要大量使用不方便,定义别名就可以简写;
别名分为系统定义别名和自定义别名;
MyBatis中别名有类TypeAilasRegistry(org.apache.ibatis.type.TypeAliasRegistry)去定义;
在MyBatis中别名不区分大小写;
系统定义别名
查表—系统自定义别名;
“int"别名,小写开头在其前面加下划线—”_int"
“String"别名,大写开头别名变小写"string”
写在TypeAliasRegistry类里面;
使用TypeAliasRegistry的registerAlias方法就可以注册别名了;
一般通过Configuration获取TypeAliasRegistry类对象,其中有一个getTypeAliasRegistry方法可以获得别名,如configuration.getTypeAliasRegistry().
自定义别名
通过TypeAliasRegistry类的registerAlias方法注册,也可以采用配置文件或者扫描方式来自定义;
typeHandler类型转换器
在JDBC中,需要在PreparedStatement对象中设置已经预编译过的SQL语句参数,执行SQL后,会通过ResultSet对象获取得到数据库的数据;
MyBatis是根据数据的类型通过typeHandler类实现的;
typeHandler中分为jdbcType和javaType
- jdbcType用于定义数据库类型;
- javaType用于定义Java类型;
typeHandler的作用就是承担jdbcType和javaType之间的相互转换;
系统定义的typeHandler
和别名一样,MyBatis中存在系统定义typeHandler和自定义typeHandler;
根据javaType和数据库的jdbcType来决定采用哪个typeHandler处理转换规则;
在MyBatis中typeHandler都要实现接口org.apache.ibatis.type.TypeHandler;
自定义typeHandler
标签:定义,自定义,typeHandler,配置,别名,MyBatis,properties 来源: https://blog.csdn.net/Juli_Baker/article/details/116974365