员工是另一类中列出的对象。它具有字段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