gpt4 book ai didi

java - 重构 JDBC 函数

转载 作者:行者123 更新时间:2023-11-29 03:43:08 26 4
gpt4 key购买 nike

我正在尝试创建一个简单的网络应用程序,将用户数据从表单保存到数据库,并根据请求将数据库的内容读回浏览器。以下是我到目前为止编写的函数。

connectToDB()            // connects to database
addEmployee() // adds employee to database
displayEmployee() // returns a resultSet
isExisted(int staffID) // checks if the staff already exists

数据库连接函数:

public void connectToDB(){
try{
// load Apache derby driver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
} catch(ClassNotFoundException e) {
System.err.println(e);
}

try{
connection = DriverManager.getConnection(DBNAME, USERNAME, PASSWORD);
} catch(SQLException e){
System.err.println(e);
}
} // end connectToDB

显示员工功能:

public ResultSet displayEmployee(){
connectToDB();
ResultSet result = null;

try{
Statement stmt = connection.createStatement();
String query = "SELECT * FROM APP.ADDRESSBOOK";
result = stmt.executeQuery(query);

} catch(SQLException e) {
System.err.println(e);
}

return result;

}

检查员工是否存在:

public boolean isExisted(int StaffID){
connectToDB();
try{
Statement stmt = connection.createStatement();
String query = "SELECT StaffNum FROM APP.ADDRESSBOOK WHERE StaffNum = " + staff_number;
ResultSet result = stmt.executeQuery(query);

while(result.next()){
int temp = result.getInt(1);
if(temp == staff_number){return true;}
}
} catch(SQLException e) {
System.err.println(e);
}
return false;
}

如您所见,如果您比较 displayEmployee()isExisted(),我会重复我自己。这两个函数都有效,但我希望重构代码。在那些功能中我没有关闭连接。如果 Web 应用程序中有 20 个函数连接到数据库,我的代码就会很糟糕。

我看起来像这样:* 此代码不起作用 ******

private Statement queryDB(query){
connectToDB();

Statement stmt;
try{
stmt = connection.createStatement();

} catch(SQLException e) {
System.err.println(e);
}
return stmt;

// code for closing connection
}

public ResultSet DisplayEmployee(){
String query = "SELECT * FROM APP.ADDRESSBOOK";
Statement stmt = queryDB(query);
ResultSet result = stmt.executeQuery(query);
return result;
}

谢谢。

最佳答案

使用原始 JDBC 会产生很多难看的样板代码。一种解决方案是使用 Spring JDBC Template .

此外,您将获得 sql 异常层次结构,它将自动管理底层 JDBC 异常作为运行时异常。

更多请看:

Introduction to Spring Framework JDBC

关于java - 重构 JDBC 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com