• SqlMapConfig.xml


    mybatis的全局配置文件:

    1.properties(属性)

    将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值,在SqlMapConfig.xml中就不需要对数据库连接

    参数硬编码

    //或使用spring整合配置  <context:property-placeholder location="classpath:db.properties"/>

    //加载属性文件,          <properties resource="db.properties">

     //还可继续配置属性名和属性值       <property name="" value=""/>

                      </properties>   

    在db.properties文件中取参数:如${jdbc.url}

    2.settings(全局配置参数)

    mybatis框架在运行时调整一些运行参数,

    比如:开启二级缓存,开启延迟加载等

    <settings>

    </settings >

    3.typeAliases(类型别名)重点

    在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型,需要resultType指定输出结果的映射类型

    如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或者resultType指定的类型定义一些别名 ,在mapper.xml

    中通过别名来定义,方便开发

    <typeAliases>

      <!--针对单个别名定义, type:类型的路径, alias:别名-->

      <typeAlias type="com.hes.entity.analysisModel.HeIndex" alias="HeIndex">

      <!--批量别名定义  指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名  常用-->

      <package name="com.hes.entity.analysisModel">

    </typeAliases>

    4.typeHandlers(类型处理器)

      mybatis中通过typeHandlers完成jdbc类型和java类型的转换

    5.objectFactory(对象工厂)

    6.plugins(插件)

    7.environments(环境集合属性对象)

      environment(环境子属性对象)

        transactionManager(事务管理)

        dataSource(数据源)

    8.mappers(映射器)

    <mappers>

    //resource,url单个映射文件的加载      通过mapper接口来加载,使用mapper代理的方法用class 

      <!--通过resource方法一次加载一个映射文件-->

      <mapper resource="sqlmap/UserMapper.xml">

    <!--批量加载  指定mapper接口的包名 mybatis自动扫描包下的所有mapper接口进行加载   前提是使用了mapper代理方法  推荐使用-->

    <package name="com.hes.mapper">

    </mappers>

    //spring-mybatis整合

    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.hes.mapper" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>

    --------------------------------------------------------------------------------------------------------------------------------

    输入映射

    通过parameterType指定输入参数的类型,类型可以是简单类型,hashmap,pojo的包装类型

    输出映射

    1.resultType      输出pojo对象,输出pojo列表,输出简单类型(总共输出一行一列)

      使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。如果查询出来的列名和pojo中的属性名全部不一致,

    没有创建pojo对象。只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。

    2.resultMap

    //type:resultMap最终映射的java对象类型,可以使用别名   id:对resultMap的唯一标识

    <resultMap id="BaseResultMap" type="com.mybatis.model.customer.Customer" >  

    <!-- id标识查询结果集中唯一标识,column:查询出来的列名,property:type所指定的pojo类型中的属性名-->
    <id column="id" property="id" jdbcType="INTEGER" />

    <!--result:对普通名的映射定义-->
    <result column="shopId" property="shopid" jdbcType="INTEGER" />
    <result column="customerName" property="customername" jdbcType="VARCHAR" />
    <result column="sex" property="sex" jdbcType="INTEGER" />
    <result column="tel" property="tel" jdbcType="VARCHAR" />
    <result column="birthday" property="birthday" jdbcType="DATE" />
    <result column="address" property="address" jdbcType="VARCHAR" />
    <result column="memo" property="memo" jdbcType="VARCHAR" />
    <result column="groupId" property="groupid" jdbcType="INTEGER" />
    <result column="registDate" property="registdate" jdbcType="TIMESTAMP" />
    </resultMap>

    resultMap="BaseResultMap"

    动态sql

    1.<if test="query!=null and query!='' ">

    (customerName LIKE CONCAT(CONCAT('%',#{query}),'%') or
    tel like
    CONCAT(CONCAT('%',#{query}),'%'))
    </if>

    2.<where>where自动去掉条件中的第一个and</where>

    sql片段    一般基于单表来定义sql片段   在sql片段中不要包括where

    (1)<sql id="Base_Column_List" > //id片段的唯一标识
    id, shopId, customerName, sex, tel, birthday, address, memo, groupId, registDate
    </sql>

    (2) <include refid="Base_Column_List" /></include>   //refid对应sql判断id

    foreach 向sql传递list或数组

    <foreach collection="ids" item="id" open="AND id IN(" close=")" separator="OR">

    <!--  collection:指定输入对象中的集合属性

    item:每个遍历生成对象

    open:开始遍历时拼接的串

    close:结束遍历时拼接的串

    separator:遍历的两个对象中需要拼接的串

    -->

    </foreach>

    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    Redis系列二 Redis数据库介绍
    Redis系列一 Redis安装
    SpringData系列四 @Query注解及@Modifying注解
    SpringData系列三 Repository Bean 方法定义规范
    SpringData系列二 Repository接口
    SpringData系列一 Spring Data的环境搭建
    ThinkPHP3.1.3 Fast & Simple OOP PHP Framework 显示错误
    STL学习系列之一——标准模板库STL介绍
    STL之二:vector容器用法详解
    STL使用总结
  • 原文地址:https://www.cnblogs.com/1234cjq/p/6285271.html
Copyright © 2020-2023  润新知