zoukankan      html  css  js  c++  java
  • mybatis(核心配置文件的配置)

    properties标签

    <!--
        使用properties来引入外部properties配置文件的内容;   resource:引入类路径下的资源   url:引入网络路径或者磁盘路径下的资源 --> <properties resource="jdbc.properties"></properties>

     

     

    settings标签

     

    typeAliases(配置别名相关的操作)

    <typeAliases>
            <!-- 1、typeAlias:为某个java类型起别名
                    type:指定要起别名的类型全类名;默认别名就是类名小写;employee
                    alias:指定新的别名
             -->
            <!-- <typeAlias type="com.mybatis.bean.Employee" alias="emp"/> -->
            
            <!-- 2、package:为某个包下的所有类批量起别名 
                    name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写),)
            -->
            <package name="com.mybatis.bean"/>
            
            <!-- 3、批量起别名的情况下,使用@Alias注解为某个类型指定新的别名,这样可以放置重复 -->
        </typeAliases>

     

    typeHandlers标签(类型处理器相关)

     

     

    plugins标签(插件相关)

     

    environments(配置各种环境)

     

     

    org.apache.ibatis.session.Configuration
    
    public Configuration() {
        typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class);
        typeAliasRegistry.registerAlias("MANAGED", ManagedTransactionFactory.class);
    
        typeAliasRegistry.registerAlias("JNDI", JndiDataSourceFactory.class);
        typeAliasRegistry.registerAlias("POOLED", PooledDataSourceFactory.class);
        typeAliasRegistry.registerAlias("UNPOOLED", UnpooledDataSourceFactory.class);
    }
    <!-- 
            4、environments:多种环境配置,mybatis可以配置多种环境 ,default指定使用某种环境。可以达到快速切换环境。
                environment:配置一个具体的环境信息;必须有两个标签;id代表当前环境的唯一标识
                    transactionManager:事务管理器;
                        type:事务管理器的类型;JDBC(JdbcTransactionFactory)|MANAGED(ManagedTransactionFactory)
                            自定义事务管理器:实现TransactionFactory接口.type指定为全类名
                    
                    dataSource:数据源;
                        type:数据源类型;UNPOOLED(UnpooledDataSourceFactory)
                                    |POOLED(PooledDataSourceFactory)
                                    |JNDI(JndiDataSourceFactory)
                        自定义数据源:实现DataSourceFactory接口,type是全类名
             -->
             
    
             
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"></transactionManager>
                <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="test">
                <transactionManager type="JDBC" />
                <dataSource type="POOLED">
                    <property name="driver" value="${orcl.driver}" />
                    <property name="url" value="${orcl.url}" />
                    <property name="username" value="${orcl.username}" />
                    <property name="password" value="${orcl.password}" />
                </dataSource>
            </environment>
        </environments>
    public class PooledDataSourceFactory extends UnpooledDataSourceFactory {
    
      public PooledDataSourceFactory() {
        this.dataSource = new PooledDataSource();
      }
    
    }
    
    public class UnpooledDataSourceFactory implements DataSourceFactory {
    
      private static final String DRIVER_PROPERTY_PREFIX = "driver.";
      private static final int DRIVER_PROPERTY_PREFIX_LENGTH = DRIVER_PROPERTY_PREFIX.length();
    
      protected DataSource dataSource;
    
      public UnpooledDataSourceFactory() {
        this.dataSource = new UnpooledDataSource();
      }
    }

     

     databaseIdProvider(支持多数据源)

    typeAliasRegistry.registerAlias("DB_VENDOR", VendorDatabaseIdProvider.class);
    <!-- databaseIdProvider:支持多数据库厂商的;
             type="DB_VENDOR":VendorDatabaseIdProvider
                 作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
                 MySQL,Oracle,SQL Server,xxxx
          -->
        <databaseIdProvider type="DB_VENDOR">
            <!-- 为不同的数据库厂商起别名 -->
            <property name="MySQL" value="mysql"/>
            <property name="Oracle" value="oracle"/>
            <property name="SQL Server" value="sqlserver"/>
        </databaseIdProvider>
    <select id="getEmpById" resultType="com.mybatis.bean.Employee" databaseId="oracle">

     

     

     mapper标签(将写有sql语句的xml文件加载到核心配置文件中)

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

     

           

  • 相关阅读:
    WebService 访问代理及安全性验证设置
    精益求精,抑或得过且过
    用Eclipse开发Android应用程序(1): 开始之前
    用Eclipse开发Android应用程序(3): 开发第一个Android应用程序HelloWorld(下篇)
    [转]C#中调用打印机编程实例
    检索 COM 类工厂中 CLSID 为 ???的组件时失败,原因是出现以下错误: 80080005。
    用Eclipse开发Android应用程序(2): 开发环境搭建
    GridView RowCommand事件操作Demo Code
    USB三模(EDGE、DCHSPA+和LTE)数据棒
    [用 OProfile 彻底了解性能]
  • 原文地址:https://www.cnblogs.com/lzb0803/p/9006533.html
Copyright © 2011-2022 走看看