面向接口编程到底有什么好处

本文介绍了用户注册功能中数据访问层(DAO)的两种实现方式:使用JDBC和Hibernate。通过具体的代码示例展示了如何在不同的技术栈下保存用户信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自优快云:http://topic.youkuaiyun.com/u/20080123/15/ec6c6637-c8b9-4d7d-82f7-caefbd3a1d2a.html

 

比如说,你要注册一个用户,前面是业务逻辑,要调用数据访问层的save(user)方法。先写一个数据访问对象的接口

public interface IDAO{
    void save(User user) throws UserNameExistException;
}


 

jdbc的实现是 

 

public class JDBCDAO implements IDAO{
    public void save(User user) throws UserNameExistException{
        .....
        String sql = "insert into t_user values(?,?,?,?)";
        ....
        PreparedStatement pstm = conn.prepareStatement(sql);
        pstm.setString(1,user.getName());
        ....
        pstm.executeUpdate();
        ......
    }
}

 

 

Hibernate的实现是

 

public class HibernateDAO implements IDAO{
    public void save(User user) throws UserNameExistException{
        ......
        session.save(user);
        session.getTransaction().commit();
        ....
    }
}

 

你的业务层UserService只要这么写

public class UserService{
    public void register(String userName,String password,int age,....等等参数){
        //假设现在用的是JDBC的实现
        IDAO dao = new JDBCDAO();//当你需要替换实现的时候,只要把这个JDBCDAO换成HibernateDAO就可以了,其它代码不需要改。
        User user = new User();
        user.setName(userName);
        ......
        dao.save(user);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值