員工是另一類中列出的對象。它具有字段name
,department
和experience
。我使用主要方法創建一個Swing對象,接受任何新員工,然後調用addEmployees
類。Java JDBC在寫入數據庫的方法中避免冗餘代碼?
什麼如果我想在這個類中調用數據庫創建更多的方法?我需要創建一個try/catch
,設置變量'連接器',整個過程再次? 如果我想在同一個類中創建一個只設置name
和department
的方法,該怎麼辦?我是否需要添加冗餘代碼?
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
公共類AddEmployees {
public String addEmployee(String name, String department, int experience){
Connection connector = null;
PreparedStatement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// Load a connection to my DB
String url = "jdbc:mysql://localhost:3306/myjobsite";
connector = DriverManager.getConnection(url, "golden", "password");
String sql="INSERT INTO employees(name,department,experience) values(?,?,?)";
stmt = connector.prepareStatement(sql);
stmt.setString(1, name);
stmt.setString(2, department);
stmt.setInt(3, experience);
stmt.execute(); //run sql
} catch (SQLException e) {
// TODO Auto-generated catch block
return "Connection Failure";
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "Executed sql";
}
}
我認爲這個問題可能是不夠具體,得到SO一個很好的答案。通常,您可以在程序啓動時打開一次連接,然後將連接傳遞給'addEmployees'或您編寫的任何其他數據庫訪問方法。 – cxw
共享應用程序中的一個連接不是一個好主意。更好的解決方案是使用連接池,將連接傳遞給每個方法,並在儘可能最窄的範圍內使用它。 – duffymo