• MyBatis3系列__03几个常用的属性配置


    本文主要讲几个xml配置属性: 其都写在mybatis配置文件中

    1.properties属性:其作用主要是可以动态引进外部的配置文件中的相关配置

           resource:引入类路径下的资源
       url:引入网络路径或者磁盘路径下的资源 
    

    <properties resource="dbconfig.properties"></properties>
    并且在类路径下创建对应的配置文件dbconfig.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://192.168.1.61:3306/mybatis_learn
    jdbc.username=root
    jdbc.password=123456
    
    orcl.driver=oracle.jdbc.OracleDriver
    orcl.url=jdbc:oracle:thin:@localhost:1521:orcl
    orcl.username=scott
    orcl.password=123456
    

    然后将mybatis-config.xml中的数据库配置进行更改即可:

    <dataSource type="POOLED">
    	<property name="driver" value="${jdbc.driver}"/>
    	<property name="url" value="${jdbc.url}" />
    	<property name="username" value="${jdbc.username}" />
    	<property name="password" value="${jdbc.password}" />
    </dataSource>
    

    如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载

    • 在 properties 元素体内指定的属性首先被读取。
    • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
    • 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。
      总结:通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。

    2.settings设置:

    该系列设置主要用来改变mybatis的行为,是极其重要的设置。截取几个属性展示如下:

    image

    //在这里 我们设置了开启驼峰命名,这样子在保证命名规范的情况下就无需再在sql中使用别名了
    <settings>
    	<setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>	
    

    3.typeAliases:别名处理器

    1.typeAlias:为某个java类型起别名

      type:指定要起别名的类型全类名;默认别名就是类名小写;
      alias:指定新的别名
    

    2.批量起别名时,只需定义JavaBean的包名即可

        package:为某个包下的所有类批量起别名 
        name:包名
        批量起别名的情况下,使用@Alias注解为某个类型指定新的别名
    

    这样,就可以在sql映射文件中将resultType写类的别名即可(不区分大小写);当然,还是推荐使用全类名的方式,便于定位。

    4.typeHandlers:类处理器:将Java中的类和数据库的类型做映射,先不介绍

    5.environments: 环境配置,可以配置生产环境和开发环境.default:指定一种环境,可以快速切换。

       environment:配置一个具体的环境信息,必须有两个标签:
           ** id;唯一标识;transactionManager:事务管理器;**
          其中:type:事务管理器类型;
                         JDBC(JdbcTransactionFactory):直接使用JDBC的事务管理
                         MANAGED(ManagedTransactionFactory)
    	         自定义事务管理器:实现TransactionFactory接口.type指定为全类名
           dataSource:数据源;
    				type:数据源类型;UNPOOLED(UnpooledDataSourceFactory)
    							|POOLED(PooledDataSourceFactory)
    							|JNDI(JndiDataSourceFactory)
    				自定义数据源:实现DataSourceFactory接口,type是全类名
    

    6.databaseIdProvider:支持多数据库厂商的

    mybatis可以支持你配置多个数据库,配置方式与环境配置类似:
    type="DB_VENDOR":VendorDatabaseIdProvider,作用就是得到数据库厂商的标识(驱动 
                 getDatabaseProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
    	 	 MySQL,Oracle,SQL Server,xxxx
    

    7.mappers:映射器,绑定你自己写的sql配置文件

       mapper:注册一个sql映射 
    	注册配置文件
    		resource:引用类路径下的sql映射文件mybatis/mapper/EmployeeMapper.xml
    		url:引用网路路径或者磁盘路径下的sql映射文件file:///var/mappers/AuthorMapper.xml
    	注册接口
    		class:引用(注册)接口,
    		      1、有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;
    		     2、没有sql映射文件,所有的sql都是利用注解写在接口上;
    		      推荐:
    				比较重要的,复杂的Dao接口我们来写sql映射文件
    				不重要,简单的Dao接口为了开发快速可以使用注解;
    

    最后,贴一下代码:
    mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
     PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    	<properties resource="dbconfig.properties"/>
    	
    	<settings>
    		<setting name="mapUnderscoreToCamelCase" value="true"/>
    	</settings>
    
    	<typeAliases>
    		<!--<typeAlias type="com.mybatis.com.mybatis.learn.dao.bean.Employee" alias="emp"></typeAlias>-->
    		<package name="com.mybatis.learn.bean"/>
    	</typeAliases>
    	<environments default="development">
    		<environment id="development">
    			<transactionManager type="JDBC" />
    			<dataSource type="POOLED">
    				<property name="driver" value="${jdbc.driver}"/>
    				<property name="url" value="${jdbc.url}" />
    				<property name="username" value="${jdbc.username}" />
    				<property name="password" value="${jdbc.password}" />
    			</dataSource>
    		</environment>
    		<environment id="produce">
    			<transactionManager type="JDBC"/>
    			<dataSource type="POOLED">
    				<property name="driver" value="${jdbc.driver}"/>
    				<property name="url" value="${jdbc.url}" />
    				<property name="username" value="${jdbc.username}" />
    				<property name="password" value="${jdbc.password}" />
    			</dataSource>
    		</environment>
    	</environments>
    
    	<databaseIdProvider type="DB_VENDOR">
    		<!-- 为不同的数据库厂商起别名 -->
    		<property name="MySQL" value="mysql"/>
    		<property name="Oracle" value="oracle"/>
    		<property name="SQL Server" value="sqlserver"/>
    	</databaseIdProvider>
    
    
    	<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
    	<mappers>
    		<!--<mapper resource="EmployeeMapper.xml"/>-->
    		<!--<mapper class="com.mybatis.com.mybatis.learn.dao.dao.EmployeeAnnotationMapper"></mapper>-->
    		<package name="com.mybatis.learn.dao"/>
    	</mappers>
    </configuration>
    

    注解Mapper:

    package com.mybatis.learn.dao;
    
    import com.mybatis.learn.bean.Employee;
    import org.apache.ibatis.annotations.Select;
    
    public interface EmployeeAnnotationMapper {
        @Select(" select id, last_name lastName, gender, email from tbl_employee where id = #{id}")
        public Employee getEmpByEmpId(Integer id);
    }
    
  • 相关阅读:
    [SDOI2008]Sue的小球
    【洛谷P2611】小蓝的好友
    【YbtOJ#20051】简单游走
    【洛谷P3338】力
    【洛谷P3803】【模板】多项式乘法(FFT)
    【YbtOJ#10053】合影队形
    【YbtOJ#20056】树上取模
    【洛谷P1919】【模板】A*B Problem升级版
    初赛练习总结
    【洛谷P3723】礼物
  • 原文地址:https://www.cnblogs.com/JackHou/p/10570691.html
Copyright © 2020-2023  润新知