java课程设计报告javadao模式设计Word下载.docx

上传人:b****2 文档编号:462748 上传时间:2023-04-29 格式:DOCX 页数:15 大小:111.26KB
下载 相关 举报
java课程设计报告javadao模式设计Word下载.docx_第1页
第1页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第2页
第2页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第3页
第3页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第4页
第4页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第5页
第5页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第6页
第6页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第7页
第7页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第8页
第8页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第9页
第9页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第10页
第10页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第11页
第11页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第12页
第12页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第13页
第13页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第14页
第14页 / 共15页
java课程设计报告javadao模式设计Word下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java课程设计报告javadao模式设计Word下载.docx

《java课程设计报告javadao模式设计Word下载.docx》由会员分享,可在线阅读,更多相关《java课程设计报告javadao模式设计Word下载.docx(15页珍藏版)》请在冰点文库上搜索。

java课程设计报告javadao模式设计Word下载.docx

第二章需求分析…………………………………………………1

2.1功能需求……………………………………………………………………1

2.2系统的开发运行环境………………………………………………………1

第三章总体设计…………………………………………………1

3.1分层设计……………………………………………………………………1

3.2DAO组成……………………………………………………………………2

第4章详细设计…………………………………………………2

4.1数据库连接类………………………………………………………………2

4.2开发简单Java类……………………………………………………………4

4.3数据开发层:

DAO层………………………………………………………4

4.4定义数据层实现类:

StudentDAOImpl……………………………………5

4.5建立数据层工厂类…………………………………………………………8

4.6业务层实现类………………………………………………………………8

4.7测试类Test………………………………………………………………9

第五章调试与测试………………………………………………9

5.1运行结果…………………………………………………………………9

5.2遇到的问题………………………………………………………………12

第六章课程设计小结…………………………………………12

参考文献……………………………………………………………13

第1章课程设计目的

1、进一步熟悉Java开发环境,熟悉用Java完成一个应用程序的设计过程,掌握有关编辑、调试和整合程序的方法和技巧。

2、通过此设计,了解Java语言的特点;

熟悉Java程序的编写;

体会Java语言在问题求解中的特点。

3、总结学习Java语言的心得和体会,并对Java课程设置提出自己的意见和建议。

第2章需求分析

2.1功能需求

在Java程序中,经常需要把数据持久化,也需要获取持久化的数据,但是在进行数据持久化的过程中面临诸多问题(如:

数据源不同、存储类型不同、供应商不同、访问方式不同等等),请问如何能以统一的接口进行数据持久化的操作?

此时就需要用到DAO模式。

2.2系统的开发运行环境

本系统开发平台:

Java

本系统集成开发环境:

Eclipse

本系统运行环境:

Windows10

本系统用的数据库:

SQLServer2014

第3章总体设计

3.1分层设计

在软件开发过程之中一定要存在有一个程序的层次概念,每一个程序层次都要完成某些具体的操作,而在一般情况下,分层的原则:

不超过三层的原则,而常见的分层模式如下:

图3-1分层模式图

本课程设计专注于业务层与数据层。

一个业务层可能需要调用多个数据层,而数据层所提供的都是数据库的原子性操作(INSERT、UPDATE、DELETE、SELECT)。

那么就可以给出概念:

·

数据层(数据访问层、持久层),一般会使用“DataAccessObject”表示,简称DAO,在DAO之中提供的是一系列的数据库操作标准(接口);

业务层(服务层),一般会使用“Service”表示,由于业务层最终也是要给控制层进行调用(今天给客户直接调用)、所以业务层也需要由一个自己的操作标准,而一个业务层就需要调用多个数据层。

3.2DAO组成

在整个DAO的设计中实际上都是以接口为操作标准的,即:

客户端依靠DAO实现的接口进行操作,而服务端要将接口进行的具体的实现,DAO由以下几个部分组成:

DatabaseConnect:

专门负责数据库的打开与关闭操作的类;

VO:

主要由属性、setter、getter方法组成,VO类中的属性与表中的字段相对应,每一个VO类的对象都表示表中的每一条记录;

DAO:

主要定义操作的接口,定义一系列数据库的原子性操作,例如:

增加、显示、修改、删除、按ID查询等;

Impl:

DAO接口的真实实现类,完成具体的数据库操作,但是不负责数据库的打开和关闭;

Factory:

工厂类,通过工厂类取得一个DAO的实例化对象;

