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 –