java dao设计模式_DAO设计模式--实例

本文介绍了Java DAO设计模式的使用原因,如避免JSP文件中混杂SQL代码,提高代码维护性,并展示了如何创建数据库表、定义DAO接口及其实现。通过PersonDao接口,实现了对person表的增删查改操作,以及使用VO对象与数据库交互。最后讨论了工厂模式在DAO中的应用,以隔离数据库变化对前端代码的影响。
摘要由CSDN通过智能技术生成

DAO设计模式

1: 为什么使用DAO?

a: 在涉及数据库操作,以前一般使用jdbc,使用这种方法我们会发现代码和html标签同时使用,维

护很困难。

b:jsp文件中不应该出现任何sql包,jsp文件侧重于显示界面的。

c:所有的数据库操作建议使用prepareStatement。好处重在避免sql注入漏洞。

2:DAO是J2EE中的数据层操作。

3:数据库创建脚本

4f1150b881333f12a311ae9ef34da474.png--删除表

4f1150b881333f12a311ae9ef34da474.pngDROP TABLE person;

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png--创建表

4f1150b881333f12a311ae9ef34da474.pngCREATE TABLE person

4f1150b881333f12a311ae9ef34da474.png(

4f1150b881333f12a311ae9ef34da474.png     id varchar(20) notnullprimary key,

4f1150b881333f12a311ae9ef34da474.png     name varchar(20) notnull,

4f1150b881333f12a311ae9ef34da474.png     password varchar(20) notnull,

4f1150b881333f12a311ae9ef34da474.png     age varchar(20) notnull,

4f1150b881333f12a311ae9ef34da474.png     email varchar(30) notnull4f1150b881333f12a311ae9ef34da474.png);

4f1150b881333f12a311ae9ef34da474.png--事务提交

4f1150b881333f12a311ae9ef34da474.pngcommit;

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

4:如果在数据库修改后,我们怎么样才能做到前台页面不需要太多的改变?

我们必须规定出对PERSON中的全部操作。比如增删查改。

按照以上要求,制定出操作那张表的标准,之后只要针对不同的数据库实现这些标准就可以了。 在java

中我们可以通过接口来实现----》DAO规定的就是这些接口。

4f1150b881333f12a311ae9ef34da474.pngpackagecom.nnu.djx.dao;

4f1150b881333f12a311ae9ef34da474.pngimportcom.nnu.djx.vo.*;

4f1150b881333f12a311ae9ef34da474.pngimportjava.util.*;

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png//规定了在此项目中操作person表的全部方法1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicinterfacePersonDao 

9b8a8a44dd1c74ae49c20a7cd451974e.png9b8a8a44dd1c74ae49c20a7cd451974e.png{

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//***//** *//**d18c02628675d0a2c816449d98bda930.png      * 插入对象

d18c02628675d0a2c816449d98bda930.png      *@throwsException

ecedf933ec37d714bd4c2545da43add2.png*/d18c02628675d0a2c816449d98bda930.pngpublicvoidinsert(Person person)throwsException;

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//***//** *//**d18c02628675d0a2c816449d98bda930.png      * 更新对象

d18c02628675d0a2c816449d98bda930.png      *@throwsException

ecedf933ec37d714bd4c2545da43add2.png*/d18c02628675d0a2c816449d98bda930.pngpublicvoidupdate(Person person)throwsException;

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//***//** *//**d18c02628675d0a2c816449d98bda930.png      * 删除某一对象

d18c02628675d0a2c816449d98bda930.png      *@paramid

d18c02628675d0a2c816449d98bda930.png      *@throwsException

d18c02628675d0a2c816449d98bda930.png      * 

ecedf933ec37d714bd4c2545da43add2.png*/d18c02628675d0a2c816449d98bda930.pngpublicvoiddelete(String id)throwsException;

d18c02628675d0a2c816449d98bda930.png    

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//***//** *//**d18c02628675d0a2c816449d98bda930.png      * 按照ID查询

d18c02628675d0a2c816449d98bda930.png      *@paramid

d18c02628675d0a2c816449d98bda930.png      *@returnd18c02628675d0a2c816449d98bda930.png      *@throwsException

d18c02628675d0a2c816449d98bda930.png      * 

ecedf933ec37d714bd4c2545da43add2.png*/d18c02628675d0a2c816449d98bda930.pngpublicPerson queryById(String id)throwsException;

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//***//** *//**d18c02628675d0a2c816449d98bda930.png      * 查询全部结果

d18c02628675d0a2c816449d98bda930.png      *@returnd18c02628675d0a2c816449d98bda930.png      *@throwsException

ecedf933ec37d714bd4c2545da43add2.png*/d18c02628675d0a2c816449d98bda930.pngpublicList      queryAll()throwsException; 

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//***//** *//**d18c02628675d0a2c816449d98bda930.png      * 模糊查询

d18c02628675d0a2c816449d98bda930.png      *@paramcode

d18c02628675d0a2c816449d98bda930.png      *@returnd18c02628675d0a2c816449d98bda930.png      *@throwsException

ecedf933ec37d714bd4c2545da43add2.png*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值