java网络编程第4章.ppt

上传人:asd****56 文档编号:87667639 上传时间:2023-04-16 格式:PPT 页数:27 大小:1,019KB
返回 下载 相关 举报
java网络编程第4章.ppt_第1页
第1页 / 共27页
java网络编程第4章.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《java网络编程第4章.ppt》由会员分享,可在线阅读,更多相关《java网络编程第4章.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第四章第四章DAO程序设计程序设计 课程目标课程目标q实体实体bean的介绍:的介绍:q数据持久化概念数据持久化概念q什么是实体什么是实体bean q数据库访问对象程序设计:数据库访问对象程序设计:qDAO设计模式的好处设计模式的好处q设计模式的实现设计模式的实现q设计模式的使用设计模式的使用 体验项目体验项目 使用下面已经设计好的使用下面已经设计好的DAO实现用户注册功能,运行实现用户注册功能,运行时弹出注册窗体,在文本框中输入相应的信息后,点击时弹出注册窗体,在文本框中输入相应的信息后,点击“确定确定”按钮,会把输入的个人信息添加到数据库中。按钮,会把输入的个人信息添加到数据库中。当点击当

2、点击“确定确定”按钮时,用户信息按钮时,用户信息将被提交到数据库,如果数据添加将被提交到数据库,如果数据添加成功,窗口会弹出成功,窗口会弹出“注册成功注册成功”对对话框,如图所示:话框,如图所示:数据持久化概念数据持久化概念 数据持久化就是将数据(如内存中的对象)保数据持久化就是将数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中或者数据库中,当然也可以存储在磁盘文件中或者XML等文件中。等文件中。什么是实体什么是实体

3、bean 实体实体bean就是数据就是数据bean,在成熟的多层,在成熟的多层面向对象配置当中,可以划分出两种不同面向对象配置当中,可以划分出两种不同的组件配置:的组件配置:应用逻辑组件:这些组件是执行普通任务的提供者。应用逻辑组件:这些组件是执行普通任务的提供者。持久的数据组件:这种对象可以提交给永久性存储器,能持久的数据组件:这种对象可以提交给永久性存储器,能长时间存在,不会随系统的意外中止而消失,并且可以让长时间存在,不会随系统的意外中止而消失,并且可以让多个客户同时访问。多个客户同时访问。数据库访问对象程序设计数据库访问对象程序设计 DAO设计模式的好处设计模式的好处 未使用未使用DA

4、O的早期开发可能会发现以下问题:的早期开发可能会发现以下问题:所有的所有的JDBC代码写在代码写在JSP页面之中,维护困难,如果页面之中,维护困难,如果数据库代码某些地方有问题,那么代码就会有大量的改动。数据库代码某些地方有问题,那么代码就会有大量的改动。JSP中不应该使用任何中不应该使用任何SQL包,即:不应该在包,即:不应该在JSP中直中直接使用接使用java.sql.*,原因是:,原因是:JSP只关注于数据的显示,而只关注于数据的显示,而不关心数据是从哪里来,或向哪里存储,在现实生活中也不关心数据是从哪里来,或向哪里存储,在现实生活中也是一样,例如:公司的业务经理,他只关心他底下的员工是

5、一样,例如:公司的业务经理,他只关心他底下的员工的业绩如何,而不关心员工是怎么做的。在的业绩如何,而不关心员工是怎么做的。在JSP中也一样,中也一样,它只知道去调一些方法以达到它想要的结果,具体实现过它只知道去调一些方法以达到它想要的结果,具体实现过程由程由DAO解决。解决。J2EE的组件层次:的组件层次:客户端客户端表示层表示层业务层业务层数据层数据层数据库数据库DAO属于属于J2EE数据层的操作,即:用数据层的操作,即:用DAO封封装了表在一个项目中所应该具有的全部操作。装了表在一个项目中所应该具有的全部操作。举例:比如说一个图书馆,图书馆可以增加书籍。举例:比如说一个图书馆,图书馆可以增

6、加书籍。要增加之前,应该把一本书给图书馆才可以。这本书要增加之前,应该把一本书给图书馆才可以。这本书就代表实体就代表实体bean对象,当插入时要把对象中的数据插入到对象,当插入时要把对象中的数据插入到数据库中,实体数据库中,实体bean对象也叫(对象也叫(VO、TO、POJO)(值对)(值对象、传输对象、最根本的象、传输对象、最根本的JAVA对象)即:只包含属性和对象)即:只包含属性和set()、get()方法的类,客户通过操作方法的类,客户通过操作VO来操作来操作DAO。设计模式的实现设计模式的实现 数据库脚本的创建代码如下(为了方便,我们直接在数据库脚本的创建代码如下(为了方便,我们直接在

7、pub库里创建此表):库里创建此表):CREATE TABLE person(id varchar(32)not null primary key,name varchar(20)not null,password varchar(20)not null,age varchar(20)not null,email varchar(20)not null);首先需要设计出整个模块之中对首先需要设计出整个模块之中对person表执行的全部操表执行的全部操作,主要有:作,主要有:q增加增加q修改修改q删除删除q按按ID查询查询q查询全部查询全部q模糊查询模糊查询按以上要求,规定出操作按以上要求,规定

