Java 将数据插入数据库-org.h2.jdbc.JdbcSQLException:列计数不匹配;SQL语句:

Java 将数据插入数据库-org.h2.jdbc.JdbcSQLException:列计数不匹配;SQL语句:,java,database,h2,Java,Database,H2,我一直在尝试将值保存到一个名为“CLIENT”的数据库中 数据库是通过以下代码创建的: package Database; //STEP 1. Import required packages import java.sql.*; public class JDBCExampleCreateTables { // JDBC driver name and database URL private static String JDBC_DRIVER = "org.h2.Driv

我一直在尝试将值保存到一个名为“CLIENT”的数据库中

数据库是通过以下代码创建的:

package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleCreateTables {
    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main (String[] args) {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(JDBC_DRIVER);

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Creating table in given database...");
            stmt = conn.createStatement();

            String sql = "CREATE TABLE CLIENT " +
                    "(ID INT UNSIGNED NOT NULL AUTO_INCREMENT, " + 
                    " fullNames VARCHAR(255), " + 
                    " iDNumber VARCHAR(255), " + 
                    " pINNumber VARCHAR(255), " + 
                    " passportNumber VARCHAR(255), " + 
                    " postOfficeBoxNumber VARCHAR(255), " + 
                    " postalCode VARCHAR(255), " + 
                    " telephoneNumberLandline VARCHAR(255), " + 
                    " telephoneNumberMobile VARCHAR(255), " + 
                    " CARD VARCHAR(255)) "; 

            stmt.executeUpdate(sql);
            System.out.println("Created table in given database...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            // Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            // finally block used to close resources
            try {
                if (stmt!=null)
                    conn.close();
            } catch(SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } // end finally try
        } // end try
        System.out.println("Goodbye!");
    } // end main
} // end
package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleCreateTables {
    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main (String[] args) {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(JDBC_DRIVER);

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Creating table in given database...");
            stmt = conn.createStatement();

            String sql = "CREATE TABLE CLIENT " +
                    "(ID INT UNSIGNED NOT NULL AUTO_INCREMENT, " + 
                    " fullNames VARCHAR(255), " + 
                    " iDNumber VARCHAR(255), " + 
                    " pINNumber VARCHAR(255), " + 
                    " passportNumber VARCHAR(255), " + 
                    " postOfficeBoxNumber VARCHAR(255), " + 
                    " postalCode VARCHAR(255), " + 
                    " telephoneNumberLandline VARCHAR(255), " + 
                    " telephoneNumberMobile VARCHAR(255)) "; 

            stmt.executeUpdate(sql);
            System.out.println("Created table in given database...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            // Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            // finally block used to close resources
            try {
                if (stmt!=null)
                    conn.close();
            } catch(SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } // end finally try
        } // end try
        System.out.println("Goodbye!");
    } // end main
} // end
我试图保存到数据库中的类是:

