私は Java と SQLite を使用していますが、次の状況があります。
データベースを接続して、ubs というテーブルを作成しました
今私は配列を持っていますint[] d
.Javadouble[] o
では、それをデータベースに格納する最も効率的な方法は何ですか? 断片的な挿入を試みて読み取りました...挿入は機能しますが、正しく読み取れません。
これが私のコードです:
int size = 20;
int[] d = new int[size];
double[] o = new double[size];
double[] c = new double[size];
int[] dtest = new int[size];
double[] otest = new double[size];
double[] ctest = new double[size];
for(int a = 0; a< size; ++a) {
d[a] = a+1;
o[a] = Math.random();
c[a] = Math.random();
}
Connection conn = DriverManager.getConnection(sDbUrl);
Statement stat = conn.createStatement();
stat.executeUpdate("CREATE TABLE ubs (date INTEGER, open DOUBLE, close DOUBLE)");
PreparedStatement prep = conn.prepareStatement("insert into ubs values (?,?,?);");
for(int a = 0; a < size; ++a) {
prep.setInt(1, d[a]);
prep.setDouble(2,o[a]);
prep.setDouble(3,c[a]);
prep.addBatch();
}
conn.setAutoCommit(false);
prep.executeBatch();
conn.commit();
conn.setAutoCommit(true);
ResultSet rs = stat.executeQuery("select * from ubs;");
int a = 0;
while (rs.next())
{
dtest[a] = rs.getInt("date");
otest[a] = rs.getDouble("open");
ctest[a] = rs.getDouble("close");
++a;
}
rs.close();
conn.close();
//test wether contain the same:
for(a = 0; a< size; ++a) {
System.out.println("original: " + o[a] +" saved: "+otest[a]);
}
返されるものは次のとおりです。
original: 0.707119601198528 saved: 0.22184821183493642
original: 0.616040801231279 saved: 0.0
original: 0.32427329912284675 saved: 0.0
original: 0.570393637345201 saved: 0.0
original: 0.05334583924906977 saved: 0.0
original: 0.5920142191693711 saved: 0.0
original: 0.5440058264918218 saved: 0.0
original: 0.9792739762035961 saved: 0.0
original: 0.7288365270388483 saved: 0.0
original: 0.862852415217843 saved: 0.0
original: 0.6427868320117643 saved: 0.0
original: 0.4895153310585434 saved: 0.0
original: 0.9163102294291119 saved: 0.0
original: 0.7991642836297964 saved: 0.0
original: 0.35640672534480244 saved: 0.0
original: 0.047751063499014146 saved: 0.0
original: 0.4956032547461785 saved: 0.0
original: 0.8975964852843482 saved: 0.0
original: 0.11097820888267451 saved: 0.0
original: 0.22184821183493642 saved: 0.0
意味がありません。私は何を間違っていますか?どうすれば改善できますか?ちなみに、このコードは、別のチュートリアルからつなぎ合わせたものなので、まったく意味がないかもしれません。申し訳ありません。