mybatis参数传递的问题
来源:互联网 发布:鼎信诺审计软件 编辑:程序博客网 时间:2024/05/10 08:55
mybatis参数传递的问题:如何传递一个参数并在xxxMapper.xml中拿到参数值用于sql操作?如何传递多个参数并在xxxMapper.xml中拿到参数值用于sql操作?
1.基本数据类型只能传一个(int,String,Data等),通过#{参数名}即可获取传入值,参数名要严格一致。
举例:
接口代码:
List<FundoutRequest> selectPage1(String name);
Mapper的mybatis查询代码:
<select id="selectPage1" resultMap="BaseResultMap" > select <include refid="Base_Column_List" /> from cap_settlement_daily_summary where 1 = 1 <if test="name != null"> and `id` = #{name,jdbcType=VARCHAR}
</if></select>
2.复杂数据类型(例如java实体类,Map等),通过#{对象.属性名}或#{Map的key值}即可获取传入的值(#也可以看情况换成$,但是要注意在mybatis中使用$有可能会产生sql注入)。
举例:
接口代码:
List<FundoutRequest> selectPageNoLimit(FundoutRequest fundoutRequest);
Mapper的mybatis查询代码:
<select id="selectPageNoLimit" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from cap_settlement_daily_summary where 1 = 1 <if test="settlementDailySummary.id != null" > and `id` = #{settlementDailySummary.id,jdbcType=BIGINT} </if> <if test="settlementDailySummary.accountingDate != null" > and `accounting_date` = #{settlementDailySummary.accountingDate,jdbcType=VARCHAR} </if> <if test="settlementDailySummary.merchantId != null" > and `merchant_id` = #{settlementDailySummary.merchantId,jdbcType=VARCHAR} </if> <if test="settlementDailySummary.merchantName != null" > and `merchant_name` = #{settlementDailySummary.merchantName,jdbcType=VARCHAR} </if> <if test="settlementDailySummary.paymentTransactionCount != null" > and `payment_transaction_count` = #{settlementDailySummary.paymentTransactionCount,jdbcType=INTEGER} </if> <if test="settlementDailySummary.paymentTransactionAmount != null" > and `payment_transaction_amount` = #{settlementDailySummary.paymentTransactionAmount,jdbcType=DECIMAL} </if> </select>
3.传多个参数的方法:对于传的是多个基本数据类型的情况,必须在每个参数前使用注解标识(在接口的参数前添加@Param(value="参数名")),不然无法区分基本数据类型哪个是哪个。对于有不同的复杂数据类型的多个参数,建议也统一采用注解标识。通过#{对象.属性名}或#{Map的key值}即可获取传入的参数值(#也可以看情况换成$,但是要注意在mybatis中使用$有可能会产生sql注入)。
举例:
接口代码:
List<FundoutRequest> selectPage(@Param("fundoutRequest") FundoutRequest fundoutRequest, @Param("pageable")0 Pageable pageable);
</pre><p>Mapper的mybatis查询代码:</p><pre name="code" class="java"><select id="selectPage" resultMap="BaseResultMap" > select <include refid="Base_Column_List" /> from cap_settlement_daily_summary where 1 = 1 <if test="settlementDailySummary.id != null" > and `id` = #{settlementDailySummary.id,jdbcType=BIGINT} </if> <if test="settlementDailySummary.accountingDate != null" > and `accounting_date` = #{settlementDailySummary.accountingDate,jdbcType=VARCHAR} </if> <if test="settlementDailySummary.merchantId != null" > and `merchant_id` = #{settlementDailySummary.merchantId,jdbcType=VARCHAR} </if> <if test="settlementDailySummary.merchantName != null" > and `merchant_name` = #{settlementDailySummary.merchantName,jdbcType=VARCHAR} </if> <if test="settlementDailySummary.paymentTransactionCount != null" > and `payment_transaction_count` = #{settlementDailySummary.paymentTransactionCount,jdbcType=INTEGER} </if> <if test="settlementDailySummary.paymentTransactionAmount != null" > and `payment_transaction_amount` = #{settlementDailySummary.paymentTransactionAmount,jdbcType=DECIMAL} </if> <if test="pageable.sort != null" > order by <foreach collection="pageable.sort" item="order" separator="," > <if test=" order.property == 'id' || order.property == 'accounting_date' || order.property == 'merchant_id' || order.property == 'merchant_name' || order.property == 'payment_transaction_count' || order.property == 'payment_transaction_amount' " > ${order.property} ${order.direction} </if> </foreach> </if> <if test="pageable.offset >= 0 and pageable.pageSize > 0" > limit ${pageable.offset}, ${pageable.pageSize} </if> </select>
1 0
- mybatis参数传递的问题
- MyBatis参数传递的问题
- mybatis实现传递多参数的问题
- mybatis传递多个参数的问题
- myBatis的参数传递问题解析
- Mybatis的多参数传递问题
- mybatis关于传递参数问题
- mybatis关于传递参数问题
- MyBatis映射文件中多参数传递的问题
- Mybatis 3.0 参数的传递
- Mybatis中可以传递的参数
- MyBatis传递多个参数的写法
- Mybatis传递参数的几种方法
- MyBatis传递参数的3种方式
- mybatis 传递参数的三种方式
- MyBatis传递多个参数的方法
- Mybatis有关于参数的传递
- MyBatis传递多个参数的方法
- 18、命令模式(Command)
- 关于cjson中把数组转化为字符串
- 简单的REST的框架实现
- 布局注意事项(给自己免得每次都忘记)
- Java中,return和finally的执行顺序
- mybatis参数传递的问题
- 程序员常用的十种算法
- 什么是高速缓存参数无关算法?
- 算法
- ios开发-数据库网络之html(2)
- TCP协议最大字节数计算
- fragment复用
- Linux文件搜索命令
- ButterKnife:8.1.0的使用