
SpringMVC整合MyBatis
文章平均质量分 91
光仔December
技术宅,系统集成项目管理工程师,FCP-报表开发工程师,全国软件开发(C/C++)专业人才高级认证,2014年ACM-ICPC河南省赛区银奖,2014年第五届蓝桥杯河南赛区C/C++程序设计本科B组二等奖,2015年甲骨文杯全国Java程序设计大赛华中赛区A组二等奖,2015年中国大学生计算机设计大赛团队三等奖
展开
-
【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 评论 -
【springmvc+mybatis项目实战】杰信商贸-16.新增从表货物信息
通过上几次我们已经将购销合同的所有业务完成了,接下来我们要完成的是在购销合同下的货物的业务我们的购销合同相对于货物是一对多的,所以我们需要配置对象之间的关联关系。首先先编写实体类ContractProduct.java:package cn.hpu.jk.domain;public class ContractProduct { private String id; //pr...原创 2015-09-17 14:43:08 · 2622 阅读 · 2 评论 -
【springmvc+mybatis项目实战】杰信商贸-15.细粒度的权限控制+业务上报取消
上一篇总结我们完成了购销合同的增删改查业务,这一篇我们首先完成权限控制以及业务的上报取消的设置功能。先说我们的权限控制1.细粒度的权限控制a)日常权限框架:基于角色权限,用户、角色、权限(URL、主菜单、左侧菜单、按钮)b)数据权限:纵向的数据权限过滤:对数据进行过滤1)本人(专责):登录后只能看到自己的信息Where条件 create_by = #{当前登原创 2015-09-16 18:15:31 · 4657 阅读 · 3 评论 -
【springmvc+mybatis项目实战】杰信商贸-30.出口报运增删查修mapper+Dao+Service+Controller
我们接下来做我们项目的下一个环节,就是出口报运的业务,首先我们来看看两个设计方式a)大型项目设计方式传统设计方式,基于对象关联,数据量小时,系统无碍;当数据随着系统的使用,线性增长,系统变的越来越慢,到达一定数据量时,性能急剧下降。b)新的设计方式:打断设计在表中增加一个字段,这个字段用来存储关联表的主键集合;在报运业务中要查询合同下的货物信息。直接通过这个关联字段,利用i原创 2015-10-02 17:21:54 · 5073 阅读 · 2 评论 -
【springmvc+mybatis项目实战】杰信商贸-14.购销合同添加+修改+删除+查看
上一次我们完成了购销合同列表的显示,下面我们来完成购销合同增加、修改、删除、查方法看。首先回顾一下我们的Mapper映射文件ContractMapper.xml:<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">原创 2015-09-15 14:47:23 · 2549 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-12.重点知识回顾
1.回顾重点知识a)Oracle安装在本机安装oracle客户端,创建一个本地服务,程序或者控制台(PL/SQL)就可以访问数据库。PL/SQL绿色版,第一次运行它自动扫描本机安装的oracle,tnsnames.ora,同时记录下配置信息。如果把绿色版换个路径,就无法连接数据库。(TNS侦听无法连接)绿色版只能在放回原来第一次访问的路径。就可以访问。Oracle相当的脆弱原创 2015-09-13 21:49:46 · 2707 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-29.购销合同技术难点分析
我们接下来要进行最复杂的一个打印,就是购销合同的打印---制式表单的打印,业界最复杂的报表打印。a)分析技术难点:1)插入图片,POI插入图片时,设定区域,自动缩放到这个区域中,图片要设置偏移量HSSFPatriarch patriarch = sheet.createDrawingPatriarch();//add picturepoiUtil.setPicture(wb原创 2015-09-30 11:44:43 · 3392 阅读 · 7 评论 -
【springmvc+mybatis项目实战】杰信商贸-13.购销合同列表
我们接下来开始编写购销合同的列表业务首先我们现往我们的FACTORY_C和基础表中倒入一些数据方便我们测试导入数据的SQL文件:jk.sql (点击下载)然后我们看到数据已经插入启动服务器查看我们的数据已经插入接下来我们开始做购销合同的业务。首先我们的数据库表已经建立(CONTRACT_C),我们首先创建购销合同的实体类Contract.java:原创 2015-09-13 22:03:26 · 2996 阅读 · 4 评论 -
【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项目实战】杰信商贸-27.POI由HSSF升级为XSSF
我们之前使用了POI技术将回货表构造成excel文件输出并打印,但是我们依然遗留了许多的问题,这次我们将使用的POI的HSSF,升级为XSSF。首先什么是HSSF、XSSF呢?其实它是根据不同的规格提供不同的功能。结构:HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。HWPF原创 2015-09-28 10:41:09 · 3578 阅读 · 5 评论 -
【springmvc+mybatis项目实战】杰信商贸-11.购销合同业务
生产厂家我们做完了,接下来我们要做一个更加复杂的业务,就是“货运管理”首先我们先了解一下业务,什么是“货运管理”?“货运管理”是国际物流的概念,往常我们货物送到国内没有那么多事情,但是货物发往国外就多了很多手续,依靠小物流公司我们是很不可能的,需要行业的大背景的支撑。下面我们来看看它是怎么做的a)业务:购销合同当我们的客户通过展会、其它渠道跟杰信公司联系上以后,他们看上原创 2015-09-12 12:24:29 · 3530 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-7.生产厂家新增
我们来接着我们的项目写我们要实现新的功能,就是生产厂家的新增先来回顾一下系统架构图我们数据库这边已经建好表了,接下来要做的就是mapper映射编辑FactoryMapper.xml文件,加入“添加”的逻辑配置代码块<!-- 新增 oracle jbdc驱动当这个值为null时,必须告诉它当前字段默认值的类型jdbcType=VARCHAR(MyBatis定义),M原创 2015-09-07 10:06:33 · 4293 阅读 · 2 评论 -
【springmvc+mybatis项目实战】杰信商贸-31.出口报运业务-购销合同查询与上报
我们上一篇完成了出口报运增删查修的mapper+Dao+Service+Controller,而且在Controller中添加和获取出口报运的列表的方法,然后成功获取了出口报运的列表:然后我们这次要添加出口报运的“新增”方法,但是这个“新增”和以往的新增方法不同,这个要与之前的购销合同关联在一起。我们出口报运的“新增”是这样的:用户要选择多个合同,然后进行报运。(体现出业务原创 2015-10-07 10:38:28 · 3217 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-17.货物修改+删除
重点知识回顾a)主从结构:1)它和主表在mapper有什么不同按对象来映射(hibernate)按普通字段来映射(mybatis)b)前台页面的结构货物的外键:合同,通过get的方式在url后面加参数(主从)货物的外键:生产厂家,通过下拉列表的方式(只需要一个id时)对象方式获得外键:一般是需要多个字段c)权限管理:细粒度的权限日常权限系统:角色原创 2015-09-18 22:34:56 · 3459 阅读 · 1 评论 -
【springmvc+mybatis项目实战】杰信商贸-25.出货表打印
我们之前学习了POI技术,可以利用POI进行自定义excel文件的生成。我们接下来就将利用这一技术来实现我们的出货表的打印。回顾一下我们的出货表我们将利用POI构造这样一个excel文档,然后将它生成。我们先从头来分析,“2012年8月份出货表”是一个标题,并且合并了单元格,我们应该怎么做呢?我们的出货表的开发步骤如下1.获取数据2.创建excel文件3原创 2015-09-24 13:56:10 · 4042 阅读 · 3 评论 -
【springmvc+mybatis项目实战】杰信商贸-24.神奇的POI
POI是干什么的呢?首先先从我们的业务下手,来逐渐里了解和掌握POI。业务:构建出货表功能:对购销合同进行月统计,按船期进行统计。我们看看我们的出货表最终是什么样的:可以看到我们的出货表所拥有的列的属性包含了以下几个表的信息:合同表、货物表、生产厂家表、附件表。关联了4张表。通过冗余设计只需要从合同、货物表中获取数据,取数据更加方便,代码更加简单。那我们原创 2015-09-23 12:43:11 · 5034 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-23.重点知识回顾
1.重点知识回顾购销合同查看,采用类似hibernate方式,都以对象关联方式。(1)PO为了利用MyBatis性能,在创建时,没有采用关联对象关联,而是将对象关键字段,也就是外键,利用这个普通属性,来记录值,表数据间关联关系存在,但对象关联关系不存在。代码也就变得简单。在货物新增时,只要从主对象中携带过来,主表ID即可。(2)VO为了方便对象关联时取数据。在列表循环货物信息时,要去查原创 2015-09-23 12:34:04 · 2998 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-34.业务出口报运WebService1
我们要为出口报运做一个WebService,来提供跨系统的信息查询功能。我们使用的技术是 -------Apache CXF WebService作用:两个异构系统,需要共享数据。需求:我们要给客户提供合同追踪。在出口报运中增加一个WebService,用户可以通过它的系统来访问这个服务,展现出口报运单,主要可以浏览用户的订单状态(走到哪个流程)。查看出口报运单开发步骤原创 2015-10-12 10:59:10 · 3725 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-21.合同总金额SQL
我们上一次解决了合同的货物以及附件显示功能,接下来我们要完成我们的另一项功能,也即是我们的购销合同的总金额。我们的购销合同的总金额由以下金额构成:货物的总金额,而货物的总金额由货物本身的金额+附件金额构成,也就是说,我们想要获取购销合同的总金额,就要获取合同下的所有货物的总金额(货物总金额要获取所有货物的金额,以及这个货物下的所有附件的总金额)。听起来有点绕,但是我们把它写成sql原创 2015-09-21 16:08:13 · 3031 阅读 · 3 评论 -
【springmvc+mybatis项目实战】杰信商贸-20.合同货物数和附件数
我们上一篇完成了购销合同、货物以及附件的级联删除,这次我们需要做的业务就是----要求直接显示合同下的货物数和附件数上一次我们遗留的问题:我们每次删除完都要去下一级或者数据库看看我们删除了没有,我们可以直接在合同列表中显示每个合同下的货物以及货物的附件有多少件,这样就避免了反复去下一级查看列表的繁琐操作。那么下面我们使用SQL来编写获取合同下的货物数:select coun原创 2015-09-21 15:55:02 · 2840 阅读 · 0 评论 -
【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 评论 -
【springmvc+mybatis项目实战】杰信商贸-22.合同货物附件生产厂家mapper关联
我们上一次完成了合同的总金额的计算,我们这次继续完成一个新的更复杂,但是更有学习意义的业务---购销合同查看要求:查看合同的主信息,查看合同下的货物信息,还要查看附件信息,货物和附件的信息要显示出它们的关联关系。(注:一个合同下有多个货物,每个货物又有每个货物自己的附件)利用面对对象的关联关系来实现上面的需求非常简单。我们之前都是使用的外键进行的关联,这里我们将外键改为原创 2015-09-22 09:43:31 · 2679 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-19.级联删除
我们从写项目开始到现在,一共完成了生产厂家、购销合同、货物(购销合同下的)、附件(货物下的)这四大块的大部分业务。我们的生产厂家、购销合同、货物(购销合同下的)、附件(货物下的)这四大块的关系我们来回顾一下:图4.1-组合关系.png我们先不管生产厂家(因为它可以和后三个关联关系最弱)。购销合同与货物是一对多的关系,而货物与附件又是一对多的关系。那么购销合同与附件是两层一对多的原创 2015-09-20 12:01:42 · 8498 阅读 · 5 评论 -
【springmvc+mybatis项目实战】杰信商贸-32.出口报运修改+报运货物批量展现-批量修改控件1
上一次我们完成了出口报运业务-购销合同查询与上报,但是其中有很多东西没有完善,我们接下来逐步完成我们的出口报运剩下的业务。我们要解决其中一个问题:我们在购销合同查询界面点击“上报”之后就会直接上报至出口报运,如果用户仅仅是误点或者测试,这个有点过于草率,我们需要加一些限制来保证操作的正确性。还有一点就是我们的主信息不全毛重、净重、长宽高等信息我们都没有填写,我们都应该添原创 2015-10-10 10:04:57 · 3274 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-18.附件分类基础表+数据字典
上一篇我们附件的增删改查功能全部完成。但是我们的附件有一个字段叫做“类型”(ctype),这里我们要使用数据字典,所以对于这一块我们要进行修改。首先介绍一下数据字典数据字典它是一个通用结构,跟业务无关;数据字典表是用户可以动态扩充内容。它的分类用户不能改。分类是系统上线时,开发人员进行初始化。(分类是在代码中写死的,分类下的内容,用户可以动态扩充)a)一般它由编号+名称原创 2015-09-19 16:41:06 · 4224 阅读 · 2 评论 -
【springmvc+mybatis项目实战】杰信商贸-6.重点知识回顾
1.重点知识回顾Maven1)覆盖仓库文件,实际企业开发,公司会架一个测试服务器,在测试服务器中架私服。我们开发人员的程序,都连接私服。当本地没有项目中要使用的jar,Myeclipse maven插件会自动到私服去找jar,如果没找到去中央仓库maven寻找,找到后下载。activiti-engine-5.13.jar.lastUpdated 当访问远程仓库时,由于网络不稳定,有可能原创 2015-09-07 07:23:36 · 3651 阅读 · 0 评论 -
【springmvc+mybatis项目实战】杰信商贸-10.生产厂家停用+启用
前面我们对生产厂家的CRUD进行了编写,下边我们来看一下一些必要的业务逻辑业务:启用、停用设置一个标志位:对合同的生产厂家状态为启用,对不在合作的生产厂家状态为停用。分析:设置一个标志位state,1:启用 0:停用这个时候我们就要在之前的FACTORY_C表中更改字段(这是实际开发中经常遇到的,初始的时候我们建表只实现主要的信息,随着业务需求慢慢的丰富,我们也要慢原创 2015-09-11 13:21:53 · 2537 阅读 · 0 评论 -
【SpringMVC整合MyBatis】整合思路与工程结构
springmvc和mybatis整合1.需求使用springmvc和mybatis完成商品列表查询。2.整合思路springmvc+mybaits的系统架构:如图第一步:整合dao层mybatis和spring整合,通过spring管理mapper接口。使用mapper的扫描器自动扫描mapper接口在spring中进行注册。第二步:整合s原创 2015-07-22 08:53:09 · 4242 阅读 · 0 评论 -
【SpringMVC整合MyBatis】springmvc上传图片
上传图片1.需求在修改商品页面,添加上传商品图片功能。2.springmvc中对多部件类型解析在页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。在springmvc.xml中配置multipart类型解析器。 5242880 注:在电商企原创 2015-08-14 09:29:21 · 5697 阅读 · 6 评论 -
【SpringMVC整合MyBatis】springmvc实现json交互-requestBody和responseBody
json数据交互1.为什么要进行json数据交互json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。比如:webservice接口,传输json数据.2.springmvc进行json交互(1)请求json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便。(2)请求k原创 2015-08-14 09:36:27 · 9892 阅读 · 9 评论 -
【SpringMVC整合MyBatis】springmvc和struts2的区别
springmvc和struts2的区别 1、springmvc基于方法开发的,struts2基于类开发的。springmvc将url和controller方法映射。映射成功后springmvc生成一个Handler对象,对象中只包括了一个method。方法执行结束,形参数据销毁。struts2的action类中的所有方法用的都是action类中的成员变量,一旦方法变得很多原创 2015-08-01 09:35:34 · 3701 阅读 · 0 评论 -
【SpringMVC整合MyBatis】spring参数绑定
参数绑定1.spring参数绑定过程从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上。springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controller类定义成员变更接收!!!!2.默认支持的类型直接在controller方法形参上定义下边类型的对象,就可以使用这些对象。原创 2015-08-01 09:33:17 · 3692 阅读 · 2 评论 -
【SpringMVC整合MyBatis】RequestMapping注解与controller方法返回值
我们讲解一下之前用的@RequestMapping注解和controller方法返回值一、@RequestMapping注解作用1.url映射定义controller方法对应的url,进行处理器映射使用。//商品查询列表//@RequestMapping实现 对queryItems方法和url进行映射,一个方法对应一个url//一般建议将url和方法写成一样@Requ原创 2015-07-31 21:36:59 · 6031 阅读 · 0 评论 -
【SpringMVC整合MyBatis】数据回显
数据回显1.什么数据回显提交后,如果出现错误,将刚才提交的数据回显到刚才的提交页面。2.pojo数据回显方法2.1springmvc默认对pojo数据进行回显。pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写)说白了就是items类public class Items {原创 2015-08-13 08:48:20 · 3448 阅读 · 2 评论 -
【SpringMVC整合MyBatis】springmvc异常处理-全局异常处理器开发
异常处理1.异常处理思路系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:sp原创 2015-08-13 08:54:18 · 15280 阅读 · 7 评论 -
【SpringMVC整合MyBatis】validation校验-分组校验
分组校验1.需求上一次我们学习了validation校验的配置和使用方法,我们不难发现会有一些问题:我们现在的校验规则,是在pojo里添加的:public class Items { private Integer id; //校验名称在1到30个字符之间 //message是提示校验出错显示的信息 @Size(min=1,max=30,m原创 2015-08-12 11:33:21 · 11085 阅读 · 0 评论 -
【SpringMVC整合MyBatis】validation校验-商品修改校验
springmvc校验1.校验理解项目中,通常使用较多是前端的校验,比如页面中js校验。对于安全要求较高点建议在服务端进行校验。服务端校验:控制层controller:校验页面请求的参数的合法性。在服务端控制层controller校验,不区分客户端类型(浏览器、手机客户端、远程调用)业务层service(使用较多):主要校验关键业务参数,仅限于service接口中使原创 2015-08-12 11:28:36 · 8768 阅读 · 5 评论 -
【SpringMVC整合MyBatis】案例驱动-包装类型pojo参数绑定
包装类型pojo参数绑定1.需求商品查询controller方法中实现商品查询条件传入。2.实现方法第一种方法:在形参中 添加HttpServletRequest request参数,通过request接收查询条件参数。第二种方法:在形参中让包装类型的pojo接收查询条件参数。分析:页面传参数的特点:复杂,多样性。条件包括:用户账号、商品编号、订单信息.....原创 2015-08-11 11:37:34 · 3192 阅读 · 0 评论 -
【SpringMVC整合MyBatis】商品修改功能分析
结合之前我们搭建好的环境,我们下面来编写商品修改的功能。商品修改功能开发1.需求操作流程:(1)进入商品查询列表页面(2)点击修改,进入商品修改页面,页面中显示了要修改的商品(从数据库查询)要修改的商品从数据库查询,根据商品id(主键)查询商品信息(3)在商品修改页面,修改商品信息,修改后,点击提交2.开发mappermapper:根据id查询商原创 2015-07-22 11:26:34 · 3254 阅读 · 4 评论 -
【SpringMVC整合MyBatis】springmvc对RESTful支持
1.什么是RESTfulRESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。RESTful-表现层状态转换(即Representational State Transfer的缩写)其实是一个开发理念,是对http的很好的诠释。(1)对url进行规范,写RESTful格式的url非REST的url原创 2015-08-15 11:35:45 · 4360 阅读 · 0 评论