package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleInsertRecords {
    public final String values;
    public final String table;

    public JDBCExampleInsertRecords (String values, String table) 
    {
        this.values = values;
        this.table = table;
    }

    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main () {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(getJDBC_DRIVER());

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(getDB_URL(), getUSER(), getPASS());
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Inserting records into the table...");
            stmt = conn.createStatement();

            String sql = "INSERT INTO CLIENT " + "VALUES ((values))";
            stmt.executeUpdate(sql);

            System.out.println("Inserted records into the table...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            //Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            //finally block used to close resources
            try {
                if (stmt != null)
                    conn.close();
            } catch (SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } //end finally try
        } //end try

        System.out.println("Goodbye!");
    } //end main

    /**
     * @return the JDBC_DRIVER
     */
    public static String getJDBC_DRIVER() {
        return JDBC_DRIVER;
    }

    /**
     * @param aJDBC_DRIVER the JDBC_DRIVER to set
     */
    public static void setJDBC_DRIVER(String aJDBC_DRIVER) {
        JDBC_DRIVER = aJDBC_DRIVER;
    }

    /**
     * @return the DB_URL
     */
    public static String getDB_URL() {
        return DB_URL;
    }

    /**
     * @param aDB_URL the DB_URL to set
     */
    public static void setDB_URL(String aDB_URL) {
        DB_URL = aDB_URL;
    }

    /**
     * @return the USER
     */
    public static String getUSER() {
        return USER;
    }

    /**
     * @param aUSER the USER to set
     */
    public static void setUSER(String aUSER) {
        USER = aUSER;
    }

    /**
     * @return the PASS
     */
    public static String getPASS() {
        return PASS;
    }

    /**
     * @param aPASS the PASS to set
     */
    public static void setPASS(String aPASS) {
        PASS = aPASS;
    }
} //end
package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleInsertRecords {
    public static String values;
    public final String table;

    public JDBCExampleInsertRecords (String values, String table) 
    {
        this.values = values;
        this.table = table;
    }

    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main () {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(getJDBC_DRIVER());

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(getDB_URL(), getUSER(), getPASS());
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Inserting records into the table...");
            stmt = conn.createStatement();

            String sql = "INSERT INTO CLIENT VALUES (NULL, " + (values) + ")";

            stmt.executeUpdate(sql);

            System.out.println("Inserted records into the table...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            //Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            //finally block used to close resources
            try {
                if (stmt != null)
                    conn.close();
            } catch (SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } //end finally try
        } //end try

        System.out.println("Goodbye!");
    } //end main

    /**
     * @return the JDBC_DRIVER
     */
    public static String getJDBC_DRIVER() {
        return JDBC_DRIVER;
    }

    /**
     * @param aJDBC_DRIVER the JDBC_DRIVER to set
     */
    public static void setJDBC_DRIVER(String aJDBC_DRIVER) {
        JDBC_DRIVER = aJDBC_DRIVER;
    }

    /**
     * @return the DB_URL
     */
    public static String getDB_URL() {
        return DB_URL;
    }

    /**
     * @param aDB_URL the DB_URL to set
     */
    public static void setDB_URL(String aDB_URL) {
        DB_URL = aDB_URL;
    }

    /**
     * @return the USER
     */
    public static String getUSER() {
        return USER;
    }

    /**
     * @param aUSER the USER to set
     */
    public static void setUSER(String aUSER) {
        USER = aUSER;
    }

    /**
     * @return the PASS
     */
    public static String getPASS() {
        return PASS;
    }

    /**
     * @param aPASS the PASS to set
     */
    public static void setPASS(String aPASS) {
        PASS = aPASS;
    }
} //end
获取值的代码位于名为“AddNewClient”的类中,如下所示:

    public String getValues () {
    String fullNames = fullNamesJTextField.getText();
    String iDNumber = identificationNumberJTextField.getText();
    String pINNumber = pINNumberJTextField.getText();
    String passportNumber = passportNumberJTextField.getText();
    String postOfficeBoxNumber = postOfficeBoxNumberJTextField.getText();
    String postalCode = postalCodeJTextField.getText();
    String telephoneNumberLandline = telephoneNumberLandlineJTextField.getText();
    String telephoneNumberMobile = telephoneNumberMobileJTextField.getText();

    List<String> client = new ArrayList<String>();

    client.add(fullNames);
    client.add(iDNumber);
    client.add(pINNumber);
    client.add(passportNumber);
    client.add(postOfficeBoxNumber);
    client.add(postalCode);
    client.add(telephoneNumberLandline);
    client.add(telephoneNumberMobile);

    StringBuilder builder = new StringBuilder();
    String listStringClient = "";

    for (String s : client)
    {
        listStringClient += "NULL" + "'" + s + "'" + ",";
    }

    return listStringClient;
}
    public String getValues () {
    String fullNames = fullNamesJTextField.getText();
    String iDNumber = identificationNumberJTextField.getText();
    String pINNumber = pINNumberJTextField.getText();
    String passportNumber = passportNumberJTextField.getText();
    String postOfficeBoxNumber = postOfficeBoxNumberJTextField.getText();
    String postalCode = postalCodeJTextField.getText();
    String telephoneNumberLandline = telephoneNumberLandlineJTextField.getText();
    String telephoneNumberMobile = telephoneNumberMobileJTextField.getText();

    List<String> client = new ArrayList<String>();

    client.add(fullNames);
    client.add(iDNumber);
    client.add(pINNumber);
    client.add(passportNumber);
    client.add(postOfficeBoxNumber);
    client.add(postalCode);
    client.add(telephoneNumberLandline);
    client.add(telephoneNumberMobile);

    Iterator<String> iter = client.iterator();
    StringBuilder sb = new StringBuilder();

    while (iter.hasNext()) {
        sb.append("'").append(iter.next()).append("'");
        if (iter.hasNext())
            sb.append(",");
    }

    return sb.toString();
    }

