MYBATIS常用的sql事例
今天整理了一下在项目中经常用到的mybatis的xml文件的sql语句:
读者:有sql基础。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="mapper接口路径"> <!-- 假设一下的state为表中的字段 --> <!-- 表的全部字段 --> <sql id="selectId"> 表的全部字段-->select * from table_name中的* </sql> <!-- 批量插入sql语句 --> <insert id="***"> insert into table_name (columnName1,columnName2....) values <foreach collection="list" item="item" index="index" separator=","> (#{item.columnName1},#{item.columnName2}....) </foreach> </insert> <!-- if语句sql --> <select id="***" parameterType="java.util.HashMap" resultType="java.lang.Integer"> select count(1) from table_name where 1=1 <if test="state != 1"> and state=#{state} </if> </select> <!-- where语句sql --> <select id="***" parameterType="参数类型" resultType="java.lang.Intege"> select count(1) from table_name <where> <if test="state != 1"> and state=#{state} </if> </where> </select> <!-- choose语句sql 注:choose语句中的when是只要满足一个条件之后就放弃继续比较了,比较方式同Java中的Switch语句类似。 --> <select id="***" parameterType="参数类型" resultType="java.lang.Integer"> select <include refid="selectId" /> from table_name where 1=1 <choose> <when test="state != 1">and state=#{state}</when> <otherwise>and state=0</otherwise> </choose> </select> <!-- set语句sql 更新 注:set元素可以被用于动态包含更新的列,而不包含不需更新的 这里,set 元素会动态前置 SET 关键字,而且也会消除任意无关的逗号,那也许在应用 条件之后来跟踪定义的值。 --> <update id="***"> update table_name <set> <if test="state != 1">state=#{state},</if> <if test="state == 1">state=0</if> </set> where id=#{id} </update> <!-- resultMap MyBatis的ResultMap使用方法,对象关联写法:http://blog.csdn.net/aya19880214/article/details/41960661 --> <resultMap id="groupMap" type="java.lang.String"> <result javaType="String" column="groupIds" property="groupIds"></result> </resultMap> <resultMap id="reportMap" type="java.util.Map"> <result javaType="String" column="channelName" property="channelName"></result> <result javaType="String" column="channelPhone" property="channelPhone"></result> <result javaType="String" column="channelGroup" property="channelGroup"></result> .... </resultMap> <select id="queryChannelMarketingReport" resultMap="groupMap,reportMap" statementType="CALLABLE"> CALL ChannelManagerMarketing(#{groupID},#{onTime},#{offTime}) </select> <!-- mapper接口中的方法 注意返回类型List<List<Map<String,Object>>> List<List<Map<String,Object>>> queryChannelMarketingReport(@Param("groupID") String groupID, @Param("onTime") String onTime, @Param("offTime") String offTime); --> <!-- parameterMap用法 MYBATIS中resultMap和parameterMap的使用:http://blog.csdn.net/aquarius_gamus/article/details/37704615 --> </mapper>
供有需要的参考。