我正在尝试使用不同 class 中的方法,但它会产生错误
I am trying to use a method which is in different class but it generates an error
这里是主要的 class,我想在其中使用 insertData()
方法。此方法来自不同的 class InsertOperation
,两个 class 都在同一个包中,但我仍然无法使用该方法。
我是 java 的新手,我仍在努力掌握这一切。
package crudoperations;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.*;
public class CRUDOperations {
/*
private static final String CREATE_TABLE = "CREATE TABLE employee "
+ "(" + "user_id INT(100) NOT NULL PRIMARY KEY," +
"first_name VARCHAR(100)," +
"last_name VARCHAR(100)," +
"contact_number INT(10)," +
"email_id VARCHAR(100))";
*/
public static void main(String[] args) throws SQLException {
Connection con = null;
PreparedStatement stmt = nulll;
try{
con = // File enter code here Connection.getConnection();
InsertOperation iop = InsertOperation(); //Showing error in this line
iop.insertData();
//System.out.println("Connected");
//stmt = con.prepareStatement(CREATE_TABLE);
//stmt.executeUpdate();
//System.out.println("Table Created");
}
catch(SQLException e){
System.err.print(e);
}
finally{
if(con != null){
con.close();
}
}
}
}
这是 InsertOperation 的代码 class:
package crudoperations;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class InsertOperation {
public void insertData() throws SQLException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the First Name: ");
String user_firstname = sc.next();
System.out.println("Enter the Last Name: ");
String user_lastname = sc.next();
System.out.println("Enter the Contact Number: ");
String user_contact = sc.next();
System.out.println("Enter the Email ID: ");
String user_email = sc.next();
Connection con = null;
con = FileConnection.getConnection();
PreparedStatement pst = con.prepareStatement(
"INSERT INTO employees "
+ " (user_id, first_name, last_name, contact_number, email_id)"
+ " VALUES (?,?,?,?)");
pst.setString(2, user_firstname);
pst.setString(3, user_lastname);
pst.setString(4, user_contact);
pst.setString(5, user_email);
int i = pst.executeUpdate();
if(i != 0){
System.out.print("success");
}
else{
System.out.print("error");
}
}
}
这是错误:
error: cannot find symbol
InsertOperation iop = InsertOperation();
symbol: method InsertOperation()
location: class CRUDOperations
对象创建缺少“new”关键字。
```
InsertOperation iop = InsertOperation(); //Showing error in this line
```
应该是
InsertOperation iop = new InsertOperation();
要访问实例方法需要创建实例
InsertOperation iop = new InsertOperation();
我想你可能忘记了这里的新关键词。
否则,您可以在如下声明 insertData() 方法时使用静态关键字。
public static void insertData() throws SQLException
然后访问只调用方法名称的方法。
Ex: insertData();
这里是主要的 class,我想在其中使用 insertData()
方法。此方法来自不同的 class InsertOperation
,两个 class 都在同一个包中,但我仍然无法使用该方法。
我是 java 的新手,我仍在努力掌握这一切。
package crudoperations;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.*;
public class CRUDOperations {
/*
private static final String CREATE_TABLE = "CREATE TABLE employee "
+ "(" + "user_id INT(100) NOT NULL PRIMARY KEY," +
"first_name VARCHAR(100)," +
"last_name VARCHAR(100)," +
"contact_number INT(10)," +
"email_id VARCHAR(100))";
*/
public static void main(String[] args) throws SQLException {
Connection con = null;
PreparedStatement stmt = nulll;
try{
con = // File enter code here Connection.getConnection();
InsertOperation iop = InsertOperation(); //Showing error in this line
iop.insertData();
//System.out.println("Connected");
//stmt = con.prepareStatement(CREATE_TABLE);
//stmt.executeUpdate();
//System.out.println("Table Created");
}
catch(SQLException e){
System.err.print(e);
}
finally{
if(con != null){
con.close();
}
}
}
}
这是 InsertOperation 的代码 class:
package crudoperations;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class InsertOperation {
public void insertData() throws SQLException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the First Name: ");
String user_firstname = sc.next();
System.out.println("Enter the Last Name: ");
String user_lastname = sc.next();
System.out.println("Enter the Contact Number: ");
String user_contact = sc.next();
System.out.println("Enter the Email ID: ");
String user_email = sc.next();
Connection con = null;
con = FileConnection.getConnection();
PreparedStatement pst = con.prepareStatement(
"INSERT INTO employees "
+ " (user_id, first_name, last_name, contact_number, email_id)"
+ " VALUES (?,?,?,?)");
pst.setString(2, user_firstname);
pst.setString(3, user_lastname);
pst.setString(4, user_contact);
pst.setString(5, user_email);
int i = pst.executeUpdate();
if(i != 0){
System.out.print("success");
}
else{
System.out.print("error");
}
}
}
这是错误:
error: cannot find symbol
InsertOperation iop = InsertOperation();
symbol: method InsertOperation()
location: class CRUDOperations
对象创建缺少“new”关键字。
```
InsertOperation iop = InsertOperation(); //Showing error in this line
```
应该是
InsertOperation iop = new InsertOperation();
要访问实例方法需要创建实例
InsertOperation iop = new InsertOperation();
我想你可能忘记了这里的新关键词。
否则,您可以在如下声明 insertData() 方法时使用静态关键字。
public static void insertData() throws SQLException
然后访问只调用方法名称的方法。
Ex: insertData();