[英]Java MySQL query issue
所以我的查詢將無法正常工作。 我也理解,因為我沒有使用可能會導致mySQL注入的准備好的語句。 往前走,每次我運行此問題時,我都會收到一個錯誤。 也只是一個提示,這是用於學校的作業-亦可以肯定,我的編碼風格可能最多不過是低於標准,但我正在努力!!!
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();
}
}
當我運行吸氣劑以確保一切設置正確時,它會正確調整。請幫助,因為這使我發瘋!!!
如果您需要更多代碼,請告訴我,我將包括在內。 我認為我包括了所有需要的東西。
再次感謝大家的幫助
您不能使用executeQuery
執行INSERT
查詢,該查詢用於返回結果;
換一種說法;
stmt.executeQuery(queries.newEmpInsert());
相反,應該使用executeUpdate
;
stmt.executeUpdate(queries.newEmpInsert());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.