当前位置:Gxlcms > 数据库问题 > Mysql存储过程(Java)

Mysql存储过程(Java)

时间:2021-07-01 10:21:17 帮助过:34人阅读

procedure tb_pro(out op int) begin set op = 10 end

java操作:

  1. CallableStatement cs =<span style="color: #000000"> con.prepareCall(sql);
  2. cs.registerOutParameter(</span>1, java.sql.Types.INTEGER);<span style="color: #008000">//</span><span style="color: #008000">注册存储过程的out型参数类型;使用之前必须注册;</span>
  3. <span style="color: #000000">cs.execute();
  4. System.out.println(cs.getInt(</span>2)); <span style="color: #008000">//</span><span style="color: #008000">获取out的输出结果</span>

2、获取查询结果集(来自select查询),且有多个结果集如何处理?

  1. <span style="color: #0000ff">-- 存储过程SQL<br>create</span> <span style="color: #0000ff">procedure</span><span style="color: #000000"> bach_pro()
  2. </span><span style="color: #0000ff">begin</span>
  3. <span style="color: #0000ff">select</span> <span style="color: #808080">*</span> <span style="color: #0000ff">from</span><span style="color: #000000"> table1;
  4. </span><span style="color: #0000ff">select</span> <span style="color: #808080">*</span> <span style="color: #0000ff">from</span><span style="color: #000000"> table2;
  5. </span><span style="color: #0000ff">end</span>

java操作:

  1. CallableStatement cs =<span style="color: #000000"> con.prepareCall(sql);
  2. cs.execute();
  3. ResultSet resultSet </span>=<span style="color: #000000"> cs.getResultSet();
  4. </span><span style="color: #008000">//</span><span style="color: #008000">遍历第一个结果集</span>
  5. <span style="color: #0000ff">while</span><span style="color: #000000">(resultSet.next()){
  6. System.out.println(resultSet.getInt(</span>1)); <span style="color: #008000">//</span><span style="color: #008000"> 输出结果集</span>
  7. <span style="color: #000000"> }
  8. </span><span style="color: #008000">//</span><span style="color: #008000">获取下一个结果集 </span>
  9. <span style="color: #000000"> ResultSet rs2;
  10. </span><span style="color: #0000ff">while</span><span style="color: #000000">(cs.getMoreResults()){
  11. rs2 </span>=<span style="color: #000000"> cs.getResultSet();
  12. </span><span style="color: #0000ff">while</span><span style="color: #000000"> (rs2.next()) {
  13. System.out.println(rs2.getInt(</span>1)); <span style="color: #008000">//</span><span style="color: #008000">输出结果集列</span>
  14. <span style="color: #000000"> }
  15. }</span>

3、当我们要在存储过程中处理查询结果集时,我们就需要使用到cursor,下面是cursor一个简单的使用例子

  1. <span style="color: #0000ff">begin</span>
  2. <span style="color: #0000ff">declare</span> stop <span style="color: #0000ff">int</span> <span style="color: #0000ff">default</span> <span style="color: #800000; font-weight: bold">0</span> ;<span style="color: #008080">--</span><span style="color: #008080">需要在cursor前声明参数</span>
  3. <span style="color: #0000ff">declare</span> id_temp <span style="color: #0000ff">int</span><span style="color: #000000">;
  4. </span><span style="color: #0000ff">declare</span> cur1 <span style="color: #0000ff">cursor</span> <span style="color: #0000ff">for</span> (<span style="color: #0000ff">select</span> id <span style="color: #0000ff">from</span><span style="color: #000000"> xinguan);
  5. </span><span style="color: #0000ff">declare</span> <span style="color: #0000ff">continue</span> handler <span style="color: #0000ff">for</span> <span style="color: #808080">not</span> found <span style="color: #0000ff">set</span> stop <span style="color: #808080">=</span> <span style="color: #800000; font-weight: bold">1</span>; <span style="color: #008080">--</span><span style="color: #008080">声明cursor扫描完后设置值,用于结束循环</span>
  6. <span style="color: #0000ff">open</span><span style="color: #000000"> cur1;
  7. cur1_loop:loop
  8. </span><span style="color: #0000ff">fetch</span> cur1 <span style="color: #0000ff">into</span> id_temp; <span style="color: #008080">--</span><span style="color: #008080">从cursor中取值赋给变量</span>
  9. <span style="color: #0000ff">if</span> stop <span style="color: #0000ff">then</span><span style="color: #000000">
  10. leave cur1_loop;
  11. </span><span style="color: #0000ff">end</span> <span style="color: #0000ff">if</span><span style="color: #000000">;
  12. </span><span style="color: #0000ff">end</span><span style="color: #000000"> loop cur1_loop;
  13. </span><span style="color: #0000ff">close</span><span style="color: #000000"> cur1;
  14. </span><span style="color: #0000ff">end</span>

Mysql存储过程(Java)

标签:.sql   statement   sel   strong   param   列表   handle   参数   例子   

人气教程排行