数据访问层-分层开发_第1页
数据访问层-分层开发_第2页
数据访问层-分层开发_第3页
数据访问层-分层开发_第4页
数据访问层-分层开发_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据访问层主讲:黄浩QQ:355126886本章目标掌握DAO模式掌握分层开发的优势和原则使用实体类传递数据掌握数据访问层的职责DAO模式数据库连接代码重复怎么办?一个项目开始用SQLServer开发,后来需要改为Oracle,那么怎么办?DAO模式如果专门编写一个类BaseDao专门用来对数据库操作,那么就很方便了。数据库连接信息获取数据库连接关闭数据库连接DAO模式的实际应用数据库工具类BaseDaopublicclassBaseDao{privatestaticStringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";privatestaticStringurl=“…";……publicstaticConnectiongetConnection(){ …… conn=DriverManager.getConnection(url,user,password); …… returnconn;}publicstaticvoidcloseAll(Connectionconn,Statementstmt,ResultSetrs){if(rs!=null)rs.close(); if(stmt!=null)stmt.close(); ……}}数据库连接信息获取数据库连接关闭数据库连接DAO模式数据访问类写好了BaseDao,那么对数据库中的操作基本都是增删改查操作。能不能把这些操作都放到一个类中呢?项目需求说明:实现一个电子宠物的小型项目。用户登录后,能够进行电子宠物的各种操作领养宠物,给宠物喂食,与宠物玩耍给宠物看病,显示主人的宠物信息显示主人个人信息项目准备:设计并创建数据库表2-1数据库:epet电子宠物数据库表宠物表pet宠物主人表Master

宠物企鹅表Penguin具体字段根据业务进行确定注意主键和外键的设计,建立表之间关联关系项目准备:设计并创建数据库表2-2主人ID主人姓名主人元宝登录密码ID名称健康值幸福指数性别主人IDID名称健康值品种主人ID幸福指数DAO模式如果把下面的功能全部写在一个类中是否合适?如果以后需要增加一个“为主人元宝充值功能”怎么办?DAO什么是DAO

DAO(DataAccessObject)数据存取对象,是一种标准的J2EE设计模式。数据访问,顾名思义就是与数据库打交道,夹杂在业务逻辑和数据库资源中间,用于将数据持续和业务逻辑分离。什么是DAODAODataAccessObject(数据存取对象)位于业务逻辑和持久化数据之间实现对持久化数据的访问列1列2列3类DAO数据库DAO起着转换器的作用,把实体类转换为数据库中的记录DAO模式的作用隔离业务逻辑代码和数据访问代码隔离不同数据库的实现业务逻辑层数据访问层数据访问层OracleSQLServerMySQL业务逻辑层DAO模式的组成DAO模式的组成部分DAO接口DAO实现类实体类数据库连接和关闭工具类DAO模式使用DAO模式如何实现主人相关功能。登录:需要用户名和密码查看信息:可以查询主人的信息更新元宝:用于喂养宠物的消耗值处理DAO模式根据DAO设计模式,对类进行设计数据库工具集(数据访问层)数据处理接口DAO接口数据处理类DAO实现类实体类Master练习——定义MasterDao接口需求说明:定义MasterDao接口创建master表定义实体类Master,与表master对应练习——实现MasterDao接口需求说明:开发MasterDao的实现类MasterDao实现类中只实现查询方法开发数据库工具类BaseDao讲解需求说明指导——调用DAO类实现登录训练要点:数据持久化需求说明:完成主人的登录验证功能实现思路:开发业务类MasterManager在MasterManager中检验主人的密码是否正确开发测试类Test,测试登录验证功能完成时间:15分钟共性问题集中讲解常见调试问题及解决办法代码规范问题共性问题集中讲解DAO模式如果专门编写一个类BaseDao专门用来对数据库操作,那么就很方便了。设计模式什么是设计模式 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式的目的为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。为什么要学设计模式

设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,如果你熟悉这些设计模式,毫无疑问,你将迅速掌握框架的结构

