第一篇:java项目心得总结
java项目心得总结
篇一:Java应用项目开发总结报告
1、In Action
(1)根据添加信息()来考虑表中的字段,进行建表。使用PD画出ER图。要注意字段的数据类型的确定以及建表要满足三范式,减少数据冗余;
(2)表建好后,根据表中各个字段来建pojo中的属性。要注意属性的数据类型和字段的数据类型要一致;
(3)根据pojo中的属性确定bean的属性,直接拷贝即可,用于页面展示。在bean中,统一使用String类型变量接收前台页面传递的参数;每个HTML表单对应一个bean。HTML表单中的字段和bean中的属性一一对应。
(4)自顶向下,依次定出action、manager、dao。先写出轮廓,跑通整个流程,再写具体实现,一点点累加,便于调试错误;
(5)根据数据实体和具体业务逻辑,使用StarUML画类图,进行OOA和OOD,灵活运用设计模式。
(6)API命名:
CRUD:add,get,update,[list]
严格区分单复数形式,单数表示对象,复数表示对象集合。
对象、属性最好单个单词。
(7)前后台都要校验。
(8)按照资源方式组织数据接口,对前端开发帮助很大。即通过REST来实现资源的增、删、改、查。
(9)软件开发,思路最重要!代码开发多了,思路就有了。
a、一个版本一个版本递增的开发; 每个版本增加一点内容;
b、总结开发思路;第一步怎么做,下一步怎么做?
c、用文档记录开发的思路,即第一个版本开发实现了什么功能以及开发步骤,下一个版本实现了什么功能等等?
d、程序员进行程序开发时,不要仅仅停留在代码,要深入到底层的运行机制,才可以对程序的运行机制有更准备的把握;
(10)网页模板
request到template.jsp文件(此文件假设包括三个部分,即title、banner、body)
web客户——> title
banner———————>include:banner.jsp
body————————>include:showcart.jsp
(11)一步一步的定位。根据结果进行分析。
(12)分页控件
假分页:
基本思想是将所有的数据从数据库中取出,只显示有用的部分。靠的是程序的算法,实际上就是在ResultSet上进行操作。
真分页:(数据库中的一种实现)
任何数据库都会提供分页的函数操作:Oracle、MySQL(limit,即limit 开始的记录, 要查询的行数)、SQL Server(top)
基本思想是在数据库中编写特定的SQL语句。程序中只读取有用的部分,没用的部分不会加载到内存中。
(13)
2、TIPS
(1)、VO就是POJO。
(2)、先做完基本功能,然后对输入的数据进行验证。主方法中代码尽可能少,再考虑代码的可重用性。
(3)、当发现代码中重复地复制/粘贴时,就可以考虑将之形成为一个类进行调用。
(4)、在类的设计中,永远不要去继承一个已经实现好的类,只能继承抽象类或实现接口。
(5)、一个设计良好的类,应重写Object类中的equals()、hashCode()、toString()方法。
(6)、在action层中接收参数,要写健壮,要做空指针处理。
(7)、业务逻辑放到manage层,如if...else...不要放在action层,放在manage层处理。
(8)、dao层要写健壮,传入的是bean或map,返回的是bean或list。
(9)、查询:所有的记录总数以及查询第几页的数据;
(10)、多思考,尝试用不同、多种方法去解决问题。(发散性思维)
(11)、当程序中有0、1这样的数字或字符串出现时,最好用常量代替。常量名很重要,做到见名知意。
(12)、spring针对每一层(action.manager、dao)都有一个配置文件;ibatis有2个配置文件。sqlmap有namespace,每个实体类都对应一个xml配置文件。
(13)、类设计,编写时先完成基本功能的实现,然后再对实现功能的代码结构进行优化。
(14)
2、PS
(1)Java Web开发环境:JDK、IDE、java web服务器
JDK,一般指sun公司发布的JDK,也有其他的JDK,如IBM的JDK、BEA的JRocket等。从Java 5.0开始,Java web技术也称为Java EE。Java EE应用程序的运行需要Java EE类库的支持。
安装好JDK后,设置JAVA_HOME环境变量以及将JDK下的bin目录添加到PATH环境变量。
eclipse需要Java运行环境。
Eclipse WTP是Eclipse官方提供的web开发工具。
Java web服务器在Java EE规范中也叫做容器。
(2)web容器在启动时,从web.xml文件中读取配置信息,装载web应用。
web容器运行时,不会检测web.xml、struts配置文件的更新而重新加载它。
若struts框架不能处理的异常,会把错误抛给web容器。容器会查看web.xml文件中是否配置了元素。若存在,则返回元素的子元素指定的错误页面。否则直接将错误抛给用户。
(3)webApp部署好后,启动Tomcat会自动发布webApp。首先是实例化Filter,并调用其init()方法初始化。然后根据的数值(数值为0或正数,数值越小越先加载)来依次加载servlet,并调用其init()方法进行初始化。
若没有为servlet配置属性,则当web应用启动时servlet容器不会加载这个servlet,只有当用户首次访问此servlet时才加载。
(4)
web调试时,一定要服务器以调试模式启动。然后在程序中打断点,通过浏览器访问,这样程序运行到断点处就会暂停运行。
(5)jsp放到WEB-INF文件夹中,可防止外界直接通过URL来访问Jsp页面,此时jsp一定要是servlet或action的后继页面,才可以被访问到。
(6)EL表达式是JSP2.0规范,需要Tomcat支持的。Tomcat6才支持EL表达式。
(7)编码
用户提交的查询数据(即get请求),默认采用的是ISO-8859-1编码。
request.setCharacterEncoding(“utf-8”);//设置request编码方式,即设置使用utf-8来解析请求参数;
response.setCharacterEncoding(“utf-8”);//设置response编码方式
(8)JNDI
JNDI:为某个java对象起一个名字。如为Tomcat中的数据源起一个名字,从而让程序可通过该名字访问该数据源对象。(Tomcat内置了DBCP的数据源实现)
若web应用访问了由servlet容器管理的某个JNDI资源,需要在web.xml中对这个JNDI资源的引用声明,表示资源引用的元素为。
(9)session
servlet容器为HttpSession分配唯一标识符sessionID。servlet容器把sessionID作为cookie保存在客户的浏览器中。若浏览器禁止cookie,servlet容器可重写客户请求的url,把sessionID添加到url信息中。HttpServletResponse接口提供了重写url的方法:encodeURL(url)。
篇二:Java各种开发框架总结
Spring Framework 【Java开源JEE框架】
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。【SpringIDE:Eclipse平台下一个辅助开发插件】.WebWork 【Java开源Web开发框架】
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类), session(会
话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。在WebWork2.2中添加了对AJAX的支持,这支持是构建在DWR与Dojo这两个框架的基础之上.【EclipseWork:用于WebWork辅助开发的一个Eclipse插件】
Struts 【Java开源Web开发框架】
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。【StrutsIDE:用于Struts辅助开发的一个Eclipse插件】
Hibernate 【Java开源持久层框架】
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Eclipse平台下的Hibernate辅助开发工具:【Hibernate Synchronizer】【MiddlegenIDE】
Quartz 【Java开源调度框架】
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 1.5.0。
Velocity 【Java开源模板引擎】
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。
Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。【VeloEclipse :Velocity在Eclipse平台下的一个辅助开发插件】
IBATIS 【Java开源持久层框架】
使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate 会自动生成SQL 语句,而ibatis 则要求开发者编写具体的SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显 得别具意义。
Compiere ERP&CRM 【Java开源ERP与CRM系统】
Compiere ERP&CRM为全球范围内的中小型企业提供综合型解决方案,覆盖从客户管理、供应链到财务管理的全部领域,支持多组织、多币种、多会计模式、多成本计算、多语种、多税制等国际化特性。易于安装、易于实施、易于使用。只需要短短几个小时,您就可以使用申购-采购-发票-付款、报价-订单-发票-收款、产品与定价、资产管理、客户关系、供应商关系、员工关系、经营业绩分析等强大功能了。
Roller Weblogger 【Java开源Blog博客】
这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。
Eclipse 【Java开源IDE】
Eclipse平台是IBM向开发源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数 —4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。
XPlanner 【Java开源项目管理】
XPlanner 一个基于Web的XP团队计划和跟踪工具。XP独特的开发概念如iteration、user stories等,XPlanner都提供了相对应的的管理工具,XPlanner支持XP开发流程,并解决利用XP思想来开发项目所碰到的问题。XPlanner特点包括:简单的模型规划,虚拟笔记卡(Virtual note cards),iterations、user stories与工作记录的追踪,未完成stories将自动迭代,工作时间追踪,生成团队效率,个人工时报表,SOAP界面支持。
HSQLDB 【Java开源开源数据库】
HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据。支持ANSI-92 标准 SQL语法。而且他占的空间很小。大约只有160K,拥有快速的数据库引擎。
Liferay 【Java开源门户系统】
代表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能。主要特点:
.8.提供单一登陆接口,多认证模式(LDAP或SQL);管理员能通过用户界面轻松管理用户,组,角色;用户能可以根据需要定制个性化的portal layout;能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;支持主流的数据库,如PostgreSQL,MySQL;使用了第三放的开源项目,如Hibernate, Lucene, Struts;支持包括中文在内的多种语言;采用最先进的技术 Java, EJB, JMS, SOAP, XML;
JetSpeed 【Java开源门户系统】
Jetspeed是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML.用户可以使用浏览器, 支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息.Jetspeed扮演着信息集中器的角色, 它能够把信息集中起来并且很容易地提供给用户.即将成为标准化的Java Portlet API 基于模板的布局, 包括JSP和Velocity 通过开放的内容同步技术支持远程XML内容交换 定制默认的主页 使用数据库进行用户认证 内存缓存技术, 加快页面的响应 通过Rich Site Summary技术, 支持同步内容 和Cocoon, WebMacro, Velocity集成.Wireless Markup Language(WML)支持 使用XML格式的配置文件注册portlet.完整的Web Application Archive(WAR)支持 Web应用程序开发的基础设施 可以在本地缓存远程内容 与Avantgo同步 可移植到所有支持JDK1.2和Servlet 2.2的平台 与Turbine模块和服务集成
可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet 使用皮肤技术使得用户可以选择portlet的颜色和显示属性 自定义功能是的管理员可以选择portlet以及定义个人页面的布局 在数据库中存储PSML 通过Jetspeed的安全portlets管理用户, 组,角色和权限 基于角色对访问portlet进行控制
JOnAS 【Java开源应用服务器】
JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java API:JCA、JDBC、JTA、JMS、JMX、JNDI、JAAS、JavaMail。
JFox3.0 【Java开源应用服务器】
JFox 是 Open Source Java EE Application Server,致力于提供轻量级的Java EE应用服务器,从3.0开始,JFox提供了一个支持模块化的MVC框架,以简化EJB以及Web应用的开发!如果您正在寻找一个简单、轻量、高效、完善的Java EE开发平台,那么JFox正是您需要的。
重新设计的 IoC 微内核,融入 OSGi 模块化思想 设计成嵌入式架构,能够和任何 Java Web Server集成部署 支持 EJB3,JPA规范,支持容器内和容器外两种方式运行EJB和JPA组件 支持 EJB 发布成Web Service 采用 JOTM(http://jotm.objectweb.org/)提供事务处理,支持两阶段提交(2PC)采用 XAPool(http://forge.objectweb.org/projects/xapool/)提供 XA DataSource,支持智能连接池管理 内置 MVC 框架,实现自动Form Mapping,Validator,Uploading
等
功
能,支
持JSP/Velocity/Freemarker页面引擎,并支持直接在Action中注入EJB 支持多应用模块部署,让中大型应用充分享受模块化开发带来的优势 提供 Manager 管理模块,可以查看和管理各种运行时参数 提供根据 JFox 特色重写的 Petstore 应用模块
[java项目心得总结]
第二篇:java项目总结(本站推荐)
项目总结
这是一次比较完整的团队合作项目,它要求团队各成员对系统的主体设计搭成一定的共识,这包括数据库设计,需求分析,以及其它一些细节,因此在编码之前的准备工作一定要充分。
在设计之前,我们两组对于数据库的设计进行了激烈的讨论,最后在一些关键的问题上统一了意见。接下来的工作便是需求分析,具体结构设计,并制订小组项目详细计划,项目的进行将严格按照所制订的计划执行。然后小组成员对各自的数据库进行了设计,并且以数据字典的形式进行了共享。
企业级人力资源系统分为十个子系统:机构编制管理、人员信息管理、人事档案管理、考勤管理、薪资福利管理、社会保障管理、招聘管理、合同管理、查询统计管理、系统管理。
我负责人员信息管理子系统,这方面需要处理的业务逻辑比较少,表单比较多,要把握好与其它子系统的关联。员工基本信息表是与其它子系统关联的桥梁,大部分表都涉及到与基本信息表的外键关联。其中,职员编号(employeeId)是作为外键关联的字段,我给它设置了自增长。有人认为在企业里,职员编号应该是有一定规律的数字,而不应该设置自增长。这样的是想法很符合实际情况,后来我和两个组长讨论,认为自增长可以保证数据的唯一性,非自增长的主键在增加时可能遇到不可知的问题,并且其他组员的数据库已经设计好,改起来就麻烦了。因此最终职员编号采用了自增长。
有了上面的共识,接下来的重要工作便是依次完成表的增删改查、数据校验。其中,分页和批量删除是我计划最后完成的部分,并且一定要完成。
基本数据校验按各数据格式进行,例如手机号、e-mail等。另一方面要对职员编号与姓名的一致性,职员编号的存进行验证,这些通过DAO里面的方法实现,针对出错,用JS给出友好的提示。
在做好基本功能的前提下,争取做出特色。我尝试写了Hibernate分页、批量删除的代码,最后都测试成功。同时加入了JS控件,对于一些有特殊格式要求的字段,防止用户填写错误(比如日期的填写格式为yyyy-mm-dd),使系统更加人性化。经过讨论,对员工基本信息主表及与其关联的所有表,配置级联删除。当主表信息被删除时,与之外键关联的子表信息同时被删除。
回顾这段历程,遇到了一些瓶颈,例如批量删除时如何有效的处理选中的id,要明白它得到的是一个String[],需要转化成int[]就好办了。关于分页,我也是琢磨了好久。在网上看了不少实例,具体实现起来还是一头雾水。就在项目验收的前两天晚上,我决定自己写的试试。第一个方法是需要获取表里面总记录数count,按照套路执行hql,我这样处理了结果:
count = list.size();结果出了问题。数据库里有6条记录,结果打印出count为1。在这里折腾了好久,后来打印list为[6],这下才明白list.size()得到的是list里元素的个数,这个元素是6,我需要获取的是元素的是值(基础知识薄弱)。明白这点就好办了,最后我是这样处理的
String a = list.get(0).toString();//获取list第一个元素(对象),并转换成String
count = Integer.parseInt(a);//将a转换成int,得到count 这样做分页的第一步就完成了。第二天早上比较顺利的完成了剩下的代码并测试成功。
相比网上的分页代码,总的来说我写的很容易看懂,至于它有什么问题目前还不知道。
通过这次项目经验,我明白了只要想到了,就一定可以做到。不要畏惧,困难并不像想像中的那么可怕。一味的逃避将得不到真正的锻炼。要时刻和队友交流,分享成果。两个人总比一个人知道的多。
第三篇:Java初级项目心得
Java初级项目心得
从二十几天前的项目需求分析,到数据库设计,到后来的界面设计以及第一次全部整合项目,到最后的项目总调试到评审,中间出了很多问题,但最终还是学到了很多在平时写Demo中学不到的东西,对于一个完整的项目流程还是有了更深层次的了解。
最开始的时候关于项目选题我们组间还是有比较大的争议的,各种想法不一样,对于想做出来的东西期望值太大,比如像做一个完善的教师学生管理集于一体的系统,在我设计的时候才发现以我们现在的水平这个事完全达不到的,时间和经验决定了我们只能做这个中间的一部分,最后才决定做学生和教师功能的一小部分。
开始做了的时候我是很有想法的,想搞一个标准让大家按照我的标准来做所有的事情,在这个事情上组员是比较反感的,因为觉得我写的东西不足以成为标准,并且将所有用到的固定值都用一个常量类来定义其实是很麻烦的一件事情,而且在设计界面过程中后面都是直接使用工具拖出来的界面,所有的固定值都是由系统计算给出的,全部写进常量类就更不现实了。并且在设计这一块由于我最初写出的界面并未的到组员的认可,主要是因为我做的不美观并且没有让代码有很好的可读性。设计的时候虽然列出了全部的功能实现但是在最初实现的时候我并不知道所有的实现需要用到的方法和需要返回的类型,传入的值部分,直观的说就是并没有用到面向对象核心思想去编程,所有到最后做出来的界面是每个部分一套,看起来像是多个项目,而且组员的交流很少,都只顾做自己的东西,这个是我的责任,有时候组员不按照我说的去做真的很无奈。
到了最后实现的时候,这时候我的分工出现了很严重的问题,当时没想那么多,就想着自己多做一些,然后大家平均分配。我觉得这样很公平,但是过了两天去问组员的进度,段超负责的部分已经按照计划提前实现了,我也多做了一些,其他组员还在数据库和java不知道怎么去连接,怎么获取数据,或者是获取数据后不知道怎么在界面显示。在开始的时候并没有做太多的规范,虽然是说分了视图层,业务逻辑层和数据库查询层,但是有些查询和业务逻辑根本就是直接写在界面中,所有有两个组员写的都是教师端的功能到了最后自己写的类都不知道是用来做什么的,调试的时候一个方法要找好久才能知道是在哪里调用的。以后的过程中我会尽量先和组员说好这些事情,不会到了最后才发现那里有问题,这应该是一个很重要的规划问题,分配任务的时候不应该一次性全部分配好,可以根据组员的进度来调节任务的分配,在最初设计的时候不管有多少应该的功能,怎么也要出来个简单的框架,起码然组员不会为找一个类而头疼。
当然学到了很多,比如最初我开始对三层编程的不理解,在三个类之间同时编程的时候,没有一个类那么好查看错误,逻辑也不够清晰,知道了文档注释的重要性,对组员之间交流也肯定会进行的更多,对项目该怎么做有了一个最起码的结构在脑海里。
一路踉踉仓仓做出来的东西确实不是当初想的那么美好,无论怎么说还是有一个东西出来了,也算是这十几天的结晶,还是得到了很多有意义的经验,相信以后我会做的更好,达到想要到项目需求。
黄涛 2014-07-28
第四篇:Java心得
JAVA心得
1.Only public & abstract are permitted for interface.2.Only public, abstract & final are permitted for class.3.main方法作为程序的入口,其modifier必须是 public static void
且必须有一个类型为String的数组参数, 否则不能运行.4.非static内部类中不能有static的域和方法.static的域和方法只能存在于顶级类中或者是static嵌套类中.5.interface 中定义的变量都是public static final的, 且必须赋值.6.如果试图在方法中更改final变量的值, 则编译不能通过;
7.两个int类型的数相除其结果也是int型且不会四舍五入而是直接截取整数部分.一个浮点型数字与整数相除其结果是浮点型.8.try{}块后面必须有catch(Exception){}或者finally{}
try{return a;}
finally{
}
执行顺序是return语句返回结果之前 先执行finally{}再返回结果.9.子类override父类方法是可见修饰符级别不能降低,例如父类是protected
子类可以是protected和public 但不可以是default和private.如果子类有个方法与父类同名且参数类型也相同,则必须返回值类型也相同 否则不能编译.Java允许方法名与类名相同, IDE会给出警告但可以编译和运行.
第五篇:java管理系统项目总结
java管理系统项目总结
篇一: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怎么连接数据库,然后你怎么来实现这个功能,我简单的说下思路吧。
首先你要构思好这个界面,他包括增删查改这些基本功能,然后你去分析这些功能都能怎么实现,对于查找,应该是比较简单的,这里连接数据库就不详述了,导jar包,设置三个变量,然后传固定的参数进去,查询你应该单独写一个类,在这个类里面你要做的就是传入sql语句,利用executeQuery返回的结果集存放在一个向量里面,然后返回给java界面里面JTabel的参数,同样增加一条记录,你可以自定义java界面,从键盘读入数据,然后将数据返回给你自定义的add类里面,在这个类里,主要处理sql增加语句,所以语句将被使用,这里还是要注意下防止sql注入。修改操作和增加操作类似,这里因为主键的特殊性,所以你需要把他设为不可修改,当然你也可以选择不。对于删除操作,因为不需要特别的界面为他服务,所以你大可以在Main函数里面进行操作,除非你觉得有必要整理下长的吓人的代码,其实删除操作也就是获取你指定的主键,然后在sql里面执行操作。大概也就是这些了,有些细节地方要注意下,很多参数里面的下标要千万小心,不然很痛苦的,连接sql文件后记得关闭,弹出界面自己要加些异常处理,每次操作完后,要记得及时更新界面。另外对于MVC模式,你可以在写完后,想想,其实很多代码都有其复用性,你可以分几层来操作啊,业务层就专门提交具体操作,也就是contral啊,然后增删查改界面可以全放在view里面,model就专门处理和数据库的衔接,反正mvc模式你会觉得代码非常清晰,后续你还可以增加分页操作啊,分页操作其实很简单,上一次sql里面测试了下,对于百万级的数据,分页操作跑了三到五秒,或许我的本本真该换了。想说的也就是这么多了,另外鉴于昨天晚上发生的一些事情,后续不打算再更新任何东西了,也许这两者没任何关联,于我而言,结局早已注定。