在过去的两天里,我一直在做这件事,但没有取得任何成功。我会非常非常非常感谢任何来救我的人。谢谢。

您的声明中没有传递任何值。以下代码是静态的,没有参数:

INSERT INTO CLIENT " + "VALUES ((values))
这是一个无意义的SQL命令:插入到客户机值((值))。你想要快车

String sql = "INSERT INTO CLIENT VALUES " + getValues()";
我更喜欢使用PreparedStatement,因为它是安全的,并且可以避开危险字符:

String sql = "INSERT INTO PRODUCT VALUES(?,?,?,?,?,?,?,?,?,?)";
PreparedStatement prest = con.prepareStatement(sql);
prest.setString(1, "asdf");
prest.setInt(2, 2009);
// etc
int count = prest.executeUpdate();

在语句中不传递任何值。以下代码是静态的,没有参数:

INSERT INTO CLIENT " + "VALUES ((values))
这是一个无意义的SQL命令:插入到客户机值((值))。你想要快车

String sql = "INSERT INTO CLIENT VALUES " + getValues()";
我更喜欢使用PreparedStatement,因为它是安全的,并且可以避开危险字符:

String sql = "INSERT INTO PRODUCT VALUES(?,?,?,?,?,?,?,?,?,?)";
PreparedStatement prest = con.prepareStatement(sql);
prest.setString(1, "asdf");
prest.setInt(2, 2009);
// etc
int count = prest.executeUpdate();

您忘记提到
列的值。如果您不想在那里设置任何值,只需传递
'

您的
for
循环应该是这样的

for (String s : client)
{
    listStringClient += "NULL" + "'" + s + "'" + ",";//GIVES YOU ERROR BECAUSE AT THE END OF
}                                               // FOR LOOP IT HAS , IN THE END OF STRING.
 listStringClient+="' '";//This is for CARD COLUMN.

您忘记提到
列的值。如果您不想在那里设置任何值,只需传递
'

您的
for
循环应该是这样的

for (String s : client)
{
    listStringClient += "NULL" + "'" + s + "'" + ",";//GIVES YOU ERROR BECAUSE AT THE END OF
}                                               // FOR LOOP IT HAS , IN THE END OF STRING.
 listStringClient+="' '";//This is for CARD COLUMN.
我认为不是:

String sql = "INSERT INTO CLIENT " + "VALUES ((values))";
你想要的是:

String sql = "INSERT INTO CLIENT " + "VALUES ("+getValues()+")";
另外,
getValues
的实现有点奇怪:

for (String s : client)
{
    listStringClient += "NULL" + "'" + s + "'" + ",";
}
可能是:

for (String s : client)
{
    listStringClient += "'" + s + "',"
}
listStringClient += "NULL";
我认为不是:

String sql = "INSERT INTO CLIENT " + "VALUES ((values))";
你想要的是:

String sql = "INSERT INTO CLIENT " + "VALUES ("+getValues()+")";
另外,
getValues
的实现有点奇怪:

for (String s : client)
{
    listStringClient += "NULL" + "'" + s + "'" + ",";
}
可能是:

for (String s : client)
{
    listStringClient += "'" + s + "',"
}
listStringClient += "NULL";

其中一个问题是:

String sql = "INSERT INTO CLIENT " + "VALUES ((values))";
stmt.executeUpdate(sql);
值应该是getValues()方法,而不仅仅是字符串,所以

String sql = "INSERT INTO CLIENT VALUES (" + getValues() + ")";
此外,由于未指定哪些列,因此假定所有列都输入到值中。若您的SQL数据库中并没有默认值,并且该值不能为NULL,那个么您将遇到问题

最后,这有点奇怪:

for (String s : client)
{
    listStringClient += "NULL" + "'" + s + "'" + ",";
}
您需要的是值,而不是“NULL”,所以应该是

for (String s : client)
{
    listStringClient += "'" + s + "'" + ",";
}
最后,按照您的操作方式,在结尾处会有一个额外的逗号(例如:“value1”、“value2”、“value3”)

剪辑最后一个逗号:

return listStringClient.substring(0, listStringClient.size() - 1);
当然,有一种更好的方法可以在没有多余逗号的情况下执行for循环