8、出操作person表的标准,之后只需针表的标准,之后只需针对于不同的数据库实现这些标准即可。在对于不同的数据库实现这些标准即可。在JAVA中只有通过中只有通过接口才可以定义出标准接口才可以定义出标准DAO规定的就是一个接口。规定的就是一个接口。第一步:定义接口第一步:定义接口接口是用来定义操作的,在这里应该定义:添、删、接口是用来定义操作的,在这里应该定义:添、删、改、查(改、查(ID查、查询全部、模糊查询)等操作。查、查询全部、模糊查询)等操作。import java.util.*;/规定出了操作规定出了操作person表在此项目里的全部方法表在此项目里的全部方法public interfa

9、ce PersonDAO/增加操作增加操作public void insert(Person person)throws Exception;/修改操作修改操作public void update(Person person)throws Exception;/删除操作删除操作public void delete(String id)throws Exception;/按按ID查询操作查询操作public Person queryById(String id)throws Exception;/查询全部查询全部public List queryAll()throws Exception;/模糊

10、查询模糊查询public List queryByLike(String cond)throws Exception;第二步:实体(数据)第二步:实体(数据)bean类类Person.java 实体实体bean就是用来存取数据的类,每个实体就是用来存取数据的类,每个实体bean都应都应该对应数据库中的唯一一张表,但在操作数据库时所收发该对应数据库中的唯一一张表,但在操作数据库时所收发的一些信息通过实体的一些信息通过实体bean中的中的get()、set()方法来实现。方法来实现。public class Personprivate String id;private String name;p

11、rivate String password;private int age;private String email;/getter()、setter()方法方法这个类用来实现前端和数据库之间的数据传递这个类用来实现前端和数据库之间的数据传递第三步:数据库连接类第三步:数据库连接类DataBaseConnection.java 因为添、删、改、查都需要连接数据库,所以把连接数据库的代码单独因为添、删、改、查都需要连接数据库,所以把连接数据库的代码单独提出来生成一个类,这个类主要实现两个功能,即:连接数据库、关闭数据提出来生成一个类,这个类主要实现两个功能,即:连接数据库、关闭数据库。主要代码

12、如下:库。主要代码如下:public DataBaseConnection()tryClass.forName(DBDRIVER);this.conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);catch(Exception e)/取得数据库连接取得数据库连接public Connection getConnection()return this.conn;/关闭数据库连接关闭数据库连接public void close()trythis.conn.close();catch(Exception e)第四步:第四步:PersonD

13、AOImpl.java完成完成PersonDAO接口的实现,可以说上面的几个类是用来实现一些接口的实现,可以说上面的几个类是用来实现一些基本工作的,而这个类是对上面几个类的调用和实基本工作的,而这个类是对上面几个类的调用和实现。现。下面是实现下面是实现PersonDAO接口之后的代码,但还没有实现功能。接口之后的代码,但还没有实现功能。import java.util.*;public class PersonDAOImpl implements PersonDAO/增加操作增加操作public void insert(Person person)throws Exception/修改操作修改

14、操作public void update(Person person)throws Exception/删除操作删除操作public void delete(String id)throws Exception/按按ID查询操作查询操作public Person queryById(String id)throws Exception/查询全部查询全部public List queryAll()throws Exception/模糊查询模糊查询public List queryByLike(String cond)throws Exception 接下来我们按方法一个一个的实现功能:接下来我们

15、按方法一个一个的实现功能:(1)添加操作,传入参数是)添加操作,传入参数是Person person,同学们要理解,同学们要理解为什么传入为什么传入Person,因为,因为Person是数据是数据bean,是用来存放,是用来存放数据的不管从前台到后台数据库还是从后台数据库到前台,数据的不管从前台到后台数据库还是从后台数据库到前台,Person的角色都是用来传送数据的。的角色都是用来传送数据的。sql=INSERT INTO person(id,name,password,age,email)VALUES(?,?,?,?,?);(2)修改操作与添加操作类似传入参数也为)修改操作与添加操作类似传入

16、参数也为person对象,只是对象,只是SQL的执行语句不同,当然修改要有的执行语句不同,当然修改要有条件,即修改谁,这里是以条件,即修改谁,这里是以id作为修改条件的。作为修改条件的。sql=UPDATE person SET name=?,password=?,age=?,email=?WHERE id=?;(3)删除操作,为什么这里没有以)删除操作,为什么这里没有以Person做参数呢,原因做参数呢,原因是使用的过程中删除操作都是通过是使用的过程中删除操作都是通过id来标志一行记录的,来标志一行记录的,为了使用方便所以传一个为了使用方便所以传一个id就可以实现删除操作。就可以实现删除操作

