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

原文链接: https://bbs.csdn.net/topics/391010960

有个需求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 productGuaranty = new HashMap();

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

        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 productGuaranty) {

        Map params = new HashMap();

               //获取动态字段

        List 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 

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

                ${item.fieldName}

        

    values

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

              

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

                    ${item.fieldName}                          

               when>

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

                    ${item.fieldName}                          

               when>

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

                    ${item.fieldName}                          

               when>  

               

                        ${item.fieldName}   

                 

           

         

  insert>


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

你可能感兴趣的:(有个需求mybatis 插入的时候不知道有哪些字段,需要动态的传入值和字段)