什么是持久化持久化是将程序中的数据在瞬时状态和持久状态间转换的机制把我们大脑中所思考的事情记录到本子上,这个过程就是持久化持久化的实现方式数据库普通文件XML文件数据库普通文件XML文件持久化的主要操作持久化删除保存修改查找读取DAO模式的实际应用4-1定义一个接口PetDaopublicinterfacePetDao{ voidsave(Petpet); voiddel(Petpet); ……}publicclassPetDaoJdbcOracleImplimplementsPetDao{ publicvoidsave(Petpet){…} publicvoiddel(Petpet){…}; ……}接口PetDao实现接口PetDao定义PetDao接口的实现类DAO模式的实际应用4-2PetDao实现类的方法:以update方法为例publicclassPetDaoJdbcOracleImplimplementsPetDao{publicviodupdate(Petpet){ Stringdriver=“oracle.jdbc.driver.oracleDriver”; Stringurl=“jdbc:oracle:thin:@10.0.0.41:1521:sjbitdb”; …… Stringsql=“updatepetsetstatus=0whereid=?”; pstmt=conn.prepareStatement(sql); pstmt.setInt(1,pet.getId()); pstmt.executeUpdate(); …… finally{ if(null!=pstmt)pstmt.close(); if(null!=conn)conn.close(); …… }}}数据库连接信息执行更新操作在finally块中关闭数据库连接DAO模式的实际应用4-3定义实体类Pet类包含相关属性实现属性的getter/setter方法publicclassPet{privateintid;//宠物idprivateintmasterId;//主人idprivateStringname;//昵称……publicintgetId(){ returnid;}publicvoidsetId(intid){ this.id=id;}……}属性getter/setter方法DAO模式的实际应用4-4数据库工具类BaseDaopublicclassBaseDao{privatestaticStringdriver="oracle.jdbc.driver.OracleDriver";privatestaticStringurl=“…";……publicstaticConnectiongetConnection(){ …… conn=DriverManager.getConnection(url,user,password); …… returnconn;}publicstaticvoidcloseAll(Connectionconn,Statementstmt,ResultSetrs){if(rs!=null)rs.close(); if(stmt!=null)stmt.close(); ……}}数据库连接信息获取数据库连接关闭数据库连接小结什么是DAO?DAO模式的作用是什么?DAO是由哪几部分组成的?什么是分层开发一种化大为小,分而治之的软件开发方法学校机械学院人文学院信息学院机械制造汽车工程法律中文计算机电子工程一所学校被分为若干学院,各学院下面再分若干专业,这样的分层更易于管理学校由3层组成:学校,学院,专业生活中的分层餐厅制造汽车服务员厨师采购员汽车制造商零件制造商炼钢厂采矿厂分层开发的好处各层专注于自己功能的实现,便于提高质量便于分工协作,提高开发效率便于代码复用便于程序扩展操作系统的分层硬件操作系统应用软件分层原则2-1封装性原则每个层次向外公开接口,但是隐藏内部细节钥匙开锁,只知道锁提供的接口,但不知道锁的内部细节。分层原则2-2顺序访问原则下一层为上一层服务,但不使用上层的服务盖楼时需要先打地基,地基为上层建筑服务,但不使用上层的服务。使用实体类传递数据分层结构中,不同层之间通过实体类传输数据业务逻辑层数据访问层指导——记录车辆购置税训练要点:分层开发DAO模式需求说明:由控制台录入数据,根据计税价格计算,征税额将数据保存到Oracle数据库讲解需求说明指导——记录车辆购置税实现思路:1、创建数据库表vehicle_purchase_tax2、开发实体类VehiclePurchaseTax3、开发DAO接口类和实现类4、开发数据库连接关闭工具类5、开发测试类完成时间:10分钟练习——创建数据库表需求说明:

创建数据库表vehicle_purchase_tax

完成时间:10分钟属性名称

说明车主身份证号码char(18)车辆识别代码char(17)排量number官方指导价number发票价格number缴纳车辆购置税金额number购车日期date练习——开发实体类需求说明:开发实体类VehiclePurchaseTax实体类的属性需和表vehicle_purchase_tax对应各属性的类型需和表vehicle_purchase_tax对应完成时间:10分钟练习——开发数据库访问层需求说明:完成数据库工具类BaseDa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论