gpt4 book ai didi

java - 插入数据库表java

转载 作者:行者123 更新时间:2023-11-29 12:54:01 25 4
gpt4 key购买 nike

我想使用插入语句填充表格。为了获取数据,我使用了包含我需要的数据的数组。

我想以这种格式插入 id 和其他一些值。

id w0   w1   w2    w3
1 0.0 1.0 0.54 0.0
2 1.0 0.5 0.0 0.8
and others

id ---> 从普通数组中读取

其他数字 ---> 从二维数组中读取

我想要为每个新行一个新的 id。

我遇到的问题是行正在移动和递增,而 id 却停留在 0,因此每个新行都添加了相同的 id,这是错误的,因为 id 是主键。

String sqlselect=new String("select k_id from keywordsTable");
ResultSet rss = stmt1.executeQuery(sqlselect);
kId=new String[numOfFields];
String f="";
String ff="";
String ffff="";
for (int i=0;i<kId.length;i++) {
while(rss.next())
{
kId[i]=rss.getString(1);
f="w"+kId[i]+ " varchar(20)";
ff+="w"+kId[i]+", ";
ffff+="w"+kId[i]+", ";
//fff+="w"+kId[i]+ " varchar(20), ";
String sqlalter=new String("ALTER TABLE "+ tableName +" add "+f+"");
//System.out.println(sqlalter);
stmt1.executeUpdate(sqlalter);
}

}
ff = ff.replaceAll(", $","");
ffff = ffff.replaceAll(", $","");


String sqlselectF=new String("select f_id from filesTable");
ResultSet rssF = stmt1.executeQuery(sqlselectF);
FId=new String[numOfFiles];

String matInsert = null;
String g="";
String seperator = "";

for (int s=0;s<FId.length;s++) {
while(rssF.next())
{
FId[s]=rssF.getString(1);
g=seperator+FId[s];

for (int k=0;k<di.mat.length;k++) { //row
String m="";
String sep = "";
for (int j=0;j<di.mat[k].length;j++) { //col

m+= (sep+di.mat[k][j]);
sep = " ,";
matInsert=new String("INSERT INTO "+ tableName +"(id,"+ffff+")"+"values" +"("+g+","+m+")");

} //col
System.out.println("ff="+g);
System.out.println(matInsert);
stmt1.executeUpdate(matInsert);

} //row


} //while

} //for 1


seperator=" ,";

最佳答案

您不应插入 ID,请将列配置为 AUTO_INCREMENT 并让 MySQL 在每次插入时分配 ID。

其次,将 while 循环嵌套在 for 循环中可能是一个逻辑错误。
第三,ffff 未在您发布的代码中的任何位置声明。
第四,INSERT 查询在一些地方缺少空格,它将显示(如果所有输入都正确)如下所示:

INSERT INTO tableName(id,ffff)values(x,y)

关于java - 插入数据库表java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24349159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com