JDBC学习(二)DAO层的设计

<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">1,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span style="">对于一个项目来说,往往最先设计出来的就是</span><span lang="EN-US"><span style="font-family: Times New Roman;">domain</span></span><span style="">对象,也就是面向业务的对象。例如银行领域的软件中,</span><span lang="EN-US"><span style="font-family: Times New Roman;">damain</span></span><span style="">对象往往会有账户,支票,客户等。</span></span></p>
<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">2,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span style="">一般情况下一个</span><span lang="EN-US"><span style="font-family: Times New Roman;">domain</span></span><span style="">对象都会在数据库里面由一个表与之对应</span></span></p>
<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">3,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span style="">在</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="">层的设计中,一般会有一个包叫做</span><span lang="EN-US"><span style="font-family: Times New Roman;">domain</span></span><span style="">包,存放各种</span><span lang="EN-US"><span style="font-family: Times New Roman;">domain</span></span></span></p>
<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">4,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span style="">在</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="">层的设计中,一般会有一个包叫做</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="">包,定义</span><span lang="EN-US"><span style="font-family: Times New Roman;">domain</span></span><span style="">对象跟数据库有关的各种操作,因此</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="">包中存放的都是借口。例如</span><span lang="EN-US"><span style="font-family: Times New Roman;">domain</span></span><span style="">对象的中</span><span lang="EN-US"><span style="font-family: Times New Roman;">User</span></span><span style="">通常会对应一个</span><span lang="EN-US"><span style="font-family: Times New Roman;">UserDAO</span></span><span style="">接口</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt;"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">Interface UserDAO{</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style=""> </span>public void addUser();</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style=""> </span>public void queryUser(int id,String password)</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt;"><span lang="EN-US"><span style="font-size: small;"><span style="font-family: Times New Roman;"><span style=""> </span>public User findUser();</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt;"><span lang="EN-US"><span style="font-size: small; font-family: Times New Roman;">}</span></span></p>
<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">5,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style=""><span style="font-size: small;">当然还需要一个实现包</span></span></p>
<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">6,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span style="">这样做可以让业务逻辑层只是根据接口编程,而实现包可以根据情况的改变而发生变化,比如可以使用</span><span lang="EN-US"><span style="font-family: Times New Roman;">Hibernate</span></span><span style="">,当需要的时候也可以选择使用</span><span lang="EN-US"><span style="font-family: Times New Roman;">ibatis</span></span><span style="">来实现。</span></span></p>
<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">7,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span style="">通常会在</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="">包中自己定义一个异常。用来封装</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="">的实现包中所产生的各种异常</span></span></p>
<p class="MsoNormal" style=""><span style="" lang="EN-US"><span style=""><span style="font-family: Times New Roman;"><span style="font-size: small;">8,</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span style="">为了避免硬代码的实现,在</span><span lang="EN-US"><span style="font-family: Times New Roman;">DAO</span></span><span style="">层中实现工厂方法。</span></span></p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值