mybatis-config.xml文件的常用标签

mybatis-config.xml文件的常用标签

<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>

properties标签

加载properties资源文件

##db.properties文件
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库的名称
jdbc.user=账户
jdbc.password=密码
<!--加载properties配置文件-->
    <properties resource="db.properties"></properties>

<environments default="development">    
    <!-- 可以配置多个environment -->    
    <environment id="development">      
    <!--<environment id="development1">-->
        <!-- 使用jdbc事务管理-->        
        <transactionManager type="JDBC" />        
        <!-- 数据库连接池-->        
        <dataSource type="POOLED">            
            <property name="driver" value="${jdbc.driverClass}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.user}" />
            <property name="password" value="${jdbc.password}" />      
        </dataSource>    
    </environment>
    <environment id="development1">        
        ....
    </environment>
</environments>

settings标签

对mybatis的全局设置

比如后面开启二级缓存, 使用settings设置开启二级缓存

因为mybatis有默认设置

<settings>
        <!--关闭二级缓存-->
        <setting name="cacheEnable" value="false"/>
</settings>

typeAliases标签

对实体类设置别名: 在sql映射文件中不需要写包.类名, 只需要写别名就可以, 方便

自定义别名: 对我们定义的实体类设置别名

<!--设置别名-->
   <typeAliases>
       <!--对某个具体的类设置别名
          type: 实体类包.类
          alias: 别名
       -->
       <!--将在com目录下的fs目录下的entity目录下的User.java取别名为User-->
      	<typeAlias type="com.fs.entity.User" alias="User"/>
       <!--对某个包下所有的实体类统一设置别名
         name: 包名
         默认的别名: 类名 或者是类名第一个字母小写的类名  User  /user
       -->
       <package name="com.fs.entity"/>
   </typeAliases>

mybatis 自带的别名

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal

typeHandlers标签

MyBatis 中的 TypeHandler 类型处理器用于 JavaType 与 JdbcType 之间的转换

MyBatis 内置了大部分基本类型的类型处理器,所以对于基本类型可以直接处理,当我们需要处理其他类型的时候就需要自定义类型处理器。

类型处理器java 类型jdbc 类型
BooleanTypeHandlerbooleanbit、boolean
ByteTypeHandlerbyteTINYINT
ShortTypeHandlershortSMALLINT
IntegerTypeHandlerINTEGERINTEGER
LongTypeHandlerlonglong
FloatTypeHandlerFLOATFLOAT
DoubleTypeHandlerdoubledouble
StringTypeHandlerstringCHAR、VARCHAR
ArrayTypeHandlerARRAY
BigDecimalTypeHandlerBigDecimalREAL、DECIMAL、NUMERIC
DateTypeHandlerDateTIMESTAMP
DateOnlyTypeHandlerDateDATE
TimeOnlyTypeHandlerDateTIME

objectFactory标签

MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通过创建自己的对象工厂来实现。

<objectFactory  type="org.mybatis.example.MyObjectFactory"></objectFactory> 

<objectFactory type="org.mybatis.example.MyObjectFactory">
    <property name="email" value="undefined"/>
</objectFactory>

其子标签 property 会在加载全局配置文件 SqlMapConfig.xml 时通过 setProperties 方法被初始化到 MyObjectFactory 中,作为该类的全局参数使用。

ps:使用该标签时,你所导入的type的类最好继承 org.apache.ibatis.reflection.factory.DefaultObjectFactory 工厂

objectWrapperFactory标签

reflectorFactory标签

plugins标签

environments标签

该标签表示运行环境是什么,environments表示多个环境,environment表示单个环境,在environment中配置单个环境的具体信息

例如数据库的配置

<environments default="development">    
    <!-- 可以配置多个environment -->    
    <environment id="development">      
    <!--<environment id="development1">-->
        <!-- 使用jdbc事务管理-->        
        <transactionManager type="JDBC" />        
        <!-- 数据库连接池-->        
        <dataSource type="POOLED">            
            <property name="driver" value="com.mysql.jdbc.Driver" />            
            <property name="url" value="jdbc:mysql://localhost:3306/数据库的名称" />
            <property name="username" value="账户" />            
            <property name="password" value="密码" />        
        </dataSource>    
    </environment>
    <environment id="development1">        
        ....
    </environment>
</environments>
environments : default属性

该属性是environments用来识别运行环境的,他所代表的值与后面的environment标签中的id值是相同的,通过environment的id来切换不同的运行环境

environment : id属性

该属性用来标识environment的,一个id对应一个environment

transactionManager标签

事务管理标签

transactionManager:type属性(有JDBC,JTA ,External三种值)

JDBC:使用数据库自己的事务(局部事务),connect.beginTranstion(), connect.commit()等

JTA :使用jta 事务管理器管理事务(全局事务),使用userTranstion对象

External:自己(Ibatis)不控制事务,事务交由外部控制,一般在CTM,或spring托管事务中使用

dataSource标签

数据源

dataSource:type属性(有UNPOOLED,POOLED,JNDI)

unpooled:这个数据源的实现会每次请求时打开和关闭连接。

pooled:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。

jndi:这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。

property标签

配置数据源的属性

databaseIdProvider标签

mappers标签

<!--加载sql映射文件-->
    <mappers>
        <mapper resource="UserDao.xml"/>
        <!--<mapper resource="UserMapper.xml"/>-->

        <!--class写的mapper接口的包名.类名
           要求: sql映射文件必须与mapper接口在同一个包下
           根据mapper接口到当前包下,查找与Mapper接口同名的sql映射文件
        -->
       <!-- <mapper class="com.fs.mapper.UserMapper" />-->

        <!--把某个mapper接口所在的包下的sql映射文件加载进来
        要求: sql映射文件必须与mapper接口在同一个包下
        -->
        <package name="com.fs.mapper"/>
    </mappers>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值