mybatis插入数据是参数map且map中values为对象的处理_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > mybatis插入数据是参数map且map中values为对象的处理

mybatis插入数据是参数map且map中values为对象的处理

 2017/11/29 13:04:39  duduli  程序员俱乐部  我要评论(0)
  • 摘要:xml配置:<insertid="insertWinePrice"parameterType="java.util.Map">insertintowineprice(id,price,time)VALUES<foreachcollection="params.keys"item="key"open="("separator=",">${key}</foreach>,<foreachcollection="params
  • 标签:Values Map 数据
xml配置:
class="java">    <insert id="insertWinePrice" parameterType="java.util.Map">
        insert into wineprice (id,price,time) VALUES
        <foreach collection="params.keys" item="key" open="("  separator=",">
            ${key}
        </foreach>
        ,
        <foreach collection="params.values" item="v" close=")"  separator=",">
            #{v.m},#{v.p}
        </foreach>
    </insert>

接口代码:
public void insertWinePrice(@Param("params") Map<Integer,JdWinePo> map);

测试代码:
        Reader reader = Resources.getResourceAsReader("config/conf.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession = factory.openSession();
        JdMapper jm = sqlSession.getMapper(JdMapper.class);
        Map<Integer,JdWinePo> map = new HashMap<Integer, JdWinePo>();
        JdWinePo j = new JdWinePo();
        j.setId("3232");
        j.setM("erwewr");
        j.setOp("fsaeet");
        j.setP("4343");
        map.put(212112,j);
        jm.insertWinePrice(map);
        sqlSession.commit();
        sqlSession.close();


这里我的理解。xml配置生成sql语句不能生成批量sql语句,所有的批量sql,只能在业务逻辑代码处进行处理。
发表评论
用户名: 匿名