1
在这里,我有一个类的返回连接,并试图访问另一个类中的连接对象,我正在编写我准备好的语句来执行查询和更新表。请提出是否它是正确的方式,如果不是发布您的意见。 由于事先想要访问另一个类的连接对象
连接类
public class dbConnection {
public Connection dbconnect()
{
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "gup";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "";
try{
Class.forName(driver);
conn = DriverManager.getConnection(url + db, user, pass);
if(conn == null){
System.out.println("Connection is not established");
}
return conn ;
}
catch(Exception e)
{
System.out.println(e);
}
return null ;
}
}
预处理语句类中插入数据
public class InsertingData {
public void insertfile(String fpath,String fname,String fext)
{
PreparedStatement pstmt = null;
// Connection conn = null ;
dbConnection dbcon = new dbConnection();
pstmt = (PreparedStatement) dbcon.dbconnect();
//Create the statement object
String sql = "insert into FileDetails (folder_path,file_name,file_extension)" + "values (?,?,?)";
try
{
//ResultSet rs = pstmt.executeQuery(sql);
pstmt.setString(1, fpath);
pstmt.setString(2, fname);
pstmt.setString(3, fext);
pstmt.executeQuery(sql);
}
catch(SQLException se)
{
System.out.println(se);
}
}
}
您有什么问题,看到了什么?错误信息?堆栈跟踪? 'pstmt =(PreparedStatement)dbcon.dbconnect();'不会工作,因为您不能将'dbconnect()'返回的'Connection'转换为'PreparedStatement'。你用'prepareStatement()'从连接对象中获得'PreparedStatement',而不是通过强制转换。 –
错误是com.mysql.jdbc.Connection无法转换为java.sql.PreparedStatement。 好的,那么如何在这些类中使用连接对象。 – satya
通过阅读Connection的javadoc来发现可以调用的方法以及它们的作用。 Jim Garrison已经告诉过你connection.prepareStatement()。阅读javadoc。 http://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html –