使用另一个类java.language.String中的方法

时间:2012-11-01 10:19:47

标签: java ms-access methods

我有两节课:

MAIN DBCONNECT

DBCONNECT 包含所有编码,包括将连接,插入和更新数据库/表的方法。

MAIN 是创建GUI并使用DBCONNECT类的地方。

在我的DBCONNECT类中,我创建了一个将输入信息写入表的方法。

String sqlInsert1 = "INSERT INTO Drivers (IDNumber, FirstName, LastName) VALUES " + Id +"," + FirstName+"," + Surname;
String sqlInsert2 = "INSERT INTO Offences(IDNumber, SpeedLimit, DriverSpeed, SeatBelt, DrunkenDriving, DriversLicense) VALUES" + Id + SpeedLimit + DriversSpeed + Seatbelt + DrunkenDriving + License;
String sqlInsert3 = "INSERT INTO DriverPoints(IDNumber, Points) VALUES" + Id + Points;

 public void writeToDB(String sqlInsert1, String sqlInsert2, String sqlInsert3)
    {
        try
        {
            Statement st = conn.createStatement();
            st.executeUpdate(sqlInsert1);
            st.executeUpdate(sqlInsert2);
            st.executeUpdate(sqlInsert3);
        }
        catch(Exception e)
        {
            JOptionPane.showMessageDialog(null, "Error: Could not read from database");
        }
    }

在我的MAIN课程中,我想在点击 保存 按钮时使用此方法

public void actionPerformed(ActionEvent ae)
{
    if (ae.equals(save))
    {
        database.writeToDB();
    }
}

它一直给我一个错误

required:java.language.String,java.language.String,java.language.String

请告诉我这里的错误。

2 个答案:

答案 0 :(得分:3)

你需要这样写:

public void actionPerformed(ActionEvent ae)
{
    if (ae.equals(save))
    {
        String sqlInsert1 = "INSERT INTO Drivers (IDNumber, FirstName, LastName) VALUES " + Id +"," + FirstName+"," + Surname;
        String sqlInsert2 = "INSERT INTO Offences(IDNumber, SpeedLimit, DriverSpeed, SeatBelt, DrunkenDriving, DriversLicense) VALUES" + Id + SpeedLimit + DriversSpeed + Seatbelt + DrunkenDriving + License;
        String sqlInsert3 = "INSERT INTO DriverPoints(IDNumber, Points) VALUES" + Id + Points;

        database.writeToDB(sqlInsert1,sqlInsert2,sqlInsert3);
    }

这是因为您的方法writeToDB接受了三个String参数,并且在您的代码中调用它时没有给出任何参数。

您在writeToDb方法之前创建的字符串变量与在writeToDB方法中声明为参数的变量不同。

请查看此问题以了解difference between arguments and parameters

答案 1 :(得分:0)

从我的理解

没有确切的函数调用writeToDB();因为writeToDB()是用参数定义的,但是在函数调用中使用了空参数。

而不是这个

   database.writeToDB();

应该使用这样的东西,使用这些变量并在actionPerformed()

中初始化
   database..writeToDB(sqlInsert1,sqlInsert2,sqlInsert3);

你也错过了值

之后的insert语句中的括号

示例:

   sqlINsert1="INSERT INTO Tablename(ID, StreetName, City)Values(,))";