wordpress微商城主题某企业网站的分析优化与推广
本文主要目的:
1.where动态查询
2.trim动态拼接语句
3.foreach迭代语句
4.set动态更新
接上文,用Spring集成Mybatis,因此spring的配置文件不再赘述,直接上DO、Mapper接口和底层SQL配置文件
一、DO实体类
package cn.cjc.mybatis.domain;public class Company {private String id;private String companyName;private Integer staffSum;private String location;//省略Getter和Setter
}
二、CompanyMapper接口
package cn.cjc.mybatis.dao;import cn.cjc.mybatis.domain.Company;
import org.apache.ibatis.annotations.Param;import java.util.List;public interface CompanyMapper {/*** 根据所给条件动态查询*/List<Company> queryByGivenConditions(Company company);/*** 多参数的动态查询*/List<Company> findByNameAndIds(@Param("companyName") String companyName, @Param("ids") List<String> ids);/*** 动态更新*/void updateCompany(Company company);}
三、核心文件CompanyMapper.xml
<?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="cn.cjc.mybatis.dao.CompanyMapper"><resultMap id="CompanyResultMap" type="Company"><result column="id" property="id"/><result column="company_name" property="companyName"/><result column="staff_sum" property="staffSum"/><result column="location" property="location"/></resultMap><sql id="BaseColumn">id, company_name, staff_sum, location</sql><!--where动态查询--><select id="queryByGivenConditions" parameterType="Company" resultMap="CompanyResultMap">SELECT<include refid="BaseColumn"/>FROM company<where><if test="companyName!=null">company_name = #{companyName}</if><if test="staffSum!=null">AND staff_sum >= #{staffSum}</if><if test="location!=null">AND location LIKE '%${location}%'</if></where></select><!--trim动态语句和foreach迭代语句--><select id="findByNameAndIds" resultMap="CompanyResultMap">SELECT<include refid="BaseColumn"/>FROM company<trim prefix="WHERE" prefixOverrides="AND"><if test="companyName!=null">company_name LIKE '%${companyName}%'</if><if test="ids!=null">AND id IN<foreach collection="ids" open="(" separator="," close=")" item="id">#{id}</foreach></if></trim></select><!--set动态更新--><update id="updateCompany" parameterType="Company">UPDATE company<set><if test="companyName!=null">company_name=#{companyName},</if><if test="staffSum!=null">staff_sum=#{staffSum},</if><if test="location!=null">location=#{location}</if></set>WHERE id=#{id}</update>
</mapper>
此一二三步就完成了1-4的目的,测试就不测了,因为实在太简单了,该说明的都在代码中注释了。