国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java調(diào)用mysql存儲(chǔ)過程實(shí)例分析

java調(diào)用mysql存儲(chǔ)過程實(shí)例分析

2019-12-20 14:32imzoer JAVA教程

這篇文章主要介紹了java調(diào)用mysql存儲(chǔ)過程的方法,以實(shí)例形式較為詳細(xì)的分析了mysql數(shù)據(jù)庫(kù)的建立和存儲(chǔ)過程的實(shí)現(xiàn)方法,需要的朋友可以參考下

本文實(shí)例講述了java調(diào)用mysql存儲(chǔ)過程的方法。分享給大家供大家參考。具體如下:

數(shù)據(jù)庫(kù)的測(cè)試代碼如下 :

1、新建表test

?
1
2
3
4
5
create table test(
field1 int not null
)
TYPE=MyISAM ;
insert into test(field1) values(1);

2、刪除已存在的存儲(chǔ)過程:

?
1
2
3
-- 刪除儲(chǔ)存過程
delimiter // -- 定義結(jié)束符號(hào)
drop procedure p_test;

3、mysql存儲(chǔ)過程定義:

?
1
2
3
4
5
6
create procedure p_test()
begin
declare temp int;
set temp = 0;
update test set field1 = values(temp);
end

4、調(diào)用方法:

?
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
CallableStatement cStmt = conn.prepareCall("{call p_test()}");
cStmt.executeUpdate();
import java.sql.*;
/**
iGoder
*/
public class ProcedureTest {
 /*
 表和存儲(chǔ)過程定義如下:
 delimiter //
DROP TABLE if exists test //
  CREATE TABLE test(
   id int(11) NULL
  ) //
 drop procedure if existssp1 //
  create procedure sp1(in p int)
  comment 'insert into a int value'
  begin
   declare v1 int;
   set v1 = p;
   insert into test(id) values(v1);
  end
  //
  drop procedure if exists sp2 //
  create procedure sp2(out p int)
  begin
   select max(id) into p from test;
  end
  //
 drop procedure if exists sp6 //
  create procedure sp6()
  begin
    select * from test;
  end//
 */
 public static void main(String[] args) {
 //callIn(111);
 //callOut();
 callResult();
 }
 /**
 * 調(diào)用帶有輸入?yún)?shù)的存儲(chǔ)過程
 * @param in   stored procedure input parametervalue
 */
 public static void callIn(int in){
 //獲取連接
 Connection conn = ConnectDb.getConnection();
 CallableStatement cs = null;
 try {
  //可以直接傳入?yún)?shù)
  //cs = conn.prepareCall("{call sp1(1)}");
  //也可以用問號(hào)代替
  cs = conn.prepareCall("{call sp1(?)}");
  //設(shè)置第一個(gè)輸入?yún)?shù)的值為110
  cs.setInt(1, in);
  cs.execute();
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  try {
  if(cs != null){
   cs.close();
  }
  if(conn != null){
   conn.close();
  }
  } catch (Exception ex) {
  ex.printStackTrace();
  }
 }
 }
 /**
 * 調(diào)用帶有輸出參數(shù)的存儲(chǔ)過程
 *
 */
 public static void callOut() {
 Connection conn = ConnectDb.getConnection();
 CallableStatement cs = null;
 try {
  cs = conn.prepareCall("{call sp2(?)}");
  //第一個(gè)參數(shù)的類型為Int
  cs.registerOutParameter(1, Types.INTEGER);
  cs.execute();
  //得到第一個(gè)值
  int i = cs.getInt(1);
  System.out.println(i);
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  try {
  if(cs != null){
   cs.close();
  }
  if(conn != null){
   conn.close();
  }
  } catch (Exception ex) {
  ex.printStackTrace();
  }
 }
 }
 /**
 * 調(diào)用輸出結(jié)果集的存儲(chǔ)過程
 */
 public static void callResult(){
 Connection conn = ConnectDb.getConnection();
 CallableStatement cs = null;
 ResultSet rs = null;
 try {
  cs = conn.prepareCall("{call sp6()}");
  rs = cs.executeQuery();
  //循環(huán)輸出結(jié)果
  while(rs.next()){
  System.out.println(rs.getString(1));
  }
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  try {
  if(rs != null){
   rs.close();
  }
  if(cs != null){
   cs.close();
  }
  if(conn != null){
   conn.close();
  }
  } catch (Exception ex) {
  ex.printStackTrace();
  }
 }
 }
}
/**
*獲取數(shù)據(jù)庫(kù)連接的類
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
class ConnectDb {
 public static Connection getConnection(){
 Connection conn = null;
 PreparedStatement preparedstatement = null;
 try {
  Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  String dbname = "test";
  String url="jdbc:mysql://localhost/"+dbname+"?user=root&password=root&useUnicode=true&characterEncoding=8859_1";
  conn= DriverManager.getConnection(url);
 } catch (Exception e) {
  e.printStackTrace();
 }
 return conn;
 }
}

希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 视频一区二区在线观看 | 国产精品久久精品 | 欧美在线视频一区 | 激情综合网婷婷 | 欧美激情国产日韩精品一区18 | 久久中文字幕一区 | 91香蕉视频 | 国产精品1区 | 色综合视频在线观看 | 国产精品欧美久久久久一区二区 | 欧美精品成人一区二区三区四区 | 96成人爽a毛片一区二区 | 欧美专区中文字幕 | 亚洲中午字幕 | 成人国产精品久久久 | 日韩三级高清 | 国内毛片毛片 | 成人福利视频 | 最近2019年好看中文字幕视频 | 香蕉久久久久久 | 免费观看污视频 | 亚洲一区二区三区高清 | 国产精品99精品久久免费 | av久久| 欧美国产精品一区二区三区 | 日本亚洲最大的色成网站www | 91在线综合 | 综合伊人 | 久久免费精品 | 精品三级在线观看 | 一区二区三区在线播放 | 毛片国产 | 亚洲乱码国产乱码精品精98午夜 | 亚洲永久免费视频 | 午夜视频国产 | 国内精品久久久久久久影视红豆 | 色爽| 黄色免费视频在线观看 | 久久国产一区 | 日韩二区三区 | 开心久久婷婷综合中文字幕 |