结束结束时,sql字符串应如下所示:

"INSERT INTO CLIENT VALUES('value1','value2','value3','value4','value5','value6')"
执行System.out.println(sql)并查看您试图执行的字符串语句是什么。然后您将看到错误

这里有一个更好的方法来构建您的值字符串,而不存在逗号问题:

Iterator<String> iter = client.iterator();
StringBuilder sb = new StringBuilder();

while (iter.hasNext()) {
    sb.append("'").append(iter.next()).append("'");
    if (iter.hasNext())
        sb.append(",");
}
return sb.toString();
Iterator iter=client.Iterator();
StringBuilder sb=新的StringBuilder();
while(iter.hasNext()){
sb.append(“”).append(iter.next()).append(“”);
if(iter.hasNext())
某人加上(“,”);
}
使某人返回字符串();

这就是问题所在:

String sql = "INSERT INTO CLIENT " + "VALUES ((values))";
stmt.executeUpdate(sql);
值应该是getValues()方法,而不仅仅是字符串,所以

String sql = "INSERT INTO CLIENT VALUES (" + getValues() + ")";
此外,由于未指定哪些列,因此假定所有列都输入到值中。若您的SQL数据库中并没有默认值,并且该值不能为NULL,那个么您将遇到问题

最后,这有点奇怪:

for (String s : client)
{
    listStringClient += "NULL" + "'" + s + "'" + ",";
}
您需要的是值,而不是“NULL”,所以应该是

for (String s : client)
{
    listStringClient += "'" + s + "'" + ",";
}
最后,按照您的操作方式,在结尾处会有一个额外的逗号(例如:“value1”、“value2”、“value3”)

剪辑最后一个逗号:

return listStringClient.substring(0, listStringClient.size() - 1);
当然,有一种更好的方法可以在没有多余逗号的情况下执行for循环

结束结束时,sql字符串应如下所示:

"INSERT INTO CLIENT VALUES('value1','value2','value3','value4','value5','value6')"
执行System.out.println(sql)并查看您试图执行的字符串语句是什么。然后您将看到错误

这里有一个更好的方法来构建您的值字符串,而不存在逗号问题:

Iterator<String> iter = client.iterator();
StringBuilder sb = new StringBuilder();

while (iter.hasNext()) {
    sb.append("'").append(iter.next()).append("'");
    if (iter.hasNext())
        sb.append(",");
}
return sb.toString();
Iterator iter=client.Iterator();
StringBuilder sb=新的StringBuilder();
while(iter.hasNext()){
sb.append(“”).append(iter.next()).append(“”);
if(iter.hasNext())
某人加上(“,”);
}
使某人返回字符串();

我非常感谢你们给了我如此惊人的答案。我提出了各种各样的想法,并想出了解决我问题的办法

我对上述问题的工作答案来自Leos Literak、abmitchell、Vimal Bera和Grisha的答案

数据库是通过以下代码创建的:

package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleCreateTables {
    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main (String[] args) {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(JDBC_DRIVER);

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Creating table in given database...");
            stmt = conn.createStatement();

            String sql = "CREATE TABLE CLIENT " +
                    "(ID INT UNSIGNED NOT NULL AUTO_INCREMENT, " + 
                    " fullNames VARCHAR(255), " + 
                    " iDNumber VARCHAR(255), " + 
                    " pINNumber VARCHAR(255), " + 
                    " passportNumber VARCHAR(255), " + 
                    " postOfficeBoxNumber VARCHAR(255), " + 
                    " postalCode VARCHAR(255), " + 
                    " telephoneNumberLandline VARCHAR(255), " + 
                    " telephoneNumberMobile VARCHAR(255), " + 
                    " CARD VARCHAR(255)) "; 

            stmt.executeUpdate(sql);
            System.out.println("Created table in given database...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            // Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            // finally block used to close resources
            try {
                if (stmt!=null)
                    conn.close();
            } catch(SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } // end finally try
        } // end try
        System.out.println("Goodbye!");
    } // end main
} // end
package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleCreateTables {
    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main (String[] args) {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(JDBC_DRIVER);

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Creating table in given database...");
            stmt = conn.createStatement();

            String sql = "CREATE TABLE CLIENT " +
                    "(ID INT UNSIGNED NOT NULL AUTO_INCREMENT, " + 
                    " fullNames VARCHAR(255), " + 
                    " iDNumber VARCHAR(255), " + 
                    " pINNumber VARCHAR(255), " + 
                    " passportNumber VARCHAR(255), " + 
                    " postOfficeBoxNumber VARCHAR(255), " + 
                    " postalCode VARCHAR(255), " + 
                    " telephoneNumberLandline VARCHAR(255), " + 
                    " telephoneNumberMobile VARCHAR(255)) "; 

            stmt.executeUpdate(sql);
            System.out.println("Created table in given database...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            // Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            // finally block used to close resources
            try {
                if (stmt!=null)
                    conn.close();
            } catch(SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } // end finally try
        } // end try
        System.out.println("Goodbye!");
    } // end main
} // end
保存到数据库中的类是:

