gpt4 book ai didi

Java MySQL 查询问题

转载 作者:行者123 更新时间:2023-11-30 00:19:49 25 4
gpt4 key购买 nike

所以我的查询将无法正常工作。我也明白,因为我没有使用可能导致 mySQL 注入(inject)的准备好的语句。继续前进,每次我运行这个问题时都会出现错误。另外,请注意,这是一项学校作业——也就是说,我确信我的编码风格充其量可能是低于标准的,但我正在努力!

public  String newEmpInsert() {
return newEmpInsert;
}
private String newEmpInsert = "INSERT INTO empInfo"
+ "(firstName, lastName, SSN, address, salary, pin, empLevel, contactInfo) "
+ "VALUES ('"+firstName+"', '"+lastName+"', '"+SSN+"', '"+address+"', '"+salary+"',"
+ "'"+pin+"', '"+empLevel+"', '"+contactInfo+"')";

所有正在使用的变量都是从中间人代码位于下面的类中的 getter 和 setter 设置的

    public void newEmpInsert() {

// SQL Connection
Connection conn = null;
try {
conn = MySQL_connection_test.getConnection();
// Create a statement
Statement stmt = conn.createStatement();
stmt.executeQuery(queries.newEmpInsert());

}
catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("--------->>Invalid query!!!!<<--------------");
System.out.println("Your query has an error, please try again!!");
}

// Close the connection
//VERY IMPORTANT!!
finally {
try {
conn.close();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Database closed");
}
}

我确信变量设置正确,因为在我的主要部分中我做了以下操作...

public class TESTPACKAGE {
public static void main(String[] args) {

//declare a new instance of the procedures
SqlProcedures procedures = new SqlProcedures();

procedures.queries = new Queries();

//use the setters
procedures.queries.setFirstName("Anthony");
procedures.queries.setLastName("inner");
procedures.queries.setSSN(123451235);
procedures.queries.setAddress("1300 S Farmview");
procedures.queries.setSalary(18.00);
procedures.queries.setPin(1234);
procedures.queries.setEmpLevel(2);
procedures.queries.setContactInfo("1254569133");


System.out.println(procedures.queries.getFirstName());
System.out.println(procedures.queries.getLastName());
System.out.println(procedures.queries.getSSN());
System.out.println(procedures.queries.getAddress());
System.out.println(procedures.queries.getSalary());
System.out.println(procedures.queries.getPin());
System.out.println(procedures.queries.getEmpLevel());
System.out.println(procedures.queries.getContactInfo());



//execture a query
procedures.newEmpInsert();





}

}

当我运行 setter/getter 以确保一切设置正确时,它会正确重新调整。请帮助,因为这让我发疯!

如果您需要更多代码,请告诉我,我将包含它。我认为我已经包含了所需的一切。

再次感谢大家的帮助

最佳答案

您无法使用 executeQuery 执行 INSERT 查询用于返回结果的查询;

换句话说;

stmt.executeQuery(queries.newEmpInsert());

应该使用executeUpdate ;

stmt.executeUpdate(queries.newEmpInsert());

关于Java MySQL 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23325557/

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