简单的Dao层的模板写法

public class CategoryDAO {

    public int getTotal() {
        int total = 0;
        try (Connection c = DBUtil.getConnection(); Statement s = c.createStatement()) {

            String sql = "select count(*) from Category";

            ResultSet rs = s.executeQuery(sql);
            while (rs.next()) {
                total = rs.getInt(1);
            }
        } catch (SQLException e) {

            e.printStackTrace();
        }
        return total;
    }

    public void add(Category bean) {

        String sql = "insert into category values(null,?)";
        try (Connection c = DBUtil.getConnection(); PreparedStatement ps = c.prepareStatement(sql)) {

            ps.setString(1, bean.getName());

            ps.execute();

            ResultSet rs = ps.getGeneratedKeys();
            if (rs.next()) {
                int id = rs.getInt(1);
                bean.setId(id);
            }
        } catch (SQLException e) {

            e.printStackTrace();
        }
    }

    public void update(Category bean) {

        String sql = "update category set name= ? where id = ?";
        try (Connection c = DBUtil.getConnection(); PreparedStatement ps = c.prepareStatement(sql)) {

            ps.setString(1, bean.getName());
            ps.setInt(2, bean.getId());

            ps.execute();

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

    public void delete(int id) {

        try (Connection c = DBUtil.getConnection(); Statement s = c.createStatement()) {

            String sql = "delete from Category where id = " + id;

            s.execute(sql);

        } catch (SQLException e) {

            e.printStackTrace();
        }
    }

    public Category get(int id) {
        Category bean = null;

        try (Connection c = DBUtil.getConnection(); Statement s = c.createStatement()) {

            String sql = "select * from Category where id = " + id;

            ResultSet rs = s.executeQuery(sql);

            if (rs.next()) {
                bean = new Category();
                String name = rs.getString(2);
                bean.setName(name);
                bean.setId(id);
            }

        } catch (SQLException e) {

            e.printStackTrace();
        }
        return bean;
    }

    public List<Category> list() {
        return list(0, Short.MAX_VALUE);
    }

    public List<Category> list(int start, int count) {
        List<Category> beans = new ArrayList<Category>();

        String sql = "select * from Category order by id desc limit ?,? ";

        try (Connection c = DBUtil.getConnection(); PreparedStatement ps = c.prepareStatement(sql)) {

            ps.setInt(1, start);
            ps.setInt(2, count);

            ResultSet rs = ps.executeQuery();

            while (rs.next()) {
                Category bean = new Category();
                int id = rs.getInt(1);
                String name = rs.getString(2);
                bean.setId(id);
                bean.setName(name);
                beans.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return beans;
    }

}

  

转载于:https://www.cnblogs.com/huangpeideng/p/10985988.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在常见的软件开发中,Service DAO(Data Access Object)是常用的架构次。它们分别负责业务逻辑的处理和数据访问的操作。 Service 通常包含了业务逻辑的实现,它处理业务需求、调用 DAO 完成数据操作,并将结果返回给调用方。在 Service 中,可以包含事务管理、数据校验、业务规则验证等逻辑。 DAO 主要负责数据库的访问和操作,它提供了对数据库的增删改查等基本操作接口。DAO一般包含数据库连接、SQL语句的执行和结果集的处理等功能。 关于两者的具体写法,以下是一种常见的实现方式: DAO 写法示例: ```java public interface UserDao { User getUserById(int id); void createUser(User user); void updateUser(User user); void deleteUser(int id); } public class UserDaoImpl implements UserDao { public User getUserById(int id) { // 数据库查询操作 // 返回查询到的 User 对象 } public void createUser(User user) { // 数据库插入操作 } public void updateUser(User user) { // 数据库更新操作 } public void deleteUser(int id) { // 数据库删除操作 } } ``` Service 写法示例: ```java public interface UserService { User getUserById(int id); void createUser(User user); void updateUser(User user); void deleteUser(int id); } public class UserServiceImpl implements UserService { private UserDao userDao; public User getUserById(int id) { // 可以在这里添加业务逻辑的处理 return userDao.getUserById(id); } public void createUser(User user) { // 可以在这里添加业务逻辑的处理 userDao.createUser(user); } public void updateUser(User user) { // 可以在这里添加业务逻辑的处理 userDao.updateUser(user); } public void deleteUser(int id) { // 可以在这里添加业务逻辑的处理 userDao.deleteUser(id); } } ``` 在实际开发中,通常会使用依赖注入(Dependency Injection)等技术将 DAO 注入到 Service 中,实现解耦和模块化的设计。以上只是一种示例写法,具体实现还需要根据项目的需求和技术栈来确定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值