zoukankan      html  css  js  c++  java
  • Mybatis(二)

    一、主配置文件

    基本作用就是配置JDBC连接的有关信息,比如URL、用户名、密码等等

    二、映射文件

    基本作用就是编写SQL语句,同时给每个SQL语句定义一个唯一标识(ID),在程序中通过此ID来调用这条SQL语句。

    整个唯一标识sql的id为namespace+id

    三、sql的参数传递

    1.简单参数 

    1 <delete id="delete" parameterType="int">
    2     delete from t_person where id=#{id} <!—无所谓写什么都可以 à
    3 </delete>

    2.多个参数:使用Map包装

    1 <select id="selectLikeNameAndAgeBetween" parameterType="map" resultType="Person">
    2     <include refid="selectBasic"/> where name like #{name} and age between #{age1} and #{age2}
    3   </select>
    1   SqlSession session = factory.openSession();
    2     Map map=new HashMap();
    3     map.put("name", "%张%");
    4     map.put("age1", 0);
    5     map.put("age2", 100);
    6     List persons=session.selectList(Person.class.getName()+".selectLikeNameAndAgeBetween",map);
    7    
    8     System.out.println(((Person)(persons.get(0))).getName());
    9     session.close();

    四、动态sql

    1 <select id="selectIf" parameterType="map" resultType="Person">
    2     select * from t_person
    3     <if test="name !=null">
    4       where name like #{name}
    5     </if>
    6     <if test="age !=0">
    7       and age=#{age}
    8     </if>
    9   </select>

    注:如果name==null,则sql拼写错误。。。

     1   <select id="selectWhere" parameterType="map" resultType="Person">
     2     select * from t_person
     3     <where>
     4         <if test="name !=null">
     5            name like #{name}
     6         </if>
     7         <if test="age !=0">
     8           and age=#{age}
     9         </if>
    10     </where>
    11   </select>

    注意where的闭合!!!

    choose类似于switch

     1 <select id="selectChoose" parameterType="map" resultType="Person">
     2     select * from t_person
     3     <choose>
     4       <when test="name!=null">
     5          where name like #{name}
     6       </when>
     7       <otherwise>
     8          where name like '%%'
     9       </otherwise>
    10     </choose>
    11      <if test="age !=0">
    12       and age=#{age}
    13     </if>
    14   </select>

    foreach相当于in

    1 <select id="selectFor" parameterType="list" resultType="Person">
    2     select * from t_person where id in
    3     <foreach collection="list" item="p" open="(" close=")" separator=",">
    4     #{p}
    5     </foreach>
    6   </select>
     1   SqlSession session = factory.openSession();
     2     List l=new ArrayList();
     3     l.add(1);
     4     l.add(2);
     5     l.add(3);
     6     l.add(4);
     7     List persons=session.selectList(Person.class.getName()+".selectFor",l);
     8    
     9     System.out.println(((Person)(persons.get(1))).getName());
    10     session.close();
  • 相关阅读:
    Jmeter接口自动化-5-提取JSON响应中数组的长度
    Redis系列讲解
    jQuery.Autocomplete实现自动完成功能(详解)
    js中获得当前时间是年份和月份
    搭建SSH框架所需Jar包及其解释
    JS中把字符串转成JSON对象的方法
    JBPM数据库表说明
    java的System.getProperty()方法可以获取的值
    Mybatis3.2.3+mysql第一个例子(入门)
    多线程学习
  • 原文地址:https://www.cnblogs.com/zhongzhongdebokeyuan/p/5819898.html
Copyright © 2011-2022 走看看