Я просто хочу знать, действительно ли необходимо в моем Java-приложении вызывать getConnection / closeConnection каждый раз, когда я хочу вставить в базу данных, или я могу аутентифицировать User / Pass в начале приложения и никогда не вызывать Соединение снова?
//Conn class
private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";
private static final String USER = "hr";
private static final String PASS = "hr";
//Connect
public static Connection getConnection(){
try {
Class.forName(DRIVER);
return DriverManager.getConnection(URL, USER, PASS);
} catch (ClassNotFoundException | SQLException ex) {
throw new RuntimeException("Error: RuntimeException",ex);
}
}
//Close
public static void closeConnection(Connection con){
try {
if(con!=null){
con.close();
}
} catch (SQLException ex) {
Logger.getLogger(ConnectionAcademia.class.getName()).log(Level.SEVERE, null, ex);
}
}
//DAO Class
//Insert product
public void createProduct(Product p){
Connection con = ConnectionGym.getConnection();
PreparedStatement stmt = null;
try {
stmt = con.prepareStatement("INSERT INTO tb_product(key_product, name, price, status) "
+ "VALUES(?,?,?,?)");
stmt.setInt(1, p.getKey_Product());
stmt.setString(2, p.getName());
stmt.setDouble(4, p.getPrice());
stmt.setBoolean(6, p.getStatus());
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Success!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Error: " + ex);
} finally{
ConnectionAcademia.closeConnection(con, stmt);
}
}