Java 方法preparestatement(字符串)是未定义的错误

Java 方法preparestatement(字符串)是未定义的错误,java,eclipse,prepared-statement,Java,Eclipse,Prepared Statement,以下是我的servlet: import java.io.IOException; import java.sql.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet

以下是我的servlet:

import java.io.IOException;
import java.sql.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import connection.Connection;

@WebServlet("/Check")
public class Check extends HttpServlet {
private static final long serialVersionUID = 1L;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
}

Connection con;
//PreparedStatement pstmt=con.prepareStatement("Insert into account_master(name,acct_opn_date,cif_id,address) values(?,?,?,?)");
PreparedStatement pstmt= con.prepareStatement("Insert into account_master(name,acct_opn_date,cif_id,address) values(?,?,?,?)");
}
在最后一句话中,我在Eclipse中遇到了错误

**这条线上有多个标记

  • 观察点:检查[访问和修改]-pstmt
  • 类型的方法prepareStatement(String)未定义 联系**
以下是我的连接类:

package connection;
import java.sql.*;

public class Connection {

public static void main(String args[])
{
    String username="system";
    String password="root";
try{

    Class.forName("oracle.jdbc.driver.OracleDriver");
    try {
          DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE",username,password);
        //DriverManager.getConnection("jdbc:oracle:thin:system/root@localhost:1521:XE");
    } catch (SQLException e) {

        System.err.println("Problem in connection");
        e.printStackTrace();
    }
}
catch(ClassNotFoundException ex)
{
    System.err.println("Error loading driver");
}
}

}

您混淆了JDBC连接类和您自己的连接类

您可以将连接类重命名为ConnectionBuilder类:

public class ConnectionBuilder {
    String username="system";
    String password="root";

    public static Connection buildConnection () {
        try{
           Class.forName("oracle.jdbc.driver.OracleDriver");
           try {
               return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE",username,password);
           } catch (SQLException e) {
               System.err.println("Problem in connection");
               e.printStackTrace();
                return null; // better throw an exception
           }
        } catch(ClassNotFoundException ex) {
            System.err.println("Error loading driver");
            return null; // better throw an exception
        }
    }
}
您的Check类应使用以下方法:

PreparedStatement pstmt = ConnectionBuilder.buildConnection().prepareStatement(...);

在你的
连接
类中没有方法
prepareStatement
,这不是很明显吗?