java管理系统项目(精选8篇)
篇一:java管理系统项目总结
期末将至,怕没有时间再去写这篇不成器的文章,所以早早写完,早早留给时间去复习。随着期末的临近,java课程也结束了,距离之前写过的“java-象棋设计心得”有差不多过了2个月了。我们的java课程主要做全班选出来的两个项目,一个是象棋,一个就是人事管理系统。做完都要通过答辩才能评分,以此两次来作为整个java学期的成绩。快走题了,就在这里止步回头!
这一次的主要通过 问题->理解->修改->添加 的步骤讲解,跟java-象棋设计心得的讲解思路基本上差不多。
----问题篇
一开始着手这个java-人事管理系统项目的时候就感觉到这比之前的java-象棋项目难了,知识明显不够,需要边看书本源代码边查看API文档和通过网上来解惑。就这样,一周的时间就过去了,当然一周里还有很多课程需要跟上,所以并不是把一周的所有时间都花在项目设计上。
这里介绍一下我项目中遇到的一些“坎”: 1.布局管理器
GridBagLayout的使用和GridBagConstraints类的使用
类和DefaultMutableTreeNode类和其他类的使用
面板和JSplitePane面板和其他面板
4.设计的界面的还原
5.数据库如何实现数据的保存
可见,问题多多,解决起来又会出现其它的问题,但我知道每一个项目必定存在多个类和面板的设计,设计的过程也是一个不断自我矛盾和自我更正的过程,只有这样设计出来的产品才符合我们的要求。其中首先要说问题的是界面的还原是比较耗费时间的,但这也是任何软件设计的第一步,所以必须理解透!其次就是数据库和SQL语言的学习,因为数据库是新知识,还没有可以通过课程来学习的,这就意味着只能通过自己学习新知识,这又是一个新问题的开始,但我知道必须要克服。最后就是动作的实现问题,例如:点击了这个节点,相应的功能是如何实现,是通过什么来实现的,这些问题也必须理解,因为是答辩问的最多问题。好了,问题篇就到这里了。
----理解篇
理解的基本条件就是问题的产生,上篇说的就是问题篇,那么这里说的就是理解。或许这里有一些东西会跟java-象棋设计心得有些相同,所以会提醒一下就过了,理解是理解软件制作的必要过程,重要性可想而知了,在java-象棋设计心得里,有些理解的方法这里就不在重复了。那么这里要讲的东西不多,主要讲的是功能的实现过程,书本中人事管理系统的功能有,如下:
1.基本信息管理--添加人员信息、修改人员信息、删除人员信息、查询人员信息、部门管理;
2.人员调动管理--人员调动、调动历史查询;
3.人员考核管理--人员考核、考核历史查询;
4.劳资管理--劳资分配管理、劳资历史查询
因为基本上以上的所有功能的实现基本相同,所以这里通过其中一个功能的实现来粗略理解其它功能的实现吧,说的不好请谅解!
那么就说“人员调动管理--人员调动”这个功能的实现,从点击叶子节点人员调用后,调用了人员调用的实现类,在右面板显示相应的人员调用面板,由图可知面板里的放了“人员调动”的JLabel、数据显示的表单Jtable、一些文本框TextField和Jabel,还有下拉菜单JComboBox,以及三个按钮。主面板里使用默认的BorderLayout布局,可以看下图来知道该功能布局的实现:图片的大小和真实的有差别,只作为理解而用。
接下来说如何通过点击面板上的调入新部门的按钮来实现与数据库的连接,当正确操作后,按调入新部门按钮后,调用与数据库连接的实现类的相应方法,来对数据库存放数据的相应表进行修改和给存放历史数据的表进行调动历史添加。这样就完成以一个调用人员功能的实现了,类似的功能也可以参照次步骤来理解。
除了理解好这些功能的实现外,我还应该要是自己来实现一个功能,作为真正理解好一个功能实现的动手机会,这个会在添加功能里详解。好了,理解篇就到这里了!
----修改篇
修改、添加也是在理解的基础上才能对代码进行改进和添加,这里是修改篇,下一篇就是理解篇。可以说书本上的每一项目的代码都存在不足和缺陷,可以运行但运行起来其中总是存在不少的缺陷和矛盾,所以就需要修改,那么在实际开发过程中,修改和添加就相当于软件的后期维护了,这是一个永远也完成不了的功能,要做到软件的完美,是不可能的!只能不断的修改,添加,再修改,再添加。。
在书本的人事管理系统代码,只代表本人的观点下,进行了一些修改,这里就不一一说明了。
----添加篇
因为人事管理系统的庞大,其功能也可以有相当多,之前就说过,功能的实现都是差不多的,而且考虑到作业提交和答辩的时间,所以只添加了一个功能 “加班信息管理--添加人员加班信息、人员加班信息查询”,请看下图:
总结:虽然java课程随着人员管理系统的完成而结束了,但java的学习还会继续,这是一个厉害的技能,不是说课程教完就结束了,老师只能带领我们进门,但java提升是靠自己的努力的,有不少人说java作为一个谋生的技能很不错,我想我会在边学习java之余边体会java的魅力。
篇二:java管理系统项目总结
这个学生管理系统相对来说比较简单,主要就是复习下java怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧。
科技计划项目的实施是实现科技计划的唯一途径, 面向中小企业的科技计划项目的具体实施可以发挥科技计划对中小企业的宏观调控和引导作用。为发挥中小企业在地区经济发展中的重要作用, 推动地区的科技发展水平建设, 建设科技计划项目管理系统。
本系统利用Flex与Java的集成构建, 介绍了系统的功能设计和数据库设计, 并着重介绍了部分功能实现。
1 系统概述及开发环境
1.1 用Flex技术构建该系统的意义
由于该省的企业分布广泛, 硬件环境较差, 不能部署较复杂的客户端软件, 而且该省工作人员和企业用户计算机水平有限, 所以该地区科技计划项目管理需要一个具有友好性、扩展性和安全性的系统。
利用RIA技术可以帮助该地区科技厅实现科技计划项目的推荐、申报、管理、验收和咨询服务等功能, 为其科技计划项目管理构建一个界面友好、扩展性强、易于交互的系统。
1.2 系统开发环境
该系统的开发环境, 除了需要具备Java应用程序的环境外, 还需要满足开发Flex应用程序的条件。系统的开发和应用环境如下:
Java编译器:J2SE 1.5.0.40
开发包:Spring2、Hibernate3、Cairngorm1.2
开发工具:Eclipse 3、Myeclipse 6.0、Flex Builder3.0 plugin、Adobe Live Cycle Data Servcies ES 2.6
2 系统功能设计
系统包括评审项目专家管理、专家咨询管理、项目申报管理、项目监理管理、项目验收管理、项目推荐管理。
2.1 系统基本配置功能设计
(1) 用户管理
用户管理包括用户信息编辑、删除、审核、停用等操作。用户可以注册项目申报用户, 并修改资料。系统管理员能够查看用户状态, 编辑用户信息, 审核用户资格等操作。
(2) 用户组管理
系统操作员能够增加、删除、修改和査看用户组。默认的用户组有系统管理员组、领导组、专家组、用户组等。
(3) 权限管理
权限管理和用户组管理衔接在一起, 给某用户组分配权限后, 该组的用户就获得了改组的相应权限, 其权限以字符串类型存储, 以字符串中该为为1或0来判断是否具有权限。
2.2 项目申报管理设计
项目申报主要包括以下几个重要功能:新项目申报、查看所有申报项目、项目中期检查、项目验收、二次项目验收和重大事项变更等。在每个管理中要具备查询、打印等功能。
2.3 项目推荐管理设计
录入推荐公司的信息、项目推荐信息和视频推荐信息后, 由厅领导对推荐信息进行资格审核, 然后, 由厅办公人员进行发布。系统中推荐信息以列表显示, 字段包括:企业名称、企业类型、公司的经营信息等。点击“查看”按钮可以査看公司推荐信息的洋细。
3 集成架构实现系统
3.1 业务层实现
业务层是整个应用的业务处理的核心, 负责为客户端的用户操作提供后台业务支撑。系统中采用Spring框架实现业务层, 利用IoC机制, 实现对持久层DAO组件的注入。该层有业务服务接口、接口实现类及数据传输对象组成。业务服务接口定义了一系列表示层需要的方法, 供远程方法调用, 例如项目申请书中的类MyPjAService做为接口, 定义了项目申报、查询、提交方法等。
3.2 表示层的实现
表示层直接与用户交互, 为用户提供用户界面, 根据用户的请求, 远程调用相应的业务处理逻辑, 并将结果展示给用户。系统釆用Flex技术实现, 结合Cairngorm微架构对表示层釆用MVC设计模式, 实现表示层中模式、视图与控制器之间的分离。
3.2.1 模型的实现
系统的视图层要显示的数据模型全部保存在Pro Model Locator中, 该类实现了Cairngorm框架的Model Locator的接口, 用于存储数据, 实现方便管理、统一操作。Pro Model Locator采用单例模式设计, 只允许在程序运行时只有一个实例, 客户端程序共享一个Model层。
3.2.2 控制器的实现
在Flex客户端中, Cairngorm框架起到的就是控制器作用。Cairngorm微架构的控制器作用体现在它提供的Front Controller组件上, 该组件通过监听View派遣的携带了数据的事件, 将事件以及其携带的数据映射到具体的Command中, 由Command再负责创建Delegate, 实现与服务器端的通信。
3.2.3 视图的实现
系统的外观布局采用嵌套式布局, 整个系统的视图层以project.mxml为基础, 整个页面是一个VBOX容器, 该容器内包括HBOX和Hdivide BOX组件, Hdivided又嵌套了两个VBOX组件:menus和display Area。menus包括了Tree组件, 用于页面导航, display Area用于显示一系列的State, 各个State由一系列的自定义组件组成, 最终实现整个页面的展示。
3.3 数据持久层实现
数据持久层主要封装对于域模型对象的操作, 是系统的根基, 在数椐持久层采用Hibernate, 来提高系统的对可移植性。数据持久层为业务逻辑层提供服务, 实现数据访问等操作。数据持久层封装了访问数据库的所有方法, 实现了系统的松耦合性。数椐持久层采用了Hibernate框架, 可以大大缩短开发过程, 使得系统持久层开发结构清晰。
3.4 LCDS实现
采用Flex技术及与Java技术的集成, 远程服务器由LCDS实现, 在部署服务平合时, 要将LCDS.war包放在服务器下的WEB-INF目录里。在服务器端需要Services.mxml和remotingconfig.xml两个接口文件。
为了支持分布式事务管理, 以插件的形式将JTOM管理器部署到Tomcat服务器的WEB-INF/lib下, 运行LCDS。
4结束语
利用Flex技术来实现的客户端能为用户提供一个更髙层次、更全方位的网络体验。基于Flex与Java的RIA系统开发技术除了具备传统Web应用框架所具备的优良的体系结构、开发成本低等优点外, 还可以给用户提供良好的用户体验, 从而提高与用户的交互性, 改善系统的性能。
摘要:主要介绍了利用Flex与Java的集成构建, 实现科技计划项目管理系统的方法, 包括业务层的实现, 表示层中模型的实现、控制器的实现、视图的实现, 数据持久层的实现以及LCDS的实现方法。
关键词:项目管理系统,Java,Flex,业务层,表示层,数据持久层,LCDS
参考文献
[1]朱欢.基于RIA的商业业务管理系统构建[D].杭州:浙江大学, 2008.
[2]Oracle项目管理[EB/0L].http://www.Oracle.com/lang/cn/applications/projects/intro.html, 2009
[3]孟岩.跨越鸿沟-Adobe的RIA战略[J].程序员, 2008 (5) .
关键词:Java程序设计;项目驱动教学模式
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 10-0000-02
在目前的java程序设计教学中,普遍存在着课本不及时更新,无法摆脱应试模式框架,以及教育与实际脱轨等一系列的问题。而java程序设计是一个对学生的操作和实践很有依赖性的学科,所以,只有选择项目驱动教学的方式,才能使得学生的实践和操作能力得到一定的发展,更好地学习java的程序设计。
一、什么是项目驱动教学
项目驱动教学法是指通过进行一个完整的项目工作,来达到教学的目的,让知识和学生的动手能力都可以得到很好的进步。项目驱动教学模式主要应用于计算机软件这种比较复杂,学生可以借助项目的发展,来接受一些诸如程序设计之类的知识系统。
二、项目驱动教学模式的意义
项目驱动教学模式可以具体针对每一个学生来进行程序设计的教学。通过分组讨论等方式,可以使得学生的思路更清晰,更好地掌握java程序设计的知识理论。可以大大提高学生的学习兴趣和实践能力,使得高职院校更好的和社会接轨。所以,项目驱动教学模式是一种具有划时代意义的教学史上的重大改革。
三、就java程序设计对项目驱动教学模式的研究
(一)如何选择授课项目
项目的选择应该与当下社会的发展趋势相匹配,这样的授课项目才可以与时代的发展接轨。项目的选择要根据授课时间、授课地点以及学生的学习能力来判断。如果项目过难,学生不易接受,反而达不到预期的效果。反之,项目过易,学生的积极性不容易被调动起来,也容易达到事倍功半的效果。如果项目的基体过于庞大,教师很难完全的对项目进行细致的分析,会影响教学的完整性。而项目的技术含量如果太高,就会使得学生失去学习的兴趣,打击学生对项目研究的勇气和信心。所以,教师应该根据学生的接受能力,授课的周期来具体分析,为学生选择合适的项目来进行授课作业。
(二)如何合理安排学生分组和授课进度
授课项目的选择是为了完成整个学期的学业。所以项目的安排要合理地分散于学生学习的一个周期之内。根据授课的进度,适当增加项目的难度以及技术含量。这样比较利于学生的学习积极性和学习兴趣一直处于一个合理的状态,避免了填鸭式教学的传统弊病。
学生的分组可以按照学生的接受能力和领导组织能力。领导组织能力强的同学可以作为每个小组的组长,接受能力高的同学可以作为副组长。这样就能更有利地组织学生来一步步完成项目的每个阶段。并且能更好地激发学生的团体协作精神和部分同学的领导力,并且可以大幅度减少教师的教学负担。还能使得学生更好地适应今后的工作。
(三)如何进行项目驱动教学
1.教师讲解软件开发的环境
在授课的开始,教师一定要本着当下软件开发的环境为学生作深入细致的讲解。当下,软件开发企业为了降低成本,提高速度,使用的是一体化的集成设备,即把数据库,服务器等集成在一起,这就增加了学生学习的难度,使得原本简单的东西复杂化。
Java的后台程序都是英文版的,这就要求教师更合理地引导学生来正视软件开发的难度,同时借助语言,肢体,以及软件的实际操作来打消学生的负面心理,提高学习的积极性。
2.确定授课的软件
在教学过程中,一定要选择合适的授课软件及其辅助工具。因为java的程序设计不但要求学生知道程序设计的目标,更要让学生知道该过程及其原理,以及软件开发的条件和必备工具。在授课初期,教学过程一定要采用可视化的软件,这样可以使得学生更直观地看到程序的管理,编程等的产生和形成。在授课达到一定程度之后,再采用非可视化的开发工具,锻炼学生的能力,使得学生更好地掌握软件开发的知识,更好地锻炼学生的动手能力和操作能力。
3.授课的考核
在当下,传统的考核方式已经不再适应项目驱动授课的教学模式。在项目驱动的模式下,我们不应该只用笔试,口试的方法对学生的能力和知识量来进行评定。在此,我们应该在教学到了某一进度时,让学生亲自动手制作某软件或者某程序。例如:让学生自己动手来编程,而不是让学生在纸上填写编程代码。当学生的考核完成以后,由学校的权威专家来逐个评判考核的结果,并评分,计入考核档案。这样才能防止某些学生作弊,更好地体现考核的权威性和公平性。
4.教学实践
当学生的考核完成并且合格以后,就应该让学生来参加实践。实践可以是教师根据企业的发展来设计出的项目,也可以是学生自己寻找的项目,无论如何,都要和日后学生即将步入的社會相适应,不可以搞形式主义,让学生空有一身知识而无处倾泄。实践可以更好地锻炼学生的动手能力,以及对之前的知识更为系统地掌握和消化。并且能让学生更为自信的走向社会。
5.引导学生就业
当学生的知识掌控的比较随心所欲,并且动手操作能力也能得心应手时,教师应该主动引导学生走向社会,即让学生就业。根据学校的优惠政策和人脉关系,为学生选择一个适合的行业来发挥他们的最大才能。初入社会的学生并不懂得社会上的一些潜规则和人际交往,教师应该用委婉的语言向学生合理解释,如果话说的太直接,容易导致学生对社会产生恐惧的心态,打消学生走向社会的积极性。学生应该努力自己走向社会,用自己的知识和能力,选择合适的就业岗位,并且在教师的帮助下,把自己的一切做到最好,发挥自己最大的优势适合自己的空间。
四、小结
项目驱动的教学模式现在的我们已经不陌生,它的作用是把教学和实践完美的结合在了一起。杜绝了以往学生只知理论,不懂社会实践的尴尬局面。学生步入社会以后可以更快,更好地接受社会所给于的压力,及时把自己的知识应用在工作中。所以,项目驱动的教学模式是今后教育改革的必由之路。
参考文献:
[1]马玉青.计算机绘图教学中应用“任务驱动”教学法初探[J].职业教育研究,2005,(10)
[2]姜大源.职业教育专业教学论初探[J].教育研究,2004,(05)
[3]张哲,陈桂生.在Java语言教学中实施“项目驱动”教学法的实践探索[J].教育与职业,2007,(18)
[4]张党省.论职校教师在项目教学法中的角色[J]. 科教文汇(下半月),2006,(09)
[5]岳云峰,顾晖,李跃华.计算机硬件课程教学中的项目驱动教学法[J]. 南通大学学报(教育科学版),2007,(03)
[6]吴言.项目教学法[J]. 职业技术教育,2003,(07)
[7]兰景英,范勇.基于项目驱动的软件测试人才培养模式[J].计算机教育,2011,(6):10-13
[8]陆芸婷.基于工作过程的《数据库基础》课程设计[J]. 中国科技信息,2009,(15):269-271
[9]朱雄军,杨旭东,陈晴.高职计算机网络专业基于工作过程的课程体系设计[J].职业技术教育,2008,(5):32-33
[10]罗伟,张莹,张翠英.基于“工作过程”的铁道技术专业课程体系构建[J].陕西教育(高教版),2008,(3):34
先由通讯服务器(LISServer)开一个8088端口,当接收到客户端发送的内容,然后将 行解析,然后根据解析出的内容作出相应的回应,这些回应是利用jDBC从数据库掉出 在与数据库连接时要用到一个数据库连接池,连接池的作用是用于避免频繁的链接数据 库,这样可以提高对用户的回应效率。
用到的类有:
LISServer:启动服务器并监听8088端口
DispatchSocket:一个多线程的类,负责处理每个客户端的请求
Requset:请求类,负责客户端发送的请求处理
Response:响应类,负责将数据输出到客户端
WebAppConfigManager:一个负责读取web.xml文件的类,同时生产对应的数据对象, 该数据包含在WebApp类型的对象里,单例模式类
WebApp: 对应xml文件里的节点的类
ServletMapping :对应xml文件里的节点的类
BusinessServlet :对应xml文件里的节点的类
ConfigDataSource :对应xml文件里的节点的类
Super :业务抽象类
CCB :建设银行业务类
ICBC :工商银行业务类
BaseDao :业务接口类
InterestBean :数据库ccb表格对应的映射类
MyUser :数据库myuser表格对应的映射类
DBUtil :连接数据库操作类
MyUserDao :负责对myuser表格操作的类
CCBDao :CCB业务处理类,负责对数据库数据操作
ICBCDao:ICBC业务处理类,负责对数据库数据操作
LogInfo :日志文件类
用到的技术和资料:1.网络编程应用2.IO流操作应用3.字符串分解应用4.XML解析(JDOM、DOM4J)应用5.JDBC连接数据库和数据库操作应用6.JUnit测试用例应用7.反射技术应用8.工厂模式应用 9.集合应用 10.数据库连接池应用 11.持久层应用 12.多线程应用 13.日志文件应用14.接口、抽象类应用 15.面向接口,面向抽象,面向父类编程应用 16.properties配置文档。
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
1、掌握项目开发的基本步骤
2、具备极强的面向对象的分析与设计技巧
3、掌握用例驱动、以架构为核心的主流开发方法
必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!
关于基础知识:你可以看看这些名词或知识点,看是否能说出个一二三四来。JavaSE----基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while----面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super----异常处理:理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则
----数组与集合:数组的定义和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator----常用类:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正则表达式)
----反射机制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils(apache-commons)
----输入输出流:InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流类、Decorator设计模式与包装流类、对象序列化和反序列化
----多线程:Thread、Runnable、sleep、wait、notify、synchronized、lock Servlet和JSP----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object、、HTML与JavaScript----你需要能够理解常见的网页标签、理解在网页中引入JavaScript的方法、以及JavaScript的基本语法与使用方法
以上,就是你进一步学习Java所必备的基本知识。特别是一些个专业术语和名词,看到这些名词,如果你像看到亲爹一样亲切,那么说明你对Java的基础知识就很熟悉了。接下来是SSH:
对于初学者来说,这三大框架被赋予了太多神秘的色彩,似乎它们是重中之重的知识!但是对于拥有多年Java开发经验的专业技术人员来说,对于那些Java牛人来说,却对这三大框架不太感冒!难道它们不重要吗?
现在很多企业都在用这三大框架,所以很多企业也把掌握这三大框架作为招聘的必备条件。不可否认的是,也有很多大型企业没有用这三大框架,这些企业经过多年发展,自身已经有一定的技术积累,也形成了自己独特的技术框架体系。这三大框架既可以说很重要,也可以说不重要。
说重要的原因在于:这三大框架对JavaEE开发中所存在的普遍的问题,提供了优美的解决方案,它们蕴含了这个行业中最NB的开发人员的努力和想法,所以,学习这三大框架,你就可以窥探到这些处于技术巅峰的牛人们究竟对一个问题是怎么想的,通过一种什么样的设计思路去解决问题的。所以,对于你来说,你没有太多项目开发的经验,经验是什么?经验就是你知道可能会遇到哪些问题,针对哪个问题可以有哪些解决方法,在某个情景下,哪种解决方法是较好的,哪种方法不太好等等!如果你没做过什么项目,你根本就不会去意识到你可能会遇到哪些问题,而这些问题往往又是非常关键的!解决得不好,会影响到你的程序的稳定性、可扩展性等等!三大框架就给初学者提供了了解你以后可能会遇到哪些问题,以及针对这些问题的解决方案!
当你了解了这三大框架为什么是重要的,那么你也就能理解,为什么这三大框架也可以说是不重要的。如果你曾经开发过很多项目,你碰到了各种各样的问题,凭着你的技术功底,逐个击破了这些问题,在这些人眼里,三大框架(是不是还有N个框架?呵呵)都是浮云!
你属于哪一种人呢?如果你没有太多项目开发经验,那么三大框架对于你来说就是非常重要的!而且,由此你也知道了该怎么去学这三大框架。对于三大框架的学习而言,着力点在于给你展示问题,并触发你自己主动的思考,我们鼓励你提出自己的想法,也许你的想法很白痴,但那毕竟是你自己的想法,如果你不知道牛人的想法,那你怎么知道自己的想法是很白痴的呢?在这种思想的碰撞过程中,你就会逐渐提高自己!所以,三大框架学完之后,你不应该只是看到一大堆配置文件,你不应该只是看到了一些Action,一些Service,一些映射文件,你不应该只知道session.save/update/delete,你不应该只是知道struts2中有一堆interceptor,你不应该只是看到一堆jar包„„
如果你只是知道拷贝一堆jar包,定义一系列配置文件之后,SSH三大框架就能够运行起来了,也可以给你干活了,那么,很悲哀的是,你仍然没有掌握三大框架的精粹!请你回答以下问题: Struts2:
为什么每次请求都要创建一个Action对象?
ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题? 为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求? 请你给我谈谈ValueStack?
Struts2是如何实现MVC设计模式的? Spring:
你为什么要用Spring? 请你聊一聊IOC/DI?
什么是声明式的事务管理?为什么要使用声明式的事务管理?Spring如何实现声明式的事务管理? 把spring和hibernate集成,定义事务管理特性的时候,为何要将除了添加、删除、更新操作之外的方法,即主要执行查询任务的方法定义为read-only? Hibernate:
请你谈谈你对OR映射的理解?
很多人说Hibernate不适合大项目,性能有问题,你是如何理解的? Hibernate为什么一定要定义一个数据库标识?
为什么Hibernate建议你的实体类实现hashCode和equals方法? Hibernate实体类中的数据库标识与数据库主键之间关系的认识? Hibernate关联映射与数据库外键之间关系的认识?
调用session.save()方法,hibernate一定会发出insert语句吗?谈谈你的理解 调用session.update()方法,hibernate一定会发出update语句吗?谈谈你的理解
请你聊一下以下名词、概念或用法:lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size 配置了lazy=”true”一定会实现懒加载吗?
Hibernate中的“N+1”问题
Hibernate有哪些最佳实践?
以上并非SSH中全部重点的问题,但它们能考察你能否灵活运用SSH框架!如果你能深刻理解这些问题,再配以合适的实战项目训练,你也会逐渐成为牛人!
最后是项目开发能力:
不管你是学Java还是别的技术,你的根本目的在于给客户创造价值!否则,你下大力气学习的东西,随着技术的进步和更新,很快就会过时!所以,技术的核心在于用技术创造有价值的成果!也就是说,客户需要什么,你就要用技术把客户需要的东西给他造出来!一个公司之所以要用各种福利条件极力挽留你,是因为你能够给公司带来极高的利益!那么,你有什么可以给公司利用的呢?公司最看重你的哪方面的能力呢? 做项目需要的能力很多,其中最核心最基础的就是建模能力(现在最主流的就是面向对象建模!)。什么是建模能力呢?
我给大家一个面试题:
一个保险公司的保险卡管理模块:销售人员领取保险卡信息(保险卡数量、卡号、领取日期),然后直接销售给客户,销售完毕后,将保险卡信息录入保险公司系统内部(销售人员信息、购买人信息、购买的保险卡数量、卡号等),客户登录保险公司网站激活保险卡,需要填写(保险卡卡号、激活密码、被保险人信息、受益人信息)
要求就是:如果这个模块交给你来做,你要怎么做?你要解决哪些问题?你可否画个图,给我描述一下你的想法是什么吗?
这只是一个面试题而已,因为只有简单几句话,所以我把它放到这里,让大家感受一下所谓建模要解决什么问题。而业务领域的问题实在是太多了!也许一个几十上百页的需求文档才能把某个业务领域的问题描述清楚,而你的职责就是要把它们实现出来!
某个公司要开发一个考勤管理系统,要求与现有的人力资源系统对接,你是主要的技术负责人,那么,你要做哪些工作呢?
某ERP项目要实现一个排班管理模块,交给你去完成,你如何去完成呢?
不要抱怨项目经理给你的信息太少(只有几句话),不要抱怨客户没有描述清楚他们的需求„„你的价值就在于理顺所有的问题,用各种手段获得你想要的信息,按照一定的思路汇总,并在特定的时间里逐个解决它!
你应该意识到学Java不是一个坦克大战、一个网络飞车、一个CMS、一个DRP、一个OA那么简单,你不要沉迷于那些技术细节(虽然也是有必要的,但不要转牛角尖),不要满足于实现了CRUD式的项目需求(虽然这是基础中的基础),在你的前方,永远有一个目标在那里,需要你去努力追赶!
今后你将面对更加繁杂的需求,你学习项目的唯一目的,就是:学习如何将需求转化为实现,如何对需求进行分析,如何建立概念模型,如何理顺各种概念之间的关系,如何进行设计,如何选择合适的技术来实现你的设计方案,如何对你的实现进行测试,如何解决你所遇到的形形色色的问题(性能、需求变更等)。当你真正到公司里面从事了几年开发之后,你就会同意我的说法!
Java项目开发 课程编码: 010228A 学 时: 84 其中必做: 84 学 分: 1.5 开课学期: 第3学期 适用专业: 计算机软件技术 课程类别: 选修 课程性质: 专业课
先修课程: C语言程序设计、Java程序设计
一、课程性质及任务 本实训是计算机软件技术专业Java方向的实践性环节。通过本次实训,可以系统掌握Java语言程序设计、数据库原理级应用、Struts2企业级应用、Spring和Hibernate开源框架的使用,并锻炼学生的实践动手能力。整个实训要求及环境,全面模拟企业实际开发环境以及项目管理规范和流程,使学生在实训中掌握企业开发的实际运作流程,提高学生进入企业的适应能力。
二、课程基本要求(1)掌握Java编程基本知识的实际运用;(2)掌握SQL Server数据库的设计与操作,备份与恢复;(3)掌握Struts2的数据类型转换、数据校验、国际化、OGNL表达式、拦截器、文件上传与下载以及Struts2集成Spring等;(4)掌握Spring IOC的配置与运用、Hibernate ORM的配置与运用; 将上述知识运用到具体项目中,以学生熟悉的“学生选课系统”为实训项目,由学生自己理解需求,业务逻辑,完成系统的需求分析、概要设计、详细设计、编码、测试等工作,并提交需求分析报告、系统可运行代码以及数据库设计备份文件(.sql文件)并由此评定成绩。
三、实训内容与学时分配(84学时)序项目
内容提要 学时 性质 要求 号 需求分析 1.数据库设计 2.超市管理系统公共类设计 1.12 综合 必做 3.(Swing+SQL Server 2005实现)模块设计(登录模块、主窗体、采4.购订货模块、人员管理模块)第 1 页
Java项目开发实验教学大纲 在Eclipse中实现程序打包 5.需求分析 1.数据库设计 2.使用CVS进行团队开发 3.物资管理系统公共模块 4.综合
Site Mesh是一个非常优秀的页面装饰器框架, 它将页面共同内容放在装饰器页面中, 通过对所有的用户请求和服务器响应进行过滤, 把装饰器中指定的共用内容插入到被装饰页面中, 从而形成一个完整页面。
Site Mesh框架通过配置文件来配置制定的装饰器, 对于被装饰的页面而言, 无须知道自身被谁装饰。通过Site Mesh的页面装饰, 可以提供更好的代码复用, 无须使用include指令便能显示其装饰效果, 目标页面与装饰页面完全分离。而且, 应用中所有的页面都使用相同的装饰页面, 项目风格统一, 整体效果得到提升。
二、Site Mesh框架应用配置
SiteMesh框架可以在官方网站http://www.Opensymphony.com/download.action下载。当前, Site Mesh的最新版本为2.4.2, 推荐下载sitemesh-2.4.2.zip, 将其解压缩后, 便可按下面步骤在项目中进行配置。
(一) 在项目中的配置
1. 将sitemesh-2.4.2.jar文件复制到项目的“WEB-INFlib”目录下, 同时, 将“sitemesh-2.4.2srcexamplewebappWEB-INF”的sitemesh.xml和decorators.xml文件复制到项目的“W EB-INF”目录中。如果要与Struts2整合应用, 还需要将struts2下的struts2-sitegraph-plugin-2.1.8.jar文件复制到项目应用的“WEB-INFlib”目录下。
2. 在项目的web.xml中配置Site Mesh框架的核心过滤器, 这需要根据Site Mesh是否与Struts2整合而决定配置情况。
(1) 不与其他技术整合
(2) 与Struts2整合
(二) 在页面上的配置
在项目的配置完成后, 如果要应用Site Mesh框架, 还需要在定义的装饰器页面上进行标签库引入的配置, 即加入以下语句。
三、Site Mesh框架应用
在完成以上Site Mesh框架的配置后, 便可在项目中应用Site Mesh框架。下面, 笔者通过一个示例简单阐述Site Mesh框架的应用。
(一) 定义装饰器页面
定义装饰器页面很简单, 就是创建一个jsp页面, 将页面效果做完整。然后, 在该页面中指定的部位使用
鉴于篇幅限制, 页面的代码在此省略。笔者的示例装饰器页面名为main.jsp, 存放在/decorators目录下。
(二) 配置装饰器页面
将上文配置在WEB-INF目录下的decorators.xml打开, 将内容删除, 添加如下内容, 即可完成装饰器页面配置。
(三) 定义被装饰的页面
所谓被装饰的页面, 就是开发过程中实现的功能页面, 如数据录入、修改、查询等页面。应用Site Mesh框架后, 被装饰页面可以很简单。下面是笔者示例的被装饰页面, 名为page.jsp, 存放在根目录下。由于用作示例, 所以功能较为简单, 以下为其代码。
应用Site Mesh框架后, 直接访问被装饰页面page.jsp即可。
四、结束语
【摘 要】在《Java 程序设计语言》教学中引入项目教学法,充分激发了学生学习的积极性,培养了学生的动手能力,提高了课堂的教学质量。本文主要对项目教学法在《Java 程序设计语言》课程中的实施进行了深入的讨探。
【关键词】项目教学法;实施;Java程序设计语言
《Java 程序设计语言》是一门面向对象的编程语言,具有很好的易用性及跨平台性,因此受到业界的欢迎。为迎合企业用人的需求,各大高校的计算机专业都将其设置为骨干课程,另外,本门课程还是《Java Web程序设计》、《轻量级JavaEE开发》等课程的前导课,具有很强的理论基础。在教学的过程中,教师应侧重培养学生的学习兴趣及动手能力,传统的教学模式多偏重于理论教学,轻视实践教学,这种方式下培养的学生独立学习和创新的能力相对较差,枯燥的理论学习极易将学生的学习积极性打消。为了避免这种传统教学手段所带来的弊端,满足企业对应用型人才的需求,提出将项目教学法引入到《Java程序设计语言》课程中来以提高课程的教学效果。
1.项目教学法
项目教学法是通过设计并实施一系列完整的项目而进行的教学活动[1]。传统的教学方法侧重于知识与技能的传授,通常以教师为主体,学生多处于被动的状态,很难主动参与到教学的过程中。项目教学法是由教师选择适当的项目,在教师的指导下,学生可以采用分组的形式共同完成对项目的实施。整个教学的过程中,形成以教师为主导,以学生为主体的教学模式。
项目教学法中所选择的项目应切合实际并且要紧密联系本门课程的教学内容,项目的难度要适中应围绕一个具有实际价值的项目展开,以达到激发学生学习兴趣的目的[2]。项目教学法以培养学生能力为中心,既考察项目最终是否按要求完成,又要考察项目完成的过程及质量,充分培养了学生遇到问题、分析问题、解决问题的能力,提高了学生的职业素养和专业水平。
2.项目教学法的实施
《Java程序设计语言》是一门应用性很强的课程,在采用项目教学法完成授课时需要注意项目实施的过程,以确保项目能够按照预期的进度进行开发。
2.1项目的选择
项目确定的是否合理是项目教学法能否顺利达到预期目标的关键因素[3]。所选择的项目应符合本门课程所涵盖的知识点,项目的难易程度应适中,太难的项目会导致学生完成时失去信心,太简单的项目难以实现预期的教学目标,因此能否合理的选择项目是对任课教师教学水平的一个考验。任课教师除了要充分掌握所教授课程的专业知识外,还应具有项目开发的能力,这样才能更有效的组织好项目教学工作。
为了能够让学生更好的掌握面向对象的编程思想,所选择的项目应该符合教学大纲的要求,从实际的角度出发本次的项目确立为网络聊天程序。该项目的实施可解分为三个阶段性的任务。任务一:编写网络聊天程序的界面。在该任务阶段主要完成聊天程序界面的设计,掌握Swing中的常用组件的使用情况。任务二:编写网络程序中接收消息端。通过该阶段的学习学生可以掌握事件处理机制相应代码的编写及多线程相关的内容。任务三:编写网络程序中发送消息端。在该阶段中除继续巩固事件处理机制外,还应掌握网络编程的相关类及方法。
2.2项目的具体实施
部署好项目阶段性任务后,教师可将学生分为几个小组,每组确定一名项目组长,每组的项目组长根据项目所需完成的任务在同组内进行细化分配给各组的组员,保证每名同学都能够参与到项目的开发中。在项目开发的过程中,教师要跟进每个项目组开发的进度,定期召集各项目组组长会议,了解各组的项目进展及开发过程中遇到的问题,并将相应的内容形成文字材料以便于后期对项目进行总结。
在项目实施的过程中,教师可以针对项目中所涉及到的知识点进行一下简单的讲解,让学生自己对本门课程中的内容进行扩展,起到“抛砖引玉”的作用以达到培养学生自主学习能力的目的。项目实施程中会遇到很多问题,对于普遍存在的共性问题,教师应提供一种解决的方案并启发学生考虑是否还有其它的解决办法。对于个别项目组存在的问题,可以让各项目之间组进行讨论,商讨解决的方案,以达到增强学生团队精神的目的。
项目教学法更注重学生项目完成的过程,在项目实施的阶段教师要充分发挥项目经理的作用,引导学生完成各个阶段的任务,每个阶段结束后对本阶段存在的问题进行总结,找到改进的措施并准备进入下一个阶段的开发,充分让学生体验企业中项目开发的过程。各阶段任务结束后,教学应要求各项目组对整体的项目进行测试,检测项目存在的不足并进行最终的修改,修改完成后形成项目结题报告,阐述项目开发过程中遇到的问题、解决的办法及通过该项目了解的知识点,为日后项目教学法更好的应用打下坚实的基础。
2.3项目的评价
项目结束后教师可以组织学生以项目组为单位对自己的项目进行汇报展示,每个项目组需要说明本组项目开发的整体架构及开发流程,还要阐述在项目开发过程中所遇到的问题及解决的办法。通过听取汇报的方式,其它组的成员可以提出自己的意见和建议,与此同时也会对自身项目存在的不足有一个清醒的认识,做到取他人之长补自己之短。之后教师要对此次项目的完成情况进行总评,对学生项目完成的质量、知识量的涉取、完成项目的创新之处等方面进行评价。首先要对学生在项目开发过程中的闪光点进行表扬,以激发学生学习的积极性。其次还要对项目中存在的问题及可完善的部分进行总结,并提出解决的建议。最后对本项目中所涉及到的知识点进行梳理,加深学生对本门课程知识点的理解。通过这种评价方式可以全面提高学生的学习兴趣及综合素质。
3.项目教学中注意的问题
在教学的过程中要实施项目教学法完成教学任务需要注意几下几点:
(1)项目的选取。项目的选取是项目教学法能否顺利实施的关键,取材要遵循教学目标,所选的项目应尽量覆盖本门课程的知识点。项目的选取应符合学生的能力,这样学生在项目开发的过程中可以获得成就感,有利于学生自信心的建立。通过循序渐进的方式完成项目的开发可以扩展学生知识的广度和深度,达到培养学生专业能力的目的。
(2)师生角色的重新定位。项目教学过程中,教师从传统意义上知识的讲授者转变为任务的制定者和学生的引导者,学生从被动接受知识,转变为主动解决问题。项目开发的过程中教师与学生相互交流,对学生遇到的问题进行指导,培养了学生解决问题的能力。
(3)增强师资培训。项目教学法将书本上的知识转换为实际的项目,需要教师自身具有很强的专业能力及项目开发的实践经验,因此需要增强教师的业务能力,以适应这种新的教学模式并提高教学的水平。
4.结论
项目教学法将枯燥的理论知识融入真实的项目,充分发掘了学生的创造潜能,突破了学生以往学习的方式,培养了学生主动获取知识的能力。将项目教学法引入到《Java程序设计语言》中,提高了学生的学习兴趣,在此过程中学生也积累了项目开发的经验,为后续其它系列课程的学习及实现培养满足企业用人需求的目标奠定了坚实的基础。
【参考文献】
[1]尹强国,冯娜.企业项目教学法在计算机实践教学中的运用[J].现代企业教育,2008(18).
【java管理系统项目】推荐阅读:
java图书管理系统心得06-24
java图书管理系统报告06-27
范围管理项目管理07-02
工程管理项目管理06-21
项目管理合同管理制度06-29
城建项目管理系统07-28
科研基金项目管理系统07-09
施工项目材料管理06-03
媒体项目运行管理06-20