javamysql查询问题
因此,我的查询将无法正常工作。我也理解,因为我没有使用可能导致mySQL注入的预处理语句。向前看,每当我运行此程序时,都会出现一个错误。 也只是一个提示,这是一个学校作业-我相信我的编码风格可能是最好的,但我正在努力javamysql查询问题,java,mysql,mysql-error-1045,Java,Mysql,Mysql Error 1045,因此,我的查询将无法正常工作。我也理解,因为我没有使用可能导致mySQL注入的预处理语句。向前看,每当我运行此程序时,都会出现一个错误。 也只是一个提示,这是一个学校作业-我相信我的编码风格可能是最好的,但我正在努力 public String newEmpInsert() { return newEmpInsert; } private String newEmpInsert = "INSERT INTO empInfo" + "(firstName, lastName, SS
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");
}
}
}
当我运行getter以确保所有内容都正确设置时,它会正确地重新运行。。请帮帮我,因为这快把我逼疯了
如果你需要更多的代码,让我知道,我会包括它。我想我包括了所有需要的东西
再次感谢大家的帮助您不能使用用于返回结果的查询执行
插入
查询
换言之
stmt.executeQuery(queries.newEmpInsert());
应该改用,
您需要对所有字符串值使用单引号,如
'“+firstName+”
@AbhikChakraborty-answer应该有效(您必须对所有字符串类型的属性使用单引号)。不建议使用字符串连接进一步生成SQL语句,因为这会增加SQL注入的可能性;使用事先准备好的语句。Hibernate是处理数据库时广泛使用的机制。@AmilWaduwawara我同意你的看法!!添加单引号仍然是一个错误您收到的异常类型/消息是什么?NullPointerException或某种SQLException?谢谢!!!!成功了。我仍然得到错误,但我应该能够从这里采取它!只是MySql错误,比如“默认值”等等。再次感谢你。如果我能投票,我会的
stmt.executeQuery(queries.newEmpInsert());
stmt.executeUpdate(queries.newEmpInsert());