天天看点

用vertx compose写链式操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<code>public</code> <code>static</code> <code>void</code> <code>handleAddCollection(RoutingContext routingContext){</code>

<code>    </code><code>Future&lt;Void&gt; futn=Future.future();</code>

<code>    </code><code>futn.setHandler(a-&gt;{</code>

<code>        </code><code>System.out.println(</code><code>"4最后一步:"</code><code>);</code>

<code>        </code><code>sendData(routingContext,</code><code>"ok"</code><code>);</code>

<code>        </code><code>return</code><code>;</code>

<code>    </code><code>});</code>

<code>    </code><code>Future&lt;UpdateResult&gt; fut1 = Future.future();</code>

<code>    </code><code>JsonArray params=</code><code>new</code> <code>JsonArray().add(</code><code>"123"</code><code>).add(</code><code>"测试标题"</code><code>).add(</code><code>"http://baidu.com"</code><code>).add(</code><code>""</code><code>);</code>

<code>    </code><code>String sql=</code><code>"insert into mytable (userid,title,url,pic) values (?,?,?,?)"</code><code>;</code>

<code>    </code><code>myDBConnecton.updateWithParams(sql,params,fut1.completer());</code>

<code>    </code><code>fut1.compose(v-&gt; {         </code>

<code>        </code><code>if</code><code>(v.getUpdated()&gt;</code><code>0</code><code>)System.out.println(</code><code>"2 插入成功了"</code><code>);</code>

<code>        </code><code>else</code> <code>System.out.println(</code><code>"2 插入失败了"</code><code>);</code>

<code>        </code><code>Future&lt;ResultSet&gt; fut2 = Future.future();</code>

<code>         </code><code>myDBConnecton.query(</code><code>"select * from mytable"</code><code>, fut2.completer());  </code>

<code>        </code><code>return</code> <code>fut2;</code>

<code>    </code><code>}).compose(v -&gt; {</code>

<code>        </code><code>List&lt;JsonObject&gt; data=v.getRows();</code>

<code>        </code><code>System.out.println(</code><code>"3查询结果为:"</code><code>+data.toString());</code>

<code>        </code><code>Future&lt;Void&gt; fut3 = Future.future();  </code>

<code>        </code><code>myDBConnecton.updateWithParams(sql,params,fut1.completer());           </code>

<code>        </code><code>futn.complete();</code>

<code>    </code><code>},futn);</code>

<code>}</code>

执行结果显示:

<code>2 插入成功了</code>

<code>3查询结果为:[{</code><code>"id"</code><code>:1,</code><code>"userid"</code><code>:120,</code><code>"title"</code><code>:</code><code>"测试标题"</code><code>,</code><code>"url"</code><code>:</code><code>"http://baidu.com"</code><code>,</code><code>"pic"</code><code>:</code><code>""</code><code>,</code><code>"add_time"</code><code>:null}, {</code><code>"id"</code><code>:2,</code><code>"userid"</code><code>:120,</code><code>"title"</code><code>:</code><code>"测试标题"</code><code>,</code><code>"url"</code><code>:</code><code>"http://baidu.com"</code><code>,</code><code>"pic"</code><code>:</code><code>""</code><code>,</code><code>"add_time"</code><code>:null}]</code>

<code>4最后一步:</code>

<code></code>

     本文转自北京看看 51CTO博客,原文链接:http://blog.51cto.com/kankan/1929999,如需转载请自行联系原作者