package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleInsertRecords {
    public final String values;
    public final String table;

    public JDBCExampleInsertRecords (String values, String table) 
    {
        this.values = values;
        this.table = table;
    }

    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main () {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(getJDBC_DRIVER());

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(getDB_URL(), getUSER(), getPASS());
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Inserting records into the table...");
            stmt = conn.createStatement();

            String sql = "INSERT INTO CLIENT " + "VALUES ((values))";
            stmt.executeUpdate(sql);

            System.out.println("Inserted records into the table...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            //Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            //finally block used to close resources
            try {
                if (stmt != null)
                    conn.close();
            } catch (SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } //end finally try
        } //end try

        System.out.println("Goodbye!");
    } //end main

    /**
     * @return the JDBC_DRIVER
     */
    public static String getJDBC_DRIVER() {
        return JDBC_DRIVER;
    }

    /**
     * @param aJDBC_DRIVER the JDBC_DRIVER to set
     */
    public static void setJDBC_DRIVER(String aJDBC_DRIVER) {
        JDBC_DRIVER = aJDBC_DRIVER;
    }

    /**
     * @return the DB_URL
     */
    public static String getDB_URL() {
        return DB_URL;
    }

    /**
     * @param aDB_URL the DB_URL to set
     */
    public static void setDB_URL(String aDB_URL) {
        DB_URL = aDB_URL;
    }

    /**
     * @return the USER
     */
    public static String getUSER() {
        return USER;
    }

    /**
     * @param aUSER the USER to set
     */
    public static void setUSER(String aUSER) {
        USER = aUSER;
    }

    /**
     * @return the PASS
     */
    public static String getPASS() {
        return PASS;
    }

    /**
     * @param aPASS the PASS to set
     */
    public static void setPASS(String aPASS) {
        PASS = aPASS;
    }
} //end
package Database;

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExampleInsertRecords {
    public static String values;
    public final String table;

    public JDBCExampleInsertRecords (String values, String table) 
    {
        this.values = values;
        this.table = table;
    }

    // JDBC driver name and database URL
    private static String JDBC_DRIVER = "org.h2.Driver";
    private static String DB_URL = "jdbc:h2:file:C:/WAKILI/WAKILIdb";

    //  Database credentials
    private static String USER = "sa";
    private static String PASS = "";

    public static void main () {
        Connection conn = null;
        Statement stmt = null;

        try {
            //STEP 2: Register JDBC driver
            Class.forName(getJDBC_DRIVER());

            //STEP 3: Open a connection
            System.out.println("Connecting to a selected database...");
            conn = DriverManager.getConnection(getDB_URL(), getUSER(), getPASS());
            System.out.println("Connected database successfully...");

            //STEP 4: Execute a query
            System.out.println("Inserting records into the table...");
            stmt = conn.createStatement();

            String sql = "INSERT INTO CLIENT VALUES (NULL, " + (values) + ")";

            stmt.executeUpdate(sql);

            System.out.println("Inserted records into the table...");

        } catch (SQLException se) {
            //Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            //Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            //finally block used to close resources
            try {
                if (stmt != null)
                    conn.close();
            } catch (SQLException se) {
            } // do nothing
            try {
                if (conn!=null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } //end finally try
        } //end try

        System.out.println("Goodbye!");
    } //end main

    /**
     * @return the JDBC_DRIVER
     */
    public static String getJDBC_DRIVER() {
        return JDBC_DRIVER;
    }

    /**
     * @param aJDBC_DRIVER the JDBC_DRIVER to set
     */
    public static void setJDBC_DRIVER(String aJDBC_DRIVER) {
        JDBC_DRIVER = aJDBC_DRIVER;
    }

    /**
     * @return the DB_URL
     */
    public static String getDB_URL() {
        return DB_URL;
    }

    /**
     * @param aDB_URL the DB_URL to set
     */
    public static void setDB_URL(String aDB_URL) {
        DB_URL = aDB_URL;
    }

    /**
     * @return the USER
     */
    public static String getUSER() {
        return USER;
    }

    /**
     * @param aUSER the USER to set
     */
    public static void setUSER(String aUSER) {
        USER = aUSER;
    }

    /**
     * @return the PASS
     */
    public static String getPASS() {
        return PASS;
    }

    /**
     * @param aPASS the PASS to set
     */
    public static void setPASS(String aPASS) {
        PASS = aPASS;
    }
} //end
获取值的代码位于名为“AddNewClient”的类中,如下所示:

    public String getValues () {
    String fullNames = fullNamesJTextField.getText();
    String iDNumber = identificationNumberJTextField.getText();
    String pINNumber = pINNumberJTextField.getText();
    String passportNumber = passportNumberJTextField.getText();
    String postOfficeBoxNumber = postOfficeBoxNumberJTextField.getText();
    String postalCode = postalCodeJTextField.getText();
    String telephoneNumberLandline = telephoneNumberLandlineJTextField.getText();
    String telephoneNumberMobile = telephoneNumberMobileJTextField.getText();

    List<String> client = new ArrayList<String>();

    client.add(fullNames);
    client.add(iDNumber);
    client.add(pINNumber);
    client.add(passportNumber);
    client.add(postOfficeBoxNumber);
    client.add(postalCode);
    client.add(telephoneNumberLandline);
    client.add(telephoneNumberMobile);

    StringBuilder builder = new StringBuilder();
    String listStringClient = "";

    for (String s : client)
    {
        listStringClient += "NULL" + "'" + s + "'" + ",";
    }

    return listStringClient;
}
    public String getValues () {
    String fullNames = fullNamesJTextField.getText();
    String iDNumber = identificationNumberJTextField.getText();
    String pINNumber = pINNumberJTextField.getText();
    String passportNumber = passportNumberJTextField.getText();
    String postOfficeBoxNumber = postOfficeBoxNumberJTextField.getText();
    String postalCode = postalCodeJTextField.getText();
    String telephoneNumberLandline = telephoneNumberLandlineJTextField.getText();
    String telephoneNumberMobile = telephoneNumberMobileJTextField.getText();

    List<String> client = new ArrayList<String>();

    client.add(fullNames);
    client.add(iDNumber);
    client.add(pINNumber);
    client.add(passportNumber);
    client.add(postOfficeBoxNumber);
    client.add(postalCode);
    client.add(telephoneNumberLandline);
    client.add(telephoneNumberMobile);

    Iterator<String> iter = client.iterator();
    StringBuilder sb = new StringBuilder();

    while (iter.hasNext()) {
        sb.append("'").append(iter.next()).append("'");
        if (iter.hasNext())
            sb.append(",");
    }

    return sb.toString();
    }
publicstringgetvalues(){
字符串fullNames=fullNamesJTextField.getText();
字符串iDNumber=identificationNumberJTextField.getText();
字符串pINNumber=pINNumberJTextField.getText();
字符串passportNumber=passportNumberJTextField.getText();
字符串postOfficeBoxNumber=postOfficeBoxNumberJTextField.getText();
字符串postalCode=postalCodeJTextField.getText();
字符串telephoneNumberLandline=telephoneNumberLandlineJTextField.getText();
字符串telephoneNumberMobile=telephoneNumberMobileJTextField.getText();
List client=new ArrayList();
client.add(全名);
client.add(iDNumber);
client.add(pINNumber);
添加(护照号码);
client.add(邮局信箱号);
客户端。添加(postalCode);
client.add(电话号码landline);
client.add(电话号码移动);
迭代器iter=client.Iterator();
StringBuilder sb=新的StringBuilder();
while(iter.hasNext()){
sb.append(“”).append(iter.next()).append(“”);
if(iter.hasNext())
某人加上(“,”);
}
使某人返回字符串();
}

我非常感谢你们给了我如此惊人的答案。我提出了各种各样的想法,并想出了解决我问题的办法

我的工作