簡體   English   中英

Java MySQL查詢問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM