欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    DAO设计模式2Word文件下载.docx

    • 资源ID:5233259       资源大小:104.18KB        全文页数:28页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DAO设计模式2Word文件下载.docx

    1、pstmt.setInt(1, vo.getEmpno();pstmt.setString(2, vo.getEname();pstmt.setString(3, vo.getJob();pstmt.setDate(4,java.sql.Date(vo.getHiredate().getTime();pstmt.setDouble(5, vo.getSal();pstmt.setDouble(6, vo.getComm();if(pstmt.executeUpdate() 0) returntruedbc.close() ;false;如果真的按照这种方式实现的程序,有两个重要问题:对于数据层

    2、之中给出的若干方法,由服务层调用,一个服务层要执行N个数据层,那么每次执行的时候打开一次关闭一次数据库?按照异常的处理机制,如果现在执行的过程之中出现了错误,那么顺着throws就结束调用了,数据库就再也无法关闭了。按照之前的分析,一个业务要进行多个数据层操作,所以数据库连接与关闭交给业务层做最合适,而数据层只需要有一个Connection对象就可以操作了,它不需要关心这个对象是从那里来的,怎么来的,只关心能不能使用。packagecn.mldn.oracle.dao.impl;importjava.sql.Connection;java.sql.PreparedStatement;java.

    3、sql.ResultSet;java.util.ArrayList;java.util.List;cn.mldn.oracle.dao.IEmpDAO;cn.mldn.oracle.vo.Emp;classEmpDAOImplimplementsIEmpDAO privateConnectionconn;PreparedStatementpstmt;EmpDAOImpl(Connection conn) this.conn= conn;this.pstmt=this.conn.prepareStatement(sql);this.pstmt.setInt(1, vo.getEmpno();th

    4、is.pstmt.setString(2, vo.getEname();this.pstmt.setString(3, vo.getJob();this.pstmt.setDate(4,this.pstmt.setDouble(5, vo.getSal();this.pstmt.setDouble(6, vo.getComm();(this.pstmt.executeUpdate() true;doUpdate(Emp vo)UPDATE emp SET ename=?,job=?,hiredate=?,sal=?,comm=? WHERE empno=?this.pstmt.setStrin

    5、g(1, vo.getEname();this.pstmt.setString(2, vo.getJob();this.pstmt.setDate(3,this.pstmt.setDouble(4, vo.getSal();this.pstmt.setDouble(5, vo.getComm();this.pstmt.setInt(6, vo.getEmpno();doRemove(intid)DELETE FROM emp WHERE empno=?this.pstmt.setInt(1, id);Emp findById(intEmp emp =null;SELECT empno,enam

    6、e,job,hiredate,sal,comm FROM emp WHERE empno=?ResultSet rs =this.pstmt.executeQuery();(rs.next() emp =Emp();emp.setEmpno(rs.getInt(1);emp.setEname(rs.getString(2);emp.setJob(rs.getString(3);emp.setHiredate(rs.getDate(4);emp.setSal(rs.getDouble(5);emp.setComm(rs.getDouble(6);emp;List findAll() all =A

    7、rrayList();SELECT empno,ename,job,hiredate,sal,comm FROM empwhileall.add(emp);all; findAll(String column, String keyWord,intcurrentPage,lineSize)SELECT * FROM (+SELECT empno,ename,job,hiredate,sal,comm,ROWNUM rn FROM emp WHERE + column + LIKE ? AND ROWNUM? this.pstmt.setString(1,%+ keyWord +);this.p

    8、stmt.setInt(2, currentPage * lineSize);this.pstmt.setInt(3, (currentPage - 1) * lineSize);getAllCount(String column, String keyWord)SELECT COUNT(empno) FROM emp WHERE this.conn.prepareStatement(sql) ;this.pstmt.executeQuery() ;rs.getInt(1) ;0;3.4.3、定义DAO工厂类由于不同层之间只能依靠接口取得对象,所以就一定需要定义工厂操作类,工厂类定义在cn.m

    9、ldn.oracle.factory包之中,名称为DAOFactory。定义工厂类cn.mldn.oracle.factory;cn.mldn.oracle.dao.impl.EmpDAOImpl;DAOFactory staticIEmpDAO getIEmpDAOInstance(Connection conn) EmpDAOImpl(conn) ;3.5、开发业务层(重点)3.5.1、开发业务层标准业务层以后也是需要留给其他层进行调用的,所以业务层定义的时候也需要首先定义出操作标准,而这个标准也依然使用接口完成,对于业务层,接口命名要求:表名称+ Service,例如:IEmpServi

    10、ce,表示操作Emp表的业务。在cn.mldn.oracle.service包中定义IEmpService接口cn.mldn.oracle.service;java.util.Map;interfaceIEmpService /*调用数据库的增加操作,操作流程如下:li首先要使用IEmpDAO接口中的findById()方法,根据要增加的id查看指定的雇员信息是否存在;如果要增加的雇员信息不存在,则执行IEmpDAO接口的doCreate()方法,并将结果返回;paramvo包装数据的对象return如果增加成功,返回true,如果雇员编号存在或者是增加失败,返回falsethrowsExce

    11、ption有异常交给被调用处处理*/insert(Emp vo)Exception;执行数据的更新操作,操作的时候直接调用IEmpDAO接口的doUpdate()方法,并将更新结果返回如果修改成功,返回true,如果数据不存在或修改失败,返回falseupdate(Emp vo)Exception ;执行数据的删除操作,删除操作的时候调用IEmpDAO接口的doRemove()方法id要删除雇员的id如果删除成功,返回true,如果数据不存在或删除失败,则返回falsedelete(int根据雇员的编号取得全部的信息雇员编号如果雇员存在则将数据包装为Emp对象返回,如果数据不存在则返回null

    12、Emp get(int查询全部或者是模糊查询全部数据,查询的同时可以返回满足此查询的数据量,在调用的时候需要执行以下操作:查询全部的雇员信息:需要IEmpDAO接口的findAll()方法;查询满足条件的雇员数量:使用IEmpDAO接口的getAllCount()方法操作;column模糊查询的字段keyWord模糊查询的关键字currentPage当前所在页lineSize每页显示的数据长度由于在进行数据返回的时候,此方法要返回两类数据:、int,使用Map返回:返回值1:key = allEmps,value = findAll();返回值2:key = empCount,value =

    13、getAllCount();Map list(String column, String keyWord,currentPage,3.5.2、定义业务层标准的实现类如果现在要想实现业务层的标准,必须有一个原则先把握住:一个业务层的方法操作要调用多个数据层,同时每个业务要处理数据库的打开和关闭。定义标准实现类cn.mldn.oracle.service.impl.EmpServiceImplcn.mldn.oracle.service.impl;java.util.HashMap;cn.mldn.oracle.dbc.DatabaseConnection;cn.mldn.oracle.facto

    14、ry.DAOFactory;cn.mldn.oracle.service.IEmpService;EmpServiceImplDatabaseConnectiondbcDatabaseConnection() ;tryConnection conn =this.dbc.getConnection() ;/取得连接IEmpDAO dao = DAOFactory.getIEmpDAOInstance(conn) ;取得DAO接口对象(dao.findById(vo.getEmpno() =null) 没有要查询的雇员信息dao.doCreate(vo) ;返回DAO的结果数据存在,直接返回falsecatch(Exception e) throwe;finallythis.dbc.close();DAOFactory.getIEmpDAOInstance(this.dbc.getConnection().doUpdate(vo);


    注意事项

    本文(DAO设计模式2Word文件下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开