17、。sql=DELETE FROM person WHERE id=?;(4)查询操作一般分为三种:按)查询操作一般分为三种:按ID查询、查询全部、模糊查询、查询全部、模糊查询。查询。第一种:按第一种:按ID查询操作,传入一个查询操作,传入一个id号返回一条记录,也号返回一条记录,也就是一个就是一个person对象,对象,person对应着数据库里的一行记录,对应着数据库里的一行记录,所以返回值应该为所以返回值应该为Person类型。类型。sql=SELECT id,name,password,age,email FROM person WHERE id=?;第二种:查询全部,也就是查询整张表的

18、全部数据,因为整第二种:查询全部,也就是查询整张表的全部数据,因为整张表有多条记录,所以对应就应该有多个张表有多条记录,所以对应就应该有多个person对象,查对象,查询的时候我们可以用询的时候我们可以用list存放多个存放多个person对象,查询之后将对象,查询之后将该该list返回。返回。sql=SELECT id,name,password,age,email FROM person;第三种:模糊查询,所谓模糊查询是指在数据表中查找与指第三种:模糊查询,所谓模糊查询是指在数据表中查找与指定字符串部分相匹配的字段的行,如我们可以在一个用户定字符串部分相匹配的字段的行,如我们可以在一个用户

19、的数据库中查找姓名中含有的数据库中查找姓名中含有“静静”字的所有记录,可以用字的所有记录,可以用like语句来实现。由于结果可能有多条记录,所以返回值语句来实现。由于结果可能有多条记录,所以返回值好是存放好是存放Person对象的对象的List。sql=SELECT id,name,password,age,email FROM person+WHERE name LIKE?or email LIKE?;第五步:实现第五步:实现DAOFactory.java,它本身是一个工厂模式,它本身是一个工厂模式(关于工厂模式的介绍请查看其它书籍),工厂模式的好(关于工厂模式的介绍请查看其它书籍),工厂模

20、式的好处我们举个现实中的例子来说明,在一家软件公司里,一处我们举个现实中的例子来说明,在一家软件公司里,一些公共类如数据库的代码是由一个程序员来完成的,而前些公共类如数据库的代码是由一个程序员来完成的,而前台代码是由另一个程序员来完成,那么前台程序员不管对台代码是由另一个程序员来完成,那么前台程序员不管对哪张表的实例,都可以统一地用一个实例化工厂哪张表的实例,都可以统一地用一个实例化工厂(DAOFactory)来生成对象,也就说后台发生变化,前台的来生成对象,也就说后台发生变化,前台的代码基本上不用改变,代码如下:代码基本上不用改变,代码如下:public class DAOFactorypu

21、blic static PersonDAO getPersonDAOInstance()return new PersonDAOImpl();设计模式的使用设计模式的使用 插入数据插入数据 插入数据都是以插入数据都是以Person对象为参数插入对象为参数插入PersonDAO类的类的insert(Person person)方法中,插入操作是以行为单位的,方法中,插入操作是以行为单位的,前面说过数据库中的一行记录对应着一个前面说过数据库中的一行记录对应着一个Person对象,所对象,所以在插入操作时应该先实例化一个以在插入操作时应该先实例化一个Person对象,再通过调对象,再通过调用用set

22、XXX()方法设置值,然后通过方法设置值,然后通过DAOFactory工厂得到工厂得到PersonDAO对象,对象,PersonDAO对象是真正操作数据库的对象是真正操作数据库的对象,通过调用它的对象,通过调用它的insert(Person person)方法就可以实现方法就可以实现数据的插入了。主要代码如下:数据的插入了。主要代码如下:public class TestInsertpublic static void main(String args)new TestInsert();public TestInsert()Person person=new Person();/实例化数据实例

23、化数据beanperson.setId(ZS);person.setName(张三张三);person.setPassword(zzzzzz);person.setAge(30);person.setEmail();/通过工厂得到通过工厂得到personDAO对象对象PersonDAO dao=DAOFactory.getPersonDAOInstance();trydao.insert(person);/插入操作,把数据插入操作,把数据bean传入传入System.out.println(插入成功插入成功);catch(Exception e)System.out.println(插入失败插

24、入失败);e.printStackTrace();其余删改查方法的用法与添加用法相同这里不再熬述。其余删改查方法的用法与添加用法相同这里不再熬述。实践项目实践项目 本章实践项目的具体要求如下:本章实践项目的具体要求如下:运行程序时打开窗体,窗体上面有用户运行程序时打开窗体,窗体上面有用户ID、姓名、姓名、密码、年龄、邮箱五个文本框分别对应着数据库密码、年龄、邮箱五个文本框分别对应着数据库中的五个字段,文本框需要添加注册信息,还有中的五个字段,文本框需要添加注册信息,还有两个按钮,一个是两个按钮,一个是“确定确定”按钮,另一个是按钮,另一个是“取取消消”按钮,当点击按钮,当点击“确定确定”时会将文本框中的内时会将文本框中的内容提交到数据库,并且提示是否注册成功。容提交到数据库,并且提示是否注册成功。本章总结本章总结q实体实体bean的介绍:的介绍:q数据持久化概念数据持久化概念q什么是实体什么是实体bean q数据库访问对象程序设计:数据库访问对象程序设计:qDAO设计模式的好处设计模式的好处q设计模式的实现设计模式的实现q设计模式的使用设计模式的使用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