MyBaits的各种基本查询方式

<?xml version="1.0" encoding="gbk"?>  
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"   
 "mybatis-3-mapper.dtd">  

<mapper namespace="org.phf.mapping.UserMapper">  
  
    <!--开启缓存-->  
  <cache />    
    <!--   
    select 查询语句是使用 MyBatis 时最常用的元素之一。  
    id(方法)是 get, parameterType(参数类型)是Integer, resultType(返回类型)是 User对象,其属性就是列名,值是列对应的值。  
     -->  
  <select id="find" parameterType="Integer" resultType="User">  
    SELECT * FROM TB_USER WHERE ID = #{id}  
  </select>  
  <!--单条数据返回类型可以是HashMap,key为列名,value为值 -->  
  <select id="findMap" parameterType="Integer" resultType="HashMap">  
    SELECT * FROM TB_USER WHERE ID = #{id}  
    </select>  
      
  <!-- 返回多条数据时会自动封装成List集合返回-->  
  <select id="findAll" resultType="User">  
    SELECT * FROM TB_USER   
  </select>  
    
    <!-- 最多接受一个参数,所以多个参数可以封装成对象传参,可进行判断处理-->  
  <select id="findWithIf" parameterType="User" resultType="User">  
    SELECT * FROM TB_USER   
    <where>  
        <if test="name!= null">name = #{name}</if>  
        <if test="age!= null">and age = #{age}</if>  
    </where>  
  </select>  
    <!-- 多个键值对参数也可以用map传参,key对应列名-->  
  <select id="findByNameAndAge" parameterType="Map" resultType="User">  
    SELECT * FROM TB_USER   
    <where>  
        <if test="name!= null">name = #{name}</if>  
        <if test="age!= null">and age = #{age}</if>  
    </where>  
  </select>  
    <!-- 多个单值参数也可以用List传参,循环处理-->  
  <select id="findWithIn" parameterType="list" resultType="User">  
    SELECT * FROM TB_USER WHERE id IN  
    <foreach item="item" index="index" collection="list"  
      open="(" separator="," close=")">  
        #{item}  
    </foreach>  
  </select>  
    <!-- 多个单值参数也可以用List传参,循环处理-->  
  <select id="findWithLike" parameterType="String" resultType="User">  
    <bind name="pattern" value="'%' + _parameter + '%'" />  
    SELECT * FROM tb_user   
    WHERE name LIKE #{pattern}  
  </select>  
    
</mapper>

实体类User可在mybatis-config.xml文件中增加配置来完成全局的配置即可,例如:

<typeAliases>  
    <typeAlias alias="User" type="com.ken.pojo.User" />  
</typeAliases>
list、array和map的foreach可参考http://www.cnblogs.com/ShanHeDiao/p/4795459.html
posted on 2015-09-09 18:03  潸何  阅读(384)  评论(0编辑  收藏  举报