gpt4 book ai didi

Java,Mysql-列名标识为变量

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:28 24 4
gpt4 key购买 nike

 Connection connection;
Statement statement=null;

try{

connection = DBConnection.getDBConnection().getConnection();
statement=connection.createStatement();

for (int j = 0; j < students.length; j++) {
if(students[j][0]!=null){
String sql="SELECT * from students WHERE id="+students[j][0]+" LIMIT 1";
ResultSet rs=statement.executeQuery(sql);
if(rs.next()){
String reg=rs.getString("regNo");
// if(students[j][1]==toDayDate){
float num1=Math.round(Float.valueOf(students[j][2]));
String rrr=String.valueOf(num1)+"0";
String sql1="SELECT * from reg_courses WHERE regNo="+reg+" && day="+students[j][4]+" && start="+rrr+" LIMIT 1";
ResultSet rs1=statement.executeQuery(sql1);
if(rs1.next()){
if(students[j][3]=="I"){
String sql2="UPDATE attendances SET status = '1' WHERE regNo ="+reg+"&& code="+rs1.getString("code")+"&& time="+rrr+"&& date="+students[j][1];
statement.executeUpdate(sql2);

}
else if(students[j][3]=="O"){
String sql2="UPDATE attendances SET statusA = '1',present = '1', WHERE regNo ="+reg+"&& code="+rs1.getString("code")+"&& time="+rrr+"&& date="+students[j][1]+"&& status='1'";
statement.executeUpdate(sql2);
}
}

// }
}

}

}


}
catch(Exception e){
e.printStackTrace();
}

我的数据库中有 3 个表,分别是 students、reg_courses 和 attendances。每个表都有一个列来存储索引号。regNo 是所有表的列名。当我运行它时,它说

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“where 子句”中的未知列“SC9208”....SC9208 是表中的索引号。这里在 sql1 中,

String sql1="SELECT * from reg_courses WHERE regNo="+reg+"&& day="+students[j][4]+"&& start="+rrr+"LIMIT 1";

regNo 被识别为一个变量。但不是列名。??知道吗。为什么?其他部分代码没有错误,我检查了很多次,谁能指出错误的地方??

最佳答案

值需要被单引号

例如

SELECT * from reg_courses WHERE regNo='SC9208' and day=1 and start=14.00 LIMIT 1

尽管使用 PreparedStatementsetString 会更好

关于Java,Mysql-列名标识为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44690505/

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