
javaEE项目实战
文章平均质量分 91
光仔December
技术宅,系统集成项目管理工程师,FCP-报表开发工程师,全国软件开发(C/C++)专业人才高级认证,2014年ACM-ICPC河南省赛区银奖,2014年第五届蓝桥杯河南赛区C/C++程序设计本科B组二等奖,2015年甲骨文杯全国Java程序设计大赛华中赛区A组二等奖,2015年中国大学生计算机设计大赛团队三等奖
展开
-
【SSH项目实战】国税协同平台-8.户帐号唯一性校验
我们之前完成了用户管理列表的增删改查以及头像上传,之后又使用POI技术完成了用户列表信息的Excel导入和Excel文件导出工作。接下来我们来编写与账号有关的业务。可以看到我们添加用户要指派一个账号但是我们的账号一定是不能重复的,如果账号已经存在,我们不就能让它保存在系统中,要告诉用户账号已经存在。所以我们这次要进行用户账号唯一性的校验。校验用户帐号唯一性:需要校验原创 2015-10-26 10:52:25 · 3951 阅读 · 4 评论 -
【SSH项目实战】国税协同平台-22.逆向工程
上一次我们利用PowerDesigner设计了一个“人员组织架构”的概念模型和物理模型,并把它们生成了建表语句,并且在数据库创建了相应表。接下来我们要利用“逆向工程”来创建表和实体类。因为是测试,所以我们所有的代码均在test包下完成。首先,我们在我们工程的test.conf包下创建database.sql文件,把上一次我们得到的sql语句输入进去:/*==========原创 2015-11-15 09:55:25 · 2679 阅读 · 9 评论 -
【springmvc+mybatis项目实战】杰信商贸-35.业务出口报运WebService2
我们上一次创建了出口报运的WebService的搭建,测试的时候,我们仅仅得到了WebService给我们回复的soap结构的XML对象,但是我们没有去解析。下面我们来完成soap的XML的解析,并把相应的数据通过javascript安插在table中。我们先来分析一下之前我们saop发出的XML请求和得到的XML回复的例子请求: 39cd8f20-50f8-4bc1-96原创 2015-10-14 12:11:10 · 3695 阅读 · 5 评论 -
【SSH项目实战】国税协同平台-10.自定义返回结果类型
上一篇我们进行了自定义异常的设置和捕获,然后跳转到我们自己的异常通知界面。那么,我们捕获到异常以后,我们想利用前面请求的参数做一些事情,我们就可以利用struts的“自定义返回结果类型”。类“class StrutsResultSupport”就是“struts类结果返回支持”,如果某个类继承了这个父类的话,这个类就会被执行。可以给这个类传入3个参数:location、parse、原创 2015-10-29 17:36:11 · 1889 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-25.出货表打印
我们之前学习了POI技术,可以利用POI进行自定义excel文件的生成。我们接下来就将利用这一技术来实现我们的出货表的打印。回顾一下我们的出货表我们将利用POI构造这样一个excel文档,然后将它生成。我们先从头来分析,“2012年8月份出货表”是一个标题,并且合并了单元格,我们应该怎么做呢?我们的出货表的开发步骤如下1.获取数据2.创建excel文件3原创 2015-09-24 13:56:10 · 4042 阅读 · 3 评论 -
【SSH项目实战】国税协同平台-9.全局异常映射
上次我们的校验工作已经完成,下面我们谈谈系统异常的处理。假设我们在UserAction的listUI方法中加入一句错误代码://列表页面public String listUI(){ int i=1/0; userList=userService.findObjects(); return "listUI";}然后我们来访问我们的我用户列http://localhost/Hp原创 2015-10-27 21:14:08 · 2745 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-23.重点知识回顾
1.重点知识回顾购销合同查看,采用类似hibernate方式,都以对象关联方式。(1)PO为了利用MyBatis性能,在创建时,没有采用关联对象关联,而是将对象关键字段,也就是外键,利用这个普通属性,来记录值,表数据间关联关系存在,但对象关联关系不存在。代码也就变得简单。在货物新增时,只要从主对象中携带过来,主表ID即可。(2)VO为了方便对象关联时取数据。在列表循环货物信息时,要去查原创 2015-09-23 12:34:04 · 2998 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-24.神奇的POI
POI是干什么的呢?首先先从我们的业务下手,来逐渐里了解和掌握POI。业务:构建出货表功能:对购销合同进行月统计,按船期进行统计。我们看看我们的出货表最终是什么样的:可以看到我们的出货表所拥有的列的属性包含了以下几个表的信息:合同表、货物表、生产厂家表、附件表。关联了4张表。通过冗余设计只需要从合同、货物表中获取数据,取数据更加方便,代码更加简单。那我们原创 2015-09-23 12:43:11 · 5034 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-34.业务出口报运WebService1
我们要为出口报运做一个WebService,来提供跨系统的信息查询功能。我们使用的技术是 -------Apache CXF WebService作用:两个异构系统,需要共享数据。需求:我们要给客户提供合同追踪。在出口报运中增加一个WebService,用户可以通过它的系统来访问这个服务,展现出口报运单,主要可以浏览用户的订单状态(走到哪个流程)。查看出口报运单开发步骤原创 2015-10-12 10:59:10 · 3725 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-21.PowerDesigner概念、物理模型
我们之前做的都是先建实体类再去创建表(或者是hibernate自动生成表),有一个概念叫“逆向工程”,就是先创建表,再由表来生成相应的实体类和映射文件。在讲“逆向工程”之前,我们先学一个数据库模型设计工具,做“PowerDesigner”,是设计实体以及实体之间的关系的,而且可以生成数据库建表语句的工具。我们打开PowerDesigner,创建一个“概念模型”,实体集关系表:原创 2015-11-11 10:33:14 · 2004 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-22.合同货物附件生产厂家mapper关联
我们上一次完成了合同的总金额的计算,我们这次继续完成一个新的更复杂,但是更有学习意义的业务---购销合同查看要求:查看合同的主信息,查看合同下的货物信息,还要查看附件信息,货物和附件的信息要显示出它们的关联关系。(注:一个合同下有多个货物,每个货物又有每个货物自己的附件)利用面对对象的关联关系来实现上面的需求非常简单。我们之前都是使用的外键进行的关联,这里我们将外键改为原创 2015-09-22 09:43:31 · 2679 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-21.合同总金额SQL
我们上一次解决了合同的货物以及附件显示功能,接下来我们要完成我们的另一项功能,也即是我们的购销合同的总金额。我们的购销合同的总金额由以下金额构成:货物的总金额,而货物的总金额由货物本身的金额+附件金额构成,也就是说,我们想要获取购销合同的总金额,就要获取合同下的所有货物的总金额(货物总金额要获取所有货物的金额,以及这个货物下的所有附件的总金额)。听起来有点绕,但是我们把它写成sql原创 2015-09-21 16:08:13 · 3031 阅读 · 3 评论 -
【SSH项目实战】国税协同平台-7.POI导入用户列表文件
上次我们使用POI技术完成了用户列表的打印工作,下面我们来完成用户列表Excel文件的导入。我们要导入这个Excel文件到我们的系统中:确切的说,是我们要将excel中的数据导入到数据库中保存起来我们的操作过程:1、获取excel文件2、导入2.1、读取工作簿2.2、读取工作表2.3、读取行2.4、读取单元格2.5、保存用户下面我原创 2015-10-25 08:39:23 · 2646 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-6.POI导出用户列表
我们使用POI技术来导出和导入我们之前的用户列表。POI在之前的《杰信商贸》工程中已经详细介绍过了,这里就不赘述。我们直接上手开发。首先说下一我们的POI打印的流程,我们接下来就按照这个流程开发:1、创建工作簿1.1、创建合并单元格对象1.2、头标题样式1.3、列标题样式2、创建工作表2.1、加载合并单元格对象3、创建行3.1、创建头标题行;并且设置原创 2015-10-24 10:20:38 · 3736 阅读 · 2 评论 -
【SSH项目实战】国税协同平台-4.用户管理需求分析&CRUD方法1
上次我们完成了日志模块的配置和基础增删改查类,下面我们根据用户的需求来正式开发项目的业务模块。下面我们主要来开发系统用户管理的模块我们有用户的功能说明书,打开功能说明书来看看这个模块需要什么功能:功能说明用户管理:可以根据用户名查询系统用户;在页面中点击“新增”可以添加用户、点击删除可以批量删除选中的用户。“导出”则导出所有的用户列表到excel文件中并原创 2015-10-22 10:00:03 · 4151 阅读 · 2 评论 -
【springmvc+mybatis项目实战】杰信商贸-33.出口报运修改+报运货物批量展现-批量修改控件2
具体批量修改的几个要点:1)批量展示 mrecord控件(自定义)也就是在html界面上的table表格中添加新的行,这个时候我们使用javascript来实现这种效果就行了,innerHTML 实现往一个区域div增加一段html代码,table,tr,td都用利用js动态插入。这里我们使用控件来完成。下面我们来实现我们来修改我们的jExportupdate.jsp,原创 2015-10-10 14:59:48 · 3588 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-23.抽取BaseService
接下来我们开始整顿我们的Service层,我们每一个Service基本上都有下面几个方法(拿info举例子)://新增public void save(Info entity);//更新public void update(Info enetity);//根据id删除public void delete(Serializable id);//根据id查找public Info f原创 2015-11-16 12:45:30 · 2887 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-12.角色权限管理2
接上一篇然后是action层:package cn.edu.hpu.tax.role.action;import java.util.HashSet;import java.util.List;import javax.annotation.Resource;import cn.edu.hpu.tax.core.action.BaseAction;import cn.edu原创 2015-10-30 16:06:52 · 3607 阅读 · 4 评论 -
【SSH项目实战】国税协同平台-27.分页对象应用&抽取pageNavigator
上次我们完成了信息发布管理模块的分页功能。但是我们还没给其它的模块做分页,所以我们也要去完成其它模块的分页功能。按照我们给信息发布管理模块编写分页功能的方式去编写,需要大费周章,我们不如把分页功能封装起来,这样这些模块包括以后扩充的模块都能使用分页的功能了。我们回顾一下我们的InfoAction,关于分页的属性有://分页对象protected PageResult page原创 2015-11-22 13:14:18 · 2765 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-2.环境搭建和整合
框架整合2.1新建数据库及web项目2.1.1创建itcastTax数据库-- 创建数据库CREATE DATABASE itcastTax DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;我们使用的是Mysql数据库2.1.2新建web项目新建工作空间指定项目编码(或工作空间编码)为utf-8,再建 web p原创 2015-10-19 10:59:56 · 6062 阅读 · 19 评论 -
【OSGI】非Eclipse下构建OSGI运行环境
搭建非Eclipse下构建OSGI运行环境我们之前在Eclipse上搭建过OSGI模块化开发平台,但是这种启动plug-in项目的方法最终交付用户的时候不能让用户通过Eclipse来启动项目,所以我们要搭建一个非Eclipse下构建OSGI运行环境。 首先我写这篇文章的时间是2016年3月3日,我使用的编译器是Spring Tool Suite(和Eclipse几乎一模一样,只是添加了原创 2016-03-03 18:11:44 · 4521 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-26.分页功能编写
可以看到,我们之前的用户管理、角色管理和信息发布管理的列表下均有这些东西:总共1条记录,当前第 1 页,共 1 页 上一页 下一页 到 这个就是美工留给我们做分页的,我们接下来就以信息发布管理模块为例做一个分页功能。我们在做之前首先分析一下我们分页的规则:总共1条记录,当前第 1 页,共 1 页 上一页 下一页 到 属性有:总记录数当前页号原创 2015-11-20 09:05:25 · 2479 阅读 · 3 评论 -
【SSH项目实战】国税协同平台-34.quartz&CronTrigger
我们上次使用quartz任务调度框架创建了一个在后台按照时间间隔不停运行的任务,我们使用的是simpleTrigger简单触发器,为了实现我们的月末自动回复的功能,我们要设置触发器能够在某个精确时间去自动执行任务,那么使用simpleTrigger简单触发器就远远不够了,我们需要使用CronTrigger任务触发器来实现这个功能。我们的CronTrigger设置步骤如下:任务触发器(C原创 2015-12-07 15:14:14 · 3243 阅读 · 2 评论 -
【SSH项目实战】国税协同平台-33.quartz&SimpleTrigge
在我们“投诉管理”和“我要投诉”这两个模块完成之后,我们要做一个“自动投诉受理”功能。我们来回顾一下“自动投诉受理”功能的需求分析:自动投诉受理:在每个月月底最后一天对本月之前的投诉进行自动处理;将投诉信息的状态改为已失效。在后台管理中不能对该类型投诉进行回复。自动投诉受理是在一定时间内自动的调度任务执行投诉状态的更新;那么需要使用任务调度,常见的任务调度有Jdk 的Timer 以原创 2015-12-05 10:25:12 · 2268 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-32.我要投诉功能2
我们接下来做投诉信息的保存工作我们先来想一下,我们的整个投诉的流程是:1、保存投诉信息2、提示用户投诉成功3、刷新父窗口4、关闭当前窗口我们来画一下时序图(对象与对象之间的消息在时间顺序上的交互):我们现在要做的是第9步之后的步骤我们回顾一下我们的投诉信息填写界面:<% pageContext.setAttribute("bas原创 2015-12-02 10:19:46 · 2896 阅读 · 2 评论 -
【SSH项目实战】国税协同平台-5.头像上传功能
之前我们完成了用户管理的增删改查功能,来回顾一下我们获取用户列表时的过程:记得用户添加的时候没有上传头像,下面我们来完成添加用户时,头像上传的功能。我们上传头像有以下步骤:1、获取头像(file,contentType,filename)2、保存头像2.1、保存头像到指定的文件目录中2.2、设置用户头像路径下面是详细实现:在用户管理的添加、编辑页面中原创 2015-10-23 17:39:17 · 4371 阅读 · 7 评论 -
【SSH项目实战】国税协同平台-31.我要投诉功能1
我们之前完成了投诉回复和保存功能,这次我们将要完成历史受理信息的显示以及数据回显功能,当然还有用户编写投诉信息的入口,我们这次继续。可以注意到,在deilUI.jsp上我们之前的投诉人信息显示,不管是匿名还是不匿名,投诉人的姓名、手机号码都是显示出来的: 投诉人姓名: 投诉人手机: 我们要做到匿名的用户名称不显原创 2015-11-30 11:49:50 · 2716 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-30.投诉受理&保存受理信息
上次我们给“投诉受理管理”模块做了多条件查询功能,我们通过流程图来回顾一下这个模块的具体流程:根据流程图,我们接下来剩下的就是“受理投诉”、“保存投诉信息”、“用户投诉”等功能了。我们不用着急,一项一项的来完成。我们下面写的就是管理者受理投诉的功能,可以看到我们的列表有这么一项:我们要给这个受理加一个链接,使之能够进入之前需求分析中要求的受理界面,在受理界面管理者可原创 2015-11-29 10:51:06 · 2651 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-29.投诉受理查询
我们之前已经成功创建了数据库,现在我们要对建好的表使用“逆向工程”来创建相应的实体类以及映射文件。我们的“逆向工程”在第五阶段“5.逆向工程.txt”章中已经详细阐述过,这里的过程就不再赘述。首先我们还是调出我们的DB Browser,然后找到我们的数据库连接,找到要逆向工程的两张表,点击右键,选择“hibernate Reverse Engineering...”之后就会弹出以下原创 2015-11-26 21:47:09 · 2428 阅读 · 2 评论 -
【SSH项目实战】国税协同平台-28.投诉受理需求分析&CDM&PDM
我们接下来编写“投诉受理”模块的功能。首先进行需求分析,我们来看一下我们的需求:界面描述:2.7.2功能说明(1)投诉受理管理:查询用户提交的投诉信息,可以根据投诉部门(部门A/B)、投诉时间段、状态进行查询。在列表信息中展示投诉标题、被投诉部门、被投诉人、投诉时间、状态(待受理、已受理、已失效)、操作;其中操作栏内内容为“处理”,点击“处理”则原创 2015-11-24 17:32:22 · 3212 阅读 · 2 评论 -
【SSH项目实战】国税协同平台-14.系统、子系统首页&登录功能1
我们做完了用户与角色的分配,在设置用户在相应的角色下的操作之前,我们先完成用户的登录功能。首先,我们先加载我们的系统的首页和子首页。很简单,就是转发到一个jsp页面而已,我们先写一个HomeAction来设置跳转功能:package cn.edu.hpu.tax.core.action;import com.opensymphony.xwork2.ActionSupport;p原创 2015-11-03 13:19:17 · 5674 阅读 · 1 评论 -
【SSH项目实战】国税协同平台-13.用户与角色关系
上一次写到角色权限管理,我们设定的角色是要使用的,我们接下来写用户与角色的关系。角色与权限:多对多一个角色可以有多个权限,一个权限可以被多个角色使用。那我们下面就来使用我们完成的角色。我们先来看一下需求,记不记得之前的用户编辑界面:可以看到,我们注册用户的时候是要给用户安排一个角色的,而我们的角色在角色管理系统里面已经创建好了,可以从创建好的角色中挑选需要的角色原创 2015-11-01 09:50:24 · 2971 阅读 · 1 评论 -
【SSH项目实战】国税协同平台-25.查询条件回显
我们上次完成了信息发布管理模块的条件查询功能,但是我们有一些问题没有解决,比如信息的"回显"功能。解释一下回显,例如你翻到100页,这一页有一个信息需要修改,当你点击修改并修改完毕的时候,发现并没有回到之前的第100页,而是回到了第1页!!@你是不是就抓狂了?而且你在输入框中的的查询条件也可能改变或消失,这就是没有做数据回显的后果。所以,我们要为我们的这个模块做数据回显功能。我们去原创 2015-11-18 10:28:32 · 3876 阅读 · 3 评论 -
【SSH项目实战】国税协同平台-24.条件查询分析与实现
我们之前做好了信息发布管理这一块的功能这次我们就以这个模块为例,去为其添加查询和分页功能。我们先从查询功能做起:条件查询(QueryHelper):1、查询条件语句hql:from 子句:必定出现;而且只出现一次where 子句:可选;但关键字where 出现一次;可添加多个查询条件order by子句:可选;但关键字order by 出现一次;可添加多个排原创 2015-11-17 15:08:49 · 2345 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-20.合同货物数和附件数
我们上一篇完成了购销合同、货物以及附件的级联删除,这次我们需要做的业务就是----要求直接显示合同下的货物数和附件数上一次我们遗留的问题:我们每次删除完都要去下一级或者数据库看看我们删除了没有,我们可以直接在合同列表中显示每个合同下的货物以及货物的附件有多少件,这样就避免了反复去下一级查看列表的繁琐操作。那么下面我们使用SQL来编写获取合同下的货物数:select coun原创 2015-09-21 15:55:02 · 2840 阅读 · 0 评论 -
【SSH项目实战】国税协同平台-20.异步信息发布
上一次我们完成了文本编辑器的插入,这一节我们要对信息进行异步发布。我们上次发表文章之后有一个“停用”和“发布”状态,但是我们没有去做它的切换,所以在这里我们要用异步信息传输的方式去完成这个切换功能。最后我们要的效果是点击“停用”或者“启用”的时候,在“状态”一栏会切换成“停用”或者“启用”。效果大概如此图:我们使用Ajax异步处理这个操作。下面编码实现:首先原创 2015-11-09 17:24:33 · 2211 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-19.级联删除
我们从写项目开始到现在,一共完成了生产厂家、购销合同、货物(购销合同下的)、附件(货物下的)这四大块的大部分业务。我们的生产厂家、购销合同、货物(购销合同下的)、附件(货物下的)这四大块的关系我们来回顾一下:图4.1-组合关系.png我们先不管生产厂家(因为它可以和后三个关联关系最弱)。购销合同与货物是一对多的关系,而货物与附件又是一对多的关系。那么购销合同与附件是两层一对多的原创 2015-09-20 12:01:42 · 8498 阅读 · 5 评论 -
【springmvc+mybatis项目实战】杰信商贸-29.购销合同技术难点分析
我们接下来要进行最复杂的一个打印,就是购销合同的打印---制式表单的打印,业界最复杂的报表打印。a)分析技术难点:1)插入图片,POI插入图片时,设定区域,自动缩放到这个区域中,图片要设置偏移量HSSFPatriarch patriarch = sheet.createDrawingPatriarch();//add picturepoiUtil.setPicture(wb原创 2015-09-30 11:44:43 · 3392 阅读 · 7 评论 -
【springmvc+mybatis项目实战】杰信商贸-28.POI百万数据打印
POI 百万数据的打印 1)从数据库读取数据,LIST在构造时十分耗费内存,还占用CPU资源2)Xlsx一个单sheet可以支持1048576条数据。它加工这些数据时,都是暂时放在内存中。报内存堆溢出。POI意识到这个问题,它在高版本解决了海量数据导出时性能问题。可以实现非常平滑的导出。下面是我们编写的测试方法:@Testpublic void testPrint原创 2015-09-28 10:46:15 · 2969 阅读 · 4 评论 -
【springmvc+mybatis项目实战】杰信商贸-13.购销合同列表
我们接下来开始编写购销合同的列表业务首先我们现往我们的FACTORY_C和基础表中倒入一些数据方便我们测试导入数据的SQL文件:jk.sql (点击下载)然后我们看到数据已经插入启动服务器查看我们的数据已经插入接下来我们开始做购销合同的业务。首先我们的数据库表已经建立(CONTRACT_C),我们首先创建购销合同的实体类Contract.java:原创 2015-09-13 22:03:26 · 2996 阅读 · 4 评论