有个需求mybatis 插入的时候不知道有哪些字段,需要动态的传入值和字段

有个需求mybatis 插入的时候不知道有哪些字段,需要动态的传入值和字段,
 

Java code?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

    @Test

    public void testAddProductGuaranty() {

        //1    560    50000    2014/10/2 0:00:00    2014/11/1 0:00:00    500000    车况良好

        Map<String, Object> productGuaranty = new HashMap<String, Object>();

              //这些字段可能是不固定的,只做测试用

        productGuaranty.put("product_id"1);

        productGuaranty.put("remark""车况良好");

        productGuaranty.put("price"50000);

        productGuaranty.put("release_date"new Date());

        productGuaranty.put("license_date"new Date());

        productGuaranty.put("distance"50000);

        productGuaranty.put("car_type"560);

        productGuaranty.put("car_id"1);

        productGuarantyService.addProductGuaranty(productGuaranty);

    }


 

Java code?

1

2

3

4

5

6

7

8

9

    @Override

    public void addProductGuaranty(Map<String, Object> productGuaranty) {

        Map<String, Object> params = new HashMap<String, Object>();

               //获取动态字段

        List<CustomTableFields> customTableFields = configService.getTableFields("product_guaranty");

         

        productGuaranty.put("customTableFields", customTableFields);

        productGuarantyDao.insert(productGuaranty);       

    }


 

SQL code?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

  <insert id="insert" parameterType="java.util.Map" statementType="STATEMENT" >

    insert into product_guaranty 

        <foreach item="item" collection="customTableFields" open="("   separator="," close=")">  

                ${item.fieldName}

        </foreach>

    values

        <foreach item="item" collection="customTableFields" open="("   separator="," close=")">  

            <choose>  

               <when test="item.type == 'date'">  

                    ${item.fieldName}                          

               </when>

               <when test="item.type == 'int'">  

                    ${item.fieldName}                          

               </when>

               <when test="item.type == 'float'">  

                    ${item.fieldName}                          

               </when>  

               <otherwise>

                        ${item.fieldName}   

               </otherwise>  

           </choose>

        </foreach> 

  </insert>


问题是第二个循环这里如何根据${item.fieldName} 从params中获取值?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值