Java DAO

Java DAO模式(Data Access Object)是一种设计模式,用于将数据访问逻辑从业务逻辑中分离出来。它提供了一种通用的方式来访问和操作数据库中的数据。

简单示例:

public interface UserDao {  
    User findById(int id);  
    List<User> findAll();  
    void save(User user);  
    void update(User user);  
    void delete(int id);  
}

在这个示例中,我们定义了一个UserDao接口,它包含了访问和操作User数据的方法。这些方法可以包括查找、保存、更新和删除用户等操作。

接下来,我们需要实现这个接口。我们可以使用JDBC或者ORM框架(如Hibernate、MyBatis等)来实现DAO接口。下面是一个使用JDBC实现的示例:

复制代码
import java.sql.*;  
  
public class JdbcUserDao implements UserDao {  
    private Connection connection;  
  
    public JdbcUserDao(Connection connection) {  
        this.connection = connection;  
    }  
  
    @Override  
    public User findById(int id) {  
        String sql = "SELECT * FROM users WHERE id = ?";  
        PreparedStatement statement = connection.prepareStatement(sql);  
        statement.setInt(1, id);  
        ResultSet resultSet = statement.executeQuery();  
        if (resultSet.next()) {  
            return new User(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getString("email"));  
        } else {  
            return null;  
        }  
    }  
  
    @Override  
    public List<User> findAll() {  
        String sql = "SELECT * FROM users";  
        PreparedStatement statement = connection.prepareStatement(sql);  
        ResultSet resultSet = statement.executeQuery();  
        List<User> users = new ArrayList<>();  
        while (resultSet.next()) {  
            users.add(new User(resultSet.getInt("id"), resultSet.getString("name"), resultSet.getString("email")));  
        }  
        return users;  
    }  
  
    @Override  
    public void save(User user) {  
        String sql = "INSERT INTO users (id, name, email) VALUES (?, ?, ?)";  
        PreparedStatement statement = connection.prepareStatement(sql);  
        statement.setInt(1, user.getId());  
        statement.setString(2, user.getName());  
        statement.setString(3, user.getEmail());  
        statement.executeUpdate();  
    }  
  
    @Override  
    public void update(User user) {  
        String sql = "UPDATE users SET name = ?, email = ? WHERE id = ?";  
        PreparedStatement statement = connection.prepareStatement(sql);  
        statement.setString(1, user.getName());  
        statement.setString(2, user.getEmail());  
        statement.setInt(3, user.getId());  
        statement.executeUpdate();  
    }  
  
    @Override  
    public void delete(int id) {  
        String sql = "DELETE FROM users WHERE id = ?";  
        PreparedStatement statement = connection.prepareStatement(sql);  
        statement.setInt(1, id);  
        statement.executeUpdate();  
    }  
}
复制代码

总结:

Java DAO模式是一种常见的设计模式,用于将数据访问逻辑从业务逻辑中分离出来。通过使用DAO模式,我们可以将数据访问代码和业务逻辑代码进行解耦,提高代码的可读性、可维护性和可扩展性。在实际开发中,我们可以根据具体的需求选择合适的实现方式来实现DAO接口,如JDBC、Hibernate、MyBatis等。同时,我们还需要注意数据库连接的管理、异常处理等问题,以确保代码的稳定性和安全性。

posted @   kandhera  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示