zoukankan      html  css  js  c++  java
  • 配置文件一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>
    
        <!-- resource:引入类路径下的资源
             url:引入网络路径或者本地磁盘的资源 -->
        <properties resource="jdbc.properties"></properties>
    
    
        <settings>
            <!-- useGeneratedKeys 默认值是:false。 
                  含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中 -->
            <setting name="useGeneratedKeys" value="true" />
            <!--开启驼峰命名-->
            <setting name="mapUnderscoreToCamelCase" value="true"/>
            <!-- 当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。
                 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。  -->
            <setting name="jdbcTypeForNull" value="NULL"/>
            <!--延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。
                特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态。默认值false  -->
            <setting name="lazyLoadingEnabled" value="true"/>
            <setting name="aggressiveLazyLoading" value="false"></setting>
            <!-- 所有映射器中配置缓存的全局开关。默认值true -->
            <setting name="cacheEnabled" value="true"></setting>
        </settings>
    
    
        <!-- typeAliases:起别名的标签
                type:指定要起别名的全类名,默认别名就是类小写(但是其实他是不区分大小写的,也就是说你全部大写也没问题)
                alias:新的别名
             package:为某个包下的类批量起别名(这个会存在的一个问题就是可能会重复,重复的情况下还可以用@Alias来解决)
                name:指定包名(这个就相当于是为这个包下的所有的类都创建了一个默认的别名)
             还有一个起别名的方式就是在实体上使用@Alias来起别名 -->
        <typeAliases>
            <typeAlias type="com.bean.Employee" alias="AdminBean"></typeAlias>
            <package name="com.bean"></package>
        </typeAliases>
        <!--<select id="findUserById" parameterType="int" resultType="AdminBean">
            SELECT * FROM admin WHERE a_id =#{a_id}
        </select>-->
    
    
        <!-- environments:配置mybatis的多种环境,default指定使用某种环境。可以达到快速切换的目的
                environment:配置一个具体的环境信息,他必须要配置transactionManager和dataSource这两个子标签
                    transactionManager:事务管理器 type是具体事物的别名 有两个值:JDBC(JdbcTransactionFactory) 和 MANAGED(ManagedTransactionFactory)
    
                    dataSource:数据源 type:数据源类型 有三个值:UNPOOLED(UnpooledDataSourceFactory)
                                                              POOLED(PooledDataSourceFactory)
                                                              JNDI(JndiDataSourceFactory) -->
        <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="test">
                <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>
    
    
        <!-- mappers:注册一个sql映射
             mapper
                 有三种注册方式:resource url class
                 其中resource url是以配置文件的方式来注册 , class是以接口的方式
    
                 resource:引用类路径下的sql映射文件
                     <mapper resource="mapper/Mapper.xml"/>
                 url:引用网络路径或者本地磁盘路径下的映射文件
                     <mapper url="file:///mappers/PostMapper.xml"/>
                 class:有两种方式
                     1.有sql映射文件时,xml文件要和接口同名且放在一起,也就是在resources和java有相同的目录结构
                     2.没有映射文件而使用注解的方式(@Select @Delete @Insert @Update),这个和spring data jpa类似。只不过要多加一步,将他的全限定名配置在class中
                     注:在这里就有个问题,如果sql语句都用注解的方式,我们会不好管理,所以推荐的用法是不重要的用注解,比较重要的
                     还是配置到映射文件中来统一管理。
                     
             以上这三类都是一个一个注册,还有一种批量注册的方式
                package: name是包名 
                    但是批量注册要注意一个问题就是:
                        在这个包下使用了注解方式的没有问题,
                        没使用注解方式的我们就是用到class方式第一种的方式,将sql的映射文件和接口放在一起 -->
        <mappers>
            <!--通过resource加载单个映射文件-->
            <mapper resource="mapper/Mapper.xml"></mapper>
            <!-- 需要将mapper接口类名和mapper.xml映射文件(名称保持一致,且在一个目录) -->
            <!-- 下面是接口的全限定类名或者目录 -->
            <!-- 如mapper接口采用注解的方式,则无需映射文件 -->
            <mapper class="com.dao.MapperEmployeeAnnotation"/>
            <package name="com.dao"></package>
        </mappers>
        
    </configuration>
    
  • 相关阅读:
    支付宝及时到帐接口使用详解
    Linux 天翼3G上网
    VBS常用函数及功能
    mencoder和ffmpeg参数详解
    C# 将数据导出到Excel汇总
    C# WinForm开发系列 Excel
    C#中的String.Format方法
    Google Maps API 代码
    ffmpeg的使用
    C# WinForm开发系列 Crystal Report
  • 原文地址:https://www.cnblogs.com/loveer/p/11332285.html
Copyright © 2011-2022 走看看