标签:str result sep value batch values 实体类 als val
List<int> uidList = urResult.stream().map(p -> p.getUserId()).collect(Collectors.toList());
List<User> temp = uList.stream().filter(item -> item.getUid() == 10000).collect(Collectors.toList());
Optional<Ticket> oTicket = topicList.stream().filter(p -> p.getId().equals(to.getId())).findFirst(); if (oTopic.isPresent()) { Ticket tempTicket = oTicket.get(); }
<update id="updateBatch" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update course <set> name=${item.name} </set> where id = ${item.id} </foreach> </update>
<insert id="saveOrUpdate" > <selectKey keyProperty="count" resultType="int" order="BEFORE"> select count(*) from country where id = #{id} </selectKey> <if test="count > 0"> update country set countryname = #{countryname},countrycode = #{countrycode} where id = #{id} </if> <if test="count==0"> insert into country values(#{id},#{countryname},#{countrycode}) </if> </insert>
条件限制
根据不同的判断逻辑,会有所不同,就上面这个例子而言,就要求实体类中包含count
属性(可以是别的名字)。否则selectKey
的结果没法保存,如果入参是个Map
类型,就没有这个限制。
说明
从例子来看除了有个限制外,也没别的麻烦。
通过selectKey做第一次查询,然后根据结果进行判断,所以这里的order="BEFORE"
是必须的。
也是因为BEFORE
,所以没法通过<bind>
标签来临时存储中间的值,只能在入参中增加属性来存放。
new Thread(){ public void run() { // 方法体 } }.start();
long startTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis(); float seconds = (endTime - startTime) / 1000F; System.out.println("Cost seconds" + Float.toString(seconds));
标签:str result sep value batch values 实体类 als val
原文地址:http://www.cnblogs.com/toutou/p/6567728.html