Mybatis中的SQLMapConfig文件关键字介绍以及使用

SQLMapConfig可以配置的关键字

properties(属性)

(1)在properties元素内体定义的属性首先会被读取。

(2)然后会读取properties元素中resource或者URL加载的属性,它会覆盖已经读取同名的属性。

(3)最后读取parameterType传递的属性,它会覆盖已经读取同名的属性。

可以通过该属性读取一些配置文件

 <properties resource="db.properties"></properties>

如何读取属性:使用OGNL表达式 案例如下

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis01?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123

 SQLMapConfig.xml

<properties resource="db.properties"></properties>
    
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <!--数据库连接要素,数据库,数据库位置,账户,密码-->
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>

建议:

(1)不要在properties元素体内添加任何属性值,只将属性值定义到properties文件中。

(2)在properties文件定义的属性名要有一定的特殊性,不能和系统,其他框架的名字重复。

settings(全局配置参数)

Setting(设置) Description(描述) Valid Values(验证值组) Default(默认值)
cacheEnabled 在全局范围内启用或禁用缓存配置任何映射器在此配置下。 true | false TRUE
lazyLoadingEnabled 在全局范围内启用或禁用延迟加载。禁用时,所有协会将热加载。 true | false TRUE
aggressiveLazyLoading 启用时,有延迟加载属性的对象将被完全加载后调用懒惰的任何属性。否则,每一个属性是按需加载。 true | false TRUE
multipleResultSetsEnabled 允许或不允许从一个单独的语句(需要兼容的驱动程序)要返回多个结果集。 true | false TRUE
useColumnLabel 使用列标签,而不是列名。在这方面,不同的驱动有不同的行为。参考驱动文档或测试两种方法来决定你的驱动程序的行为如何。 true | false TRUE
useGeneratedKeys 允许JDBC支持生成的密钥。兼容的驱动程序是必需的。此设置强制生成的键被使用,如果设置为true,一些驱动会不兼容性,但仍然可以工作。 true | false FALSE
autoMappingBehavior 指定MyBatis的应如何自动映射列到字段/属性。NONE自动映射。 PARTIAL只会自动映射结果没有嵌套结果映射定义里面。 FULL会自动映射的结果映射任何复杂的(包含嵌套或其他)。 NONE, PARTIAL, FULL PARTIAL
defaultExecutorType 配置默认执行人。SIMPLE执行人确实没有什么特别的。 REUSE执行器重用准备好的语句。 BATCH执行器重用语句和批处理更新。 SIMPLE REUSE BATCH SIMPLE
defaultStatementTimeout 设置驱动程序等待一个数据库响应的秒数。 Any positive integer Not Set (null)
safeRowBoundsEnabled 允许使用嵌套的语句RowBounds true | false FALSE
mapUnderscoreToCamelCase 从经典的数据库列名A_COLUMN启用自动映射到骆驼标识的经典的Java属性名aColumn true | false FALSE
localCacheScope MyBatis的使用本地缓存,以防止循环引用,并加快反复嵌套查询。默认情况下(SESSION)会话期间执行的所有查询缓存。如果localCacheScope=STATMENT本地会话将被用于语句的执行,只是没有将数据共享之间的两个不同的调用相同的SqlSession SESSION | STATEMENT SESSION
dbcTypeForNull 指定为空值时,没有特定的JDBC类型的参数的JDBC类型。有些驱动需要指定列的JDBC类型,但其他像NULLVARCHAROTHER的工作与通用值。 JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER OTHER
lazyLoadTriggerMethods 指定触发延迟加载的对象的方法。 A method name list separated by commas equals,clone,hashCode,toString
defaultScriptingLanguage 指定所使用的语言默认为动态SQL生成。 A type alias or fully qualified class name. org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver
callSettersOnNulls 指定如果setter方法​​或地图的put方法时,将调用检索到的值是null。它是有用的,当你依靠Map.keySet()或null初始化。注意原语(如整型,布尔等)不会被设置为null true | false FALSE
logPrefix 指定的前缀字串,MyBatis将会增加记录器的名称。 Any String Not set
logImpl 指定MyBatis的日志实现使用。如果此设置是不存在的记录的实施将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING Not set
proxyFactory 指定代理工具,MyBatis将会使用创建懒加载能力的对象。 CGLIB | JAVASSIST  

 typeAliases(类型别名)

在Mapper.xml中,定义了很多statement

statement需要parameterType指定输入参数的类型和resultType指定结果映射的类型

如果在指定类型的时候,写“全路径”不大方便开发

可以针对parameterType和resultType指定的类型提供别名

在Mapper.xml中使用别名。

(1)系统已经支持的别名

别名

映射的类型

_byte

byte

_long

long

_short

short

_int

int

_integer

int

_double

double

_float

float

_boolean

boolean

string

String

byte

Byte

long

Long

short

Short

int

Integer

integer

Integer

double

Double

float

Float

boolean

Boolean

date

Date

decimal

BigDecimal

bigdecimal

BigDecimal

map

Map

(2)自定义别名

方式一:单个

 <typeAliases>
        <typeAlias type="实体类的相对路径" alias="别名"></typeAlias>
      
    </typeAliases>

方式二:多个

 <typeAliases>
       <!--
            name:指定包名,mybatis自动扫描表的po类,
                别名:就是类名(首字母不区分大小写)
        -->
      
        <package name="包的相对路径"></package>
    </typeAliases>

 

typeHandlers(类型处理器)

mybatis中通过typeHandlers完成JDBC类型和Java类型的转换。通常情况下,mybatis提供的类型处理器已经可以满足日常开发的需要,不要在自定义了。

mappers(映射器)

方式一:通过resource加载

<!--配置实体类的xml文件,在这文件中执行sql语句-->
    <mappers>
        <mapper resource=".xml文件相对路径"></mapper>
      
    </mappers>

方式二:通过URL地址

    <mappers>
     
        <mapper url=".xml的全路径"></mapper>
    </mappers>

方式三:通过Mapper接口加载

    <mappers>
        <!--
            通过Mapper接口加载映射文件
            需要遵循一些规则:
                (1)需要将Mapper接口和Mapper映射文件放在同一个目录下,
                (2)遵循使用Mapper开发DAO的要求。
        -->
        <mapper class="要加载的类的相对路径"></mapper>

    </mappers>

方式四:批量加载(推荐)

 <mappers>
      
        <package name="包的相对路径"></package>
    </mappers>

猜你喜欢

转载自blog.csdn.net/h1025372645/article/details/89817236