DAo设计模式1Word文件下载.docx
《DAo设计模式1Word文件下载.docx》由会员分享,可在线阅读,更多相关《DAo设计模式1Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
T乩兴出「B/S片hV/j听"
七孔业山川.肮#让
皐冃JSP/S已rvlEt疋r放汉mJ.
■BusinessObject.-•存M0、:
;
£
■八丘ft:
的DAO吃‘1ill
DAO/:
粧m口讨:
的DAO逐J钏口;
即uUfl:
乳疋「灯ffiIFJ現d
在整个DAO中实际上是以接口为操作标准,即客户端依靠服务器端要将接口进行具体的实现。
由以下几个部分组成:
数据库连接:
包的命名:
xxx.dbc.DatabaseConection
DAO接口:
xxx.dao.IXxxDAO
DAO接口真实实现类:
xxx.dao.impl.XxxDAOImpl
DAO接口代理实现类:
xxx.dao.proxy.XxxDAOProxy
VO类:
xxx.vo.Xxx,VO的命名要与表的命名一致工厂类:
xxx.factory.DAOFactory
DAO开发
DAO的开发完全围绕数据库进行,使用如下表
emp
empno
1忖T(4)<
pl>
enome
VAPCHAPf10)
iob
VAP(l;
KAA(9)
hired^Te
DATE
sol
FLOAT(7.2)
1
*iripTuj
•
F
rluUfif
«
庐•冷用字科9D亍・仪虞昱十住
飞
K'
b
SMrt
4
liurdlte
便用S«
电式夢亍
r
1-
11
5芒I桁*便用-J戲尹亍,K中j?
?
应皿*空蓄位■■位
数据库创建脚本:
/*
*/
DROPDATABASEIFEXISTShbmu;
=创建数据库
CREATEDATABASEhbmu;
=使用数据库
USEhbmu;
=删除数据表
DROPTABLEIFEXISTSemp;
=创建数据表
CREATETABLEemp(
INT(4)
PRIMARYKEY,
ename
VARCHAR(10),
VARCHAR(9),
hiredate
DATE,
sal
FLOAT(7,2)
字母大写:
定义对应的V0类----Emp.java
packagecn.edu.hbmu.vo;
importjava.util.Date;
publicclassEmp{
private
int
empno;
String
job;
Date
float
sal;
public
intgetEmpno(){
returnempno;
}
publicvoidsetEmpno(intempno){this.empno=empno;
publicStringgetEname(){
returnename;
publicvoidsetEname(Stringename){
this.ename=ename;
publicStringgetJob(){
returnjob;
publicvoidsetJob(Stringjob){this.job=job;
publicDategetHiredate(){
returnhiredate;
publicvoidsetHiredate(Datehiredate){
this.hiredate=hiredate;
publicfloatreturn
getSal(){
setSal(floatsal){
publicvoid
this.sal=sal;
简单的VO类,定义了属性、
gettersetter方法。
日期使用的是java.util.Date;
定义
数据库连接类
import
java.sql.Connection;
java.sql.DriverManager;
import
java.sql.SQLException;
-DatabaseConnection.java
packagecn.edu.hbmu.dbc;
public
privatestaticfinalString
DBDRIVER"
org.gjt.mm.mysql.Driver"
classDatabaseConnection{
DBURL=
"
jdbc:
mysql:
//localhost:
3306/hbmu"
staticfinalString
DBUSER="
root"
Connectionconn;
DBPASSWORDt23"
;
DatabaseConnection()
throwsException{
Class.forName(DBDRIVER);
this.conrpDriverManager.getConnection(DBURDBUSED,BPASSWORD);
}
publicConnectiongetConnection(){
return
this.conn;
void
close()throwsException{
if
(this
try
.conn!
=null){
{
this.conn.close();
}catch(Exceptione){
throwe;
在执行数据库连接和关闭中,
由于可能出现意外情况而导致无法操作成功时,
所有的异常将
统一交给调用处处理。
如果要适用不同的数据库,
可以将可能变化的地方听过接口实现,
然后根据不同的数据库定
义不同的子类,通过工厂类完成调用
DAO接口DAO接口:
UndoTyping
i:
trl+Z
RevertFl
SiVe
Ctrl+S
iJl-eriDecl41iUoil
Fj
OpenTyp今Kierarchy
F4
OpenCallhierarchv
Ctrl+AIOH
Sh"
wintreilcrijihb
Alt++F
QuickOu+line
Ctrl+Ci
QuickTVT■亡Hleriichy
Ctil+T
She#I良
Ut+Shift+W
Cut
til+X
[jpy
l:
trl+C
Cof.y1fIedN河自
Fiste
i;
trl+V
Q'
jickFu:
Ctrl+l
Srarc.
AU*Shi£
US
R电tau丄or
Alt<
hitt+T
MurroundWith
-■T
Alt+SLitt+Z
Li;
h:
alK1stClr7
■i*.
Referent*s
-»
T
Declir4T1OILS
AddtoSnipfiets
R^iTiAs
D^tu£
:
A賀
Fr<
'
f111As
T空ifh
匚皿Pu电W1th
R^fliceWith
MvEclIp^e
Frf
k
packagecn.edu.hbmu.dao;
importjava.util.List;
importcn.edu.hbmu.vo.Emp;
publicinterfacelEmpDAO{
/**
数据的增加操作,一般以
@paramemp
@return
HiTorcl)Ih1o\TsException;
n/sException:
斤"
Servers
XXM
Fil*s\G*nuitec^Common^binary'
*COB*,sunjivijdkWin32x86_l6
TC<
-n.m*rLt
AddElockComment
RemoveLIcckComment
Cvrr^ctIndentition
AddImp01t
Dr£
WLizeImport.i
EortMembers
Cl©
5TJp
Dv€-rr1dr;
ImplemrntWeth心d£
Ge*♦ei5iiidltrs
/enerit«
G电nerate
^enere
[1*1*^it*H*thudshiihCad«
L<
aridIi.
toStiLI
Constr<
ictc-rusitl宕Fi*lIs
Constructstron(Supercl^zz
doXxx的方式命名
Ctrl+7
Ctrl+Shitt+\
Mt+Shi£
t+J
Ctrl+I
rtrl+Shitt+F
CtiHShift+M
Ctrl+SKift+n
要增加的数据对象
是否增加成功的标记
@throwsException
有异常交给被调用处处理
publicbooleandoCreate(Empemp)throws
Exception;
findXxx
的方式
*查询全部的数据(多条记录),一般以
命名或getXxx
*@paramkeyWord
查询关键字
*@return
的一行记录
返回全部的查询结果,每一个
Emp对象表示表
*@throwsException
publicList<
Emp>
findAll(StringkeyWord)throwsException;
*根据雇员编号查询雇员信息
*@paramempno雇员编号
*@return雇员的VO对象
有异常交给被调用处