Operate:

业务层实现类。

第4章详细设计

4.1数据库连接类

在整个JDBC操作过程之中,数据库只有打开后才可以进行一系列的操作,而后数据库的连接有必须关闭。

那么为了方便控制,可以直接将数据库的打开和关闭封装在一个类之中。

数据库的连接类保存包为“cn.edu.tjpu.cs.infosystem.dbc”,而且数据库的连接只针对SQLServer定义。

publicclassDatabaseConnection{

privateConnectionconn;

//声明Connection对象

publicDatabaseConnection(){

try{//加载数据库驱动类Class.forName("

com.microsoft.sqlserver.jdbc.SQLServerDriver"

);

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

try{//通过访问数据库的URL获取数据库连接对象

this.conn=DriverManager.getConnection("

jdbc:

sqlserver:

//127.0.0.1:

1433;

DatabaseName=infosystem"

"

root"

123456"

}catch(SQLExceptione){

}

publicConnectiongetConnection(){

returnthis.conn;

publicvoidclose(){

if(this.conn!

=null){

try{

this.conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

4.2开发简单Java类

简单Java类指的就是累的结构比较单一,主要是由属性、setter/getter方法组成,简单Java类的主要功能是作为一种数据的载体进行存放,而日后对于简单Java类也会出现如下的名称:

POJO(简单Java类)、VO(值对象)、TO(DTO,数据传输对象,主要用于分布式)、PO(持久化对象)。

可是对于简单Java类的组成结构在开发之中也有了明确要求:

简单Java类的最主要的设计思想来源于数据表,所以一定要和数据表的结构映射上;

简单Java类的名称要与数据表的名称保持一致,注意大小写,例如:

student表,类:

Student;

为了方便程序扩展,所有的简单Java类必须实现java.io.Serializable接口;

类之中的属性必须使用private封装,封装后的属性一定要编写setter、getter方法;

类之中一定要提供有无参构造方法;

类之中不允许使用基本数据类型,所有的基本类型全部替换为包装类;

类之中不允许出现任何的输出语句,所有的输出必须交给调用处执行;

类可以有选择性的覆写Object类的:

equals()、hashCode()、toString()。

简单Java类要求保存在cn.edu.tjpu.cs.infosystem.vo包中。

4.3开发数据层:

DAO层

数据层又称为持久层,指的是进行持久化数据操作的。

持久层属于DAO层,所以在进行开发的时候首先要开发出操作的标准,而后进行子类的实现。

因为持久层最终要交给业务层迚行调用,所以持久层必须有一个自己的操作接口,用于定义标准,但是此接口的命名是有要求的,如果当前操作的是Student表,那么这个接口应该命名为StudentDAO,但是为了区分接口还有类,所以现在要求在接口定义前增加一个字母I,所以Student表的持久层标准名称:

IStudentDAO,而且此接口要保存在cn.edu.tjpu.cs.infosystem.dao下(因学生和工人的操作是一样的,所以这里及后面的部分只讨论学生的情况)。

publicinterfaceIStudentDAO{

publicbooleandoCreate(Studentvo)throwsException;

publicbooleandoUpdate(Studentvo)throwsException;

publicbooleandoRemove(Integerid)throwsException;

publicStudentfindById(Integerid)throwsException;

publicListfindAll()throwsException;

publicListfindAll(Stringcolumn,StringkeyWord,IntegercurrentPage,IntegerlineSize)throwsException;

publicIntegergetAllCount(Stringcolumn,StringkeyWord)throwsException;

4.4定义数据层实现类:

StudentDAOImpl

接口标准定义完成之后,下面就可以进行实现类的编写,编写的实现类要保存在cn.edu.tjpu.cs.infosystem.dao.impl子包之中,而且名称后面一定要加上Impl。

但是对于实现类,现在采用如下的方式编写。

注意:

一个业务层会调用多个数据层操作,那么可以将数据库的连接和关闭交给业务层处理,DAO层只完成标准的JDBC操作,而且每一个方法都只完成一个基本的原子性操作。

4.4.1创建

publicbooleandoCreate(Studentvo)throwsException{

Stringsql="

insertintostudent(id,name,age,score)values(?

?

)"

;

pstmt=conn.prepareStatement(sql);

//创建PrepareStatement接口对象

pstmt.setInt(1,vo.getId());

pstmt.setString(2,vo.getName());

pstmt.setInt(3,vo.getAge());

pstmt.setFloat(4,vo.getScore());

intlen=pstmt.executeUpdate();

//执行SQL

returntrue;

4.4.2更新

publicbooleandoUpdate(Studentvo)throwsException{

updatestudentsetname=?

age=?

score=?

whereid=?

"

pstmt.setInt(4,vo.getId());

pstmt.setString(1,vo.getName());

pstmt.setInt(2,vo.getAge());

pstmt.setFloat(3,vo.getScore());

if(len!

=0)

returntrue;

else

returnfalse;

4.4.3删除

publicbooleandoRemove(Integerid)throwsException{

deletefromstudentwhereid=?

pstmt.setInt(1,id);

4.4.4按ID查询

publicStudentfindById(Integerid)throwsException{

select*fromstudentwhereid=?

Studentstu=newStudent();

res=pstmt.executeQuery();

if(res.next()){

stu.setId(res.getInt

(1));

stu.setName(res.getString("

name"

));

stu.setAge(res.getInt("

age"

stu.setScore(res.getFloat("

score"

returnstu;

returnnull;

}

4.4.5查询全部

publicListfindAll()throwsException{

Stringsql="

select*fromstudent"

pstmt=conn.prepareStatement(sql);

//创建PrepareStatement接口对象

res=pstmt.executeQuery();

while(res.next()){

s.add(newStudent(res.getInt("

id"

),res.getString("

),res.getInt("

),res.getFloat("

)));

returns;

}

4.5建立数据层工厂类

最终数据层是要交给业务层调用的,而业务层为了和数据层之间不产生耦合,所以不允许直接使用子类为数据层接口实例化,必须通过工厂类来完成,工厂应该保存在cn.edu.tjpu.cs.infosystem.factory包下。

publicclassDAOFactory{

publicstaticIStudentDAOgetIStudentDAOInstance(Connectionconn){

returnnewStudentDAOImpl(conn);

publicstaticIWorkerDAOgetIWorkerDAOInstance(Connectionconn){

returnnewWorkerDAOImpl(conn);

4.6业务层实现类

如果要定义业务层实现类请一定要记住这个类要有两个功能:

打开和关闭数据库(不管是否出异常,数据库都要关闭)、调用数据层方法。

4.6.1定义IPersonOperate接口

publicinterfaceIPersonOperate{

publicbooleanadd(Personvo)throwsException;

publicbooleandelete(intid)throwsException;

publicbooleanupdate(Personvo)throwsException;

publicListlist()throwsException;

publicPersonget(intid)throwsException;

//

publicListfind(Stringname)throwsException;

4.6.2定义StudentOperate实现类

publicclassStudentOperateimplementsIPersonOperate{

privateDatabaseConnectiondbc=newDatabaseConnection();

publicbooleanadd(Personvo)throwsException{

try{

Connectionconn=this.dbc.getConnection();

IStudentDAOdao=DAOFactory.getIStudentDAOInstance(conn);

if(dao.findById(vo.getId())==null){//数据不存在

returndao.doCreate((Student)vo);

//增加

returnfalse;

}catch(Exceptione){

throwe;

}finally{

this.dbc.close();

4.7测试类Test

在测试类中定义一个StudentOperate变量stuop,调用StudentOperate实现类中的方法实现各个功能。

第5章调试与测试

5.1运行结果

图5-1添加和显示功能

图5-2按ID查询功能

图5-3修改功能

图5-4删除功能

5.2遇到的问题

写完程序后调试,发现显示和查询的功能不行,显示只能显示刚添加的信息,以前添加的信息显示不出来,而查询则什么信息也没有。

我检查了一会儿,觉得可能是HashMap集合有问题,便将它换成了List,但还是不行,在机房检查了很久还是没检查出来,故等到老师检查了我还没完成。

我拿到了宿舍,前前后后检查了一遍,发现list()方法和get()方法返回的是list集合对象和student对象,我没将它们赋予一个对象,就直接写在程序中,导致查询的时候没结果,所以最后改进了就可以了。

第6章课程设计小结

通过这次的课程设计,我对这个学期所学的高级JAVA语言程序设计有了进一步从理论到实践的升华,将自己平时所学到的知识应用到了实践中,还有通过查询了很多的相关知识来充实自己,也使自己的课程设计能够做的比较好。

参考文献

[1]明日科技.Java从入门到精通(第3版).北京:

清华大学出版社,2012.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

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

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