使用DAO访问Oracle数据库(dao访问oracle)
使用DAO访问Oracle数据库
数据访问对象(DAO)设计模式可以帮助我们有效地管理对象的持久性状态。它将数据访问逻辑与业务逻辑分开,以便更容易地维护并增强代码可读性。这篇文章将会介绍如何使用DAO来访问Oracle数据库。
在介绍如何使用DAO之前,让我们先来了解一下Oracle数据库。Oracle数据库是一种关系型数据库,由Oracle公司开发,广泛用于企业和政府等组织的数据存储和管理。Oracle也提供了一种Java数据库连接API,称为JDBC(Java Database Connectivity),它允许Java应用程序与Oracle数据库通信。
在使用DAO访问Oracle数据库之前,我们应该先创建一个数据库连接。这可以通过JDBC API完成。以下是一个示例代码:
“`java
String url = “jdbc:oracle:thin:@localhost:1521:xe”;
String user = “scott”;
String password = “tiger”;
Connection conn = DriverManager.getConnection(url, user, password);
此代码使用thin驱动程序连接到本地的Oracle Express Edition。您需要将url、user和password参数替换为您的实际数据库连接参数。
接下来,我们可以创建一个DAO类来访问数据库。以下是一个示例代码:
```javapublic class EmployeeDao {
private Connection conn;
public EmployeeDao(Connection conn) { this.conn = conn;
}
public List findAll() throws SQLException {
List employees = new ArrayList();
String sql = "SELECT * FROM employees"; PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery(); while (rs.next()) {
Employee employee = new Employee(); employee.setId(rs.getInt("id"));
employee.setName(rs.getString("name")); employee.setSalary(rs.getDouble("salary"));
employees.add(employee); }
return employees; }
public void save(Employee employee) throws SQLException {
String sql = "INSERT INTO employees(name, salary) VALUES(?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, employee.getName()); pstmt.setDouble(2, employee.getSalary());
pstmt.executeUpdate(); }
public void update(Employee employee) throws SQLException {
String sql = "UPDATE employees SET name=?, salary=? WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, employee.getName()); pstmt.setDouble(2, employee.getSalary());
pstmt.setInt(3, employee.getId()); pstmt.executeUpdate();
}
public void delete(int id) throws SQLException { String sql = "DELETE FROM employees WHERE id=?";
PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id);
pstmt.executeUpdate(); }
}
该代码定义了一个EmployeeDao类,它具有findAll、save、update和delete这四个方法来访问employees表。findAll方法返回一个Employee对象列表,它从数据库中检索所有员工的记录。save方法将一个Employee对象插入到数据库中。update方法更新员工记录。delete方法从数据库中删除一条员工记录。
现在我们已经定义了EmployeeDao类,我们可以使用它来访问Oracle数据库。以下是一个示例代码:
“`java
public static void mn(String[] args) throws SQLException {
String url = “jdbc:oracle:thin:@localhost:1521:xe”;
String user = “scott”;
String password = “tiger”;
Connection conn = DriverManager.getConnection(url, user, password);
EmployeeDao dao = new EmployeeDao(conn);
List employees = dao.findAll();
for (Employee employee : employees) {
System.out.println(employee);
}
conn.close();
}
该代码从数据库中检索所有员工的记录,并在控制台上打印它们。它使用EmployeeDao类作为DAO,该DAO使用数据库连接对象来执行创造、读取、更新和删除(CRUD)操作。
使用DAO来访问Oracle数据库可以提高代码的可读性和可维护性。它使开发人员专注于业务逻辑而不是数据访问逻辑,从而减少了代码的混乱和错误。以上是一个简单示例,DAO模式可以应用于更大的应用程序和更复杂的数据访问需求。