zoukankan      html  css  js  c++  java
  • myBatis

    package myBatis;
    
    public class TestOne {
    
        public static void main(String[] args) {
            
            /**
             * 
             * Mybatis:
             * 
             * 1.
             * collection   一对多
             * association  多对一
             * 
             * 
             * 2.
             * javaType  pojo中属性的类型
             * 
             * ofType     映射到list集合属性中pojo的类型
             * 
             * 
             * 3.  #{}  ${}
             * #{} 传入的数据会加'' 
             * 
             * 
             * 
             * 4.  Map 映射     Type : java类型
             * resultMap  resultType  parameterMap  parameterType
             * 
             * resultMap  resultType
             * java查询结果集和java对象的映射
             * 
             * resultMap : 查询结果集中的列一一映射到bean对象的各个属性上
             * 
             * resultType :bean中的对象类,此时可以省略resultMap,结果集中的属性必须和必须和bean的属性是一一对应的,此时大小写不敏感
             * 此时将值设置对应的java类即可。不需要上述resultMap的对应关系。
             * 
             * 
             * http://blog.csdn.net/u010235716/article/details/51698422
             * parameterMap 传入多个参数,不推荐使用
             * parameterType 传入参数分两种类型
             * 基本数据类型
             * 复杂数据类型 类和Map
             * 
             * 5.refid
             * 一个标签定义多个字段,下面可以直接引入
             * 
             * 
             * 6.数组中的元素  foreach
             * <foreach collection="orderIds" item="item" open="order_id IN(" separator="," close=")">
             * 
             * 
             
             publicclass  User  {
             
                private int  id;
                
                private String  username;
                
                private String  mobile;
                
                private List<Post> posts;
            }
            
            ------------------  resultMap    resultType
        <resultMap  type="User"  id="resultUserMap">
             <result  property="id" javaType="int"  column="user_id"  />
             <result  property="username" javaType="string"  column="username"  />
             <result  property="mobile"   column="mobile"  />                       
             <!--javatype指定的是user对象的属性的类型(例如id,posts),而oftype指定的是映射到list集合属性中pojo的类型(本例指的是post类型)-->
             <collection  property="posts"  ofType="com.spenglu.Post"  javaType="java.util.ArrayList"  column="userid">
                 <id  property="id"  column="post_id"  javaType="int"  jdbcType="INTEGER"/>   
                 <result  property="title"  column="title"  javaType="string"  jdbcType="VARCHAR"/>
                 <result  property="content"  column="content"  javaType="string"  jdbcType="VARCHAR"/>
             </collection>
        </resultMap>
        
        -------------------------------parameterType
        基本类型
       <sql id="Base_Column_List" >
            id, car_dept_name, car_maker_name, icon,car_maker_py,hot_type
      </sql>
      <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
            select 
            <include refid="Base_Column_List" />
            from common_car_make
            where id = #{id,jdbcType=BIGINT}
      </select>
        
        类类型
     <select id="queryCarMakerList" resultMap="BaseResultMap" parameterType="java.util.Map">
        select
        <include refid="Base_Column_List" />
        from common_car_make cm
        where 1=1
        <if test="id != null">
            and  cm.id = #{id,jdbcType=DECIMAL}
        </if>
        <if test="carDeptName != null">
            and  cm.car_dept_name = #{carDeptName,jdbcType=VARCHAR}
        </if>
        <if test="carMakerName != null">
            and  cm.car_maker_name = #{carMakerName,jdbcType=VARCHAR}
        </if>
        <if test="hotType != null" >
           and  cm.hot_type = #{hotType,jdbcType=BIGINT}
        </if>
        ORDER BY cm.id
    </select>
        
        map中包含数组的情况
    <select id="selectProOrderByOrderId" resultType="com.epeit.api.model.ProOrder" parameterType="java.util.HashMap" >
        select sum(pro_order_num) proOrderNum,product_id productId,promotion_id promotionId
        from pro_order
        where 1=1
        <if test="orderIds != null">
          and
            <foreach collection="orderIds" item="item" open="order_id IN(" separator="," close=")">
                #{item,jdbcType=BIGINT}
            </foreach>
        </if>
        GROUP BY product_id,promotion_id
    </select>
             * 
             * 
             * 
             */
    
        }
    
    }
    
     
  • 相关阅读:
    常见消息引擎系统对比
    kafka(一)入门
    pycharm工具的使用
    VMware下安装Ubantu 18.04
    VMware虚拟机下Ubuntu安装VMware Tools详解
    python--or 和 and 表达式
    django使用缓存之drf-extensions
    数据结构--线性表之链表
    Redis配置主从时报错“Could not connect to Redis at 192.168.0.50:6379: Connection refused not connected>”
    Rsync+sersync(inotify)实现数据实时双向同步
  • 原文地址:https://www.cnblogs.com/lxh520/p/8485159.html
Copyright © 2011-2022 走看看