建構一個大的SQL語句唄,Insert into wer(A1,A2...A1000) Values(@a1,@a2,...@a1000)。裡面有1000個參數,給參數數組循環賦值,然後執行就可以了。
這個字串,你可以用迴圈來產生
string Sql,param;
Sql="";param="";
for(int i=1;i{
Sql ="A" i.ToString() ",";
param ="@a" i.ToString() ",";
}
Sql="Insert into wer(" Sql.Substring(0,Sql.Length-1) ") Values (" param.Substring(0,param.Length-1));
給這個Sql的參數陣列賦值,然後執行這個SQL;
不過我記得2000下面,單一SQL指令最大長度為4K位元組(記得不是太清楚了,你可以自己試試看),如果有1000個字段,光寫字段名就超過4K字節了。
如果SQL語句太常,就需要拆分成兩條,一條插入,並回傳一個id,然後根據第二條update,或者你的參數中自己就帶了一個id也可以。
declare
--定義IntArray 類型,該類型是每個元素為int類型的陣列
Type IntArray is table of int;
--定義一個IntArray 類型的變數
v_array IntArray := IntArray();
begin
--存入資料在數組中
for i in 1.. 100 loop
--需要擴充數組
v_array.extend;
v_array(i) := i;
end loop;
--輸出陣列的內容
for i in 1.. 100 loop
dbms_output.put_line(v_array(i));
end loop;
end;
SQL>set serverout on;
SQL>declare
2 --定義IntArray 類型,該類型是每個元素為int類型的陣列
3 Type IntArray is table of int;
4 --定義一個IntArray 類型的變數
5 v_array IntArray := IntArray();
6 begin
7 --存入資料在陣列中
8 for i in 1.. 100 loop
9 --需要擴充數組
10 v_array.extend;
11 v_array(i) := i;
12 end loop;
13
14 --輸出陣列的內容
15 for i in 1.. 100 loop
16 dbms_output.put_line(v_array(i));
17 end loop;
18 end;
19 /
1
2
3
4
5
6
7
8
9
10
此處省略90行
PL/SQL procedure successfully completed
SQL>
public class ddd {
public static void main(String args[]){
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/find";//find資料庫名稱
String user="root";//
String password="root";//MYSQL
Connection conn;
try {
Class.forName(driverClass).newInstance(); conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
int i=0;
String a[]={"sad","dsds","dsfss"};
String sql="insert into XX values (null,'" a[i] "')";
for(i=0;i
int rs=stmt.executeUpdate(sql);}catch(Exception ex){
ex.printStackTrace();
}
}
建個表,兩列,ID 和word;ID設定自增;
有問題再找我。 ###
以上是使用陣列將資料輸入到SQL資料庫中的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!