2016-03-29 5 views
1

を挿入し、私は予測値を挿入しようと、私はSQL & JAVA今JavaのSQL列I列実際&を持つテーブルを作成し

st.execute("insert into host_1 (actual) values ('"+ac[j]+"')"); 

を使用して、テーブルの列にサイズ220の配列を挿入

を予測

st.executeUpdate("insert into host_1 (exp_predict) values ('"+pre[i]+"')"); 

221番目の行から挿入されます。私はそれがROW0

から挿入したいPlzを誰もが

+1

などの条件と同じループでexp_predictとhost_1を更新する必要があり 'ac'と' pre'の関係は何ですか? 1つのクエリに両方の値を挿入するか、または更新クエリを実行して2番目の列に入力する必要があります。 – Berger

+0

私は列221から更新を取得して更新を実行しました –

+0

テーブルに主キーがありますか、または登録を識別するのに役立つキーがありますか? – lrnzcig

答えて

0

insert文は常に新しい行を作成するのを助けます。既存の行に値を設定する場合は、updateステートメントを使用する必要があります。

// Assume, or check, that ac and pre are the same size: 
int size = ac.length; 

PreparedStatement ps = 
    myConnection.prepareStatement 
    ("INSERT INTO host_1 (actual, exp_predict) VALUES (?, ?)"); 
for (int i = 0; i < size; ++i) { 
    ps.setString(1, ac[i]); 
    ps.setString(2, pre[i]); 
    ps.addBatch(); 
} 
ps.executeBatch(); 
0
"insert into host_1 (actual) values ('"+ac[j]+"')" 

上行全体を挿入します。または、いっそのこと、まだ、同時に両方の値を挿入します。列だけでなく

0

まず、実際の列を挿入し、後で挿入された行を更新します。最初のSQLは問題ありません。2番目のSQLを修正するだけです。

st.executeUpdate("update host_1 set exp_predict = pre[i] where actual = ac[j]"); 
0

あなたは

for(int i = 0; i<221; i++){ 
st.execute("insert into host_1 (actual) values ('"+ac[j]+"')"); 

st.executeUpdate("update host_1 set exp_predict = '"+pre[i]+"' where 
actual = '"+ac[j]+"' 
} 
関連する問題