Mybatis的动态拼接条件方式
作者:人月IT
这篇文章主要介绍了Mybatis的动态拼接条件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Mybatis的动态拼接条件
官网的例子永远是最好的,切记切记!!
拼接条件
<sql id="select_asset_where"> <if test="accountType != null and accountType.size != 0" > and <foreach collection="accountType" item="param" separator="OR" open="(" close=")"> a.account_type = #{param} </foreach> </if> </sql>
条件查询
<select id="selectAssetByCondition" parameterType="com.zemcho.controller.asset.dto.AssetConditionDto" resultMap="AssetCondtitionResultMap"> SELECT reg_code, asset_name, asset_type, metering_units, use_info, expect_end_date, regist_man, regist_date, account_type, fee_item, finance_bill_date, user, user_account, keeper, checker, buyer, school_addr, account_book, acquire_way, asset_use_way, write_off_date, asset_status_1, store_place, orginal_value, net_value, number_value FROM tb_asset_regist_d a <if test="assetDepInfo != null" > , cfg_asset_dep_info b </if> <if test="assetTypeInfo != null" > , cfg_asset_type_info c </if> <where> <include refid="select_asset_where"></include> </where> </select>
批量插入
<!-- 批量插入 --> <!-- 批量插入生成的兑换码 --> <insert id ="insertBulk" parameterType="java.util.List" > <selectKey resultType ="java.lang.Integer" keyProperty= "id" order= "AFTER"> SELECT LAST_INSERT_ID() </selectKey > insert into `tb_basic_treatment_d` (<include refid="Base_Column_List" />,LOAD_TIME) values <foreach collection ="list" item="item" index= "index" separator =","> ( #{item.name}, #{item.teacherNumber}, #{item.idNumber}, #{item.year}, #{item.annualWageIncomeYuan}, #{item.fiveInsuranceAGold}, #{item.loadTime} ) </foreach > </insert >
普通查询
<select id="selectByReaderNum" parameterType="string" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from tb_library_borrower_d where reader_id = #{num,jdbcType=VARCHAR} limit 1 </select>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。