gpt4 book ai didi

java - 更新查询的动态列名

转载 作者:行者123 更新时间:2023-11-29 10:57:01 24 4
gpt4 key购买 nike

我正在尝试从要动态获取的多个列名称(lo1,lo2,...)更新表。但数据库中的值没有更新。列名称为 co1,co2...

私有(private) void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

         Connection conn = null;
PreparedStatement pstmt = null;

try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/netbeans","root","");



Statement st = conn.createStatement();

ResultSet rs = st.executeQuery("SELECT * FROM colo");

rs = st.executeQuery("SELECT COUNT(*) FROM colo");
// get the number of rows from the result set
rs.next();
int rowCount = rs.getInt(1);

//txt_ans.setText(String.valueOf(rowCount));
int num_1 =300;
int num_2 =200;
int num_3 =300;
int num_4 =400;
String value = null;
int value1 ;

for(int i=1;i<=rowCount;i++)
{

String sql =("SELECT * FROM colo WHERE id = '"+i+"'");

pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery(sql);
while(rs.next())
value = rs.getString("co1");
//txt_ans.setText(String.valueOf(value));
String x = "co2";
if(value.equals("lo1"))
{
// value1= 1;
// txt_ans.setText(String.valueOf(value1));


String sql1 =("update colo set '"+x+"' = '"+num_1+"' where id = '"+i+"'");
pstmt = conn.prepareStatement(sql1);
int r = pstmt.executeUpdate(sql1);


txt_ans.setText(String.valueOf(r));

}
else if(value.equals("lo2"))
{
// value1= 1;
// txt_ans.setText(String.valueOf(value1));
String sql1 =("update colo set '"+ x +"' = '"+num_2+"' where id = '"+i+"'");
pstmt = conn.prepareStatement(sql1);
int r = pstmt.executeUpdate(sql1);


txt_ans.setText(String.valueOf(r));

}
else
{
value1 = 9009;
txt_ans.setText(String.valueOf(value1));
}


}

最佳答案

问题在于使用单引号作为列名,例如 'x',因此只需将其删除,如下所示:

String sql1 =("update colo set " + x + " = ? where id = ?");//no single quote for x
pstmt = conn.prepareStatement(sql1);
pstmt.setString(1, num_1);
pstmt.setString(2, i);
int r = pstmt.executeUpdate(sql1);

另外,请始终使用 prepareStatementsetString等..推荐的设置值的方法。

else if(value.equals("lo2"))内的其他查询应用相同的概念。也阻止。

关于java - 更新查询的动态列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42881324/

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