第三天 购销合同+货物信息+附件信息
1.Springmvc日期类型转换
如果页面有日期类型,必须继承BaseController,否则转换出错,页面报400错误
2.业务需求:上报、取消
a)功能:
上报实现销售人员确定购销合同录入完毕,检查无误后,上报给领导,领导审核无误后,提交给船运部。
取消实现当船务专责未处理此相关的合同时,可以取消这个合同,重新修改合同内容,然后再次上报。如果船运专责已经开始处理报运的业务,不能取消,必须走货物增补流程。
b)设计实现:
在表中增加状态字段,新增时默认状态为0草稿,当销售专责确认无误后,点击“上报”状态变为1已上报。
当船运专责未处理报运时,销售专责点击“取消”状态变为0,草稿。
状态为0时,只能销售专责自己看到,当状态为1时,他的领导和报运专责都可以看到。
3.Jsp相对路径和绝对路径
相对路径,当前文件所在路径,
在当前文件调用一个jsp页面,浏览器自动加上当前路径+jsp文件名
绝对路径,文件前,都加了一个路径 ctx+/cargo/contract/jContractList.jsp;springmvc
它要经过视图解析器的封装 WEB-INF/pages + 逻辑名 + “”
4.Action相对路径和绝对路径
相对路径,当前action所在路径+action名称
绝对路径,ctx+/cargo/contract 由@RequestMapping决定
5.MyBatis自动生成代码的插件
a)功能:
1)生成实体domain
2)生成mapper映射文件
3)生成客户端调用代码 sqlSession.select
b)操作步骤:
1)覆盖myeclipse插件目录
2)两个配置文件
generatorConfig.properties 配置信息(常变化)
sqlMapGeneractor.xml 生成基础配置
c)sqlMapGeneractor.xml配置
1)必须配置绝对路径的数据库驱动jar
2)哪些表要生成代码,注意:生成会覆盖原有文件,手工修改的内容会丢失
缺点:
1)非数据库定义的伪列(虚拟列),自动生成不会创建
2)表之间的关系,它无法生成
一般用于第一次生成或者局部拷贝
插件安装成功,点属性文件右键菜单会出现下面的一项
d)项目的mapper文件和mybatis生成工具的差异
1)命名空间
2)Where所有字段,一般根据业务需要,需要几个写几个
3)产生多余的Example调用的sql,这些对于项目来说,无用
4)创建resultMap,主键,需要手工修改
5)普通属性基本完全拷贝,当需要类型映射比较精确时,只能手工修改;例如:数据库表字段定义的是integer,但是在自动生成时映射称为DECIMAL
6)查询只有按id来查询,相当于get。需要补充查询多条的find,修改为get
7)自动生成提供动态insert和一个全部字段的insert;项目中一般只用全部字段的insert
8)自动生成提供动态update和一个全部自动的update;项目中一般只用动态update
9)自动生成提供按id来删除;项目中一个按id删除,一个按多个id批量删除
6.业务:装率
箱数=数量 除以 装率的分母
7.导入数据常见方法
1)在旧系统中导出文件txt,excel,xml;在新系统中导入
2)在旧系统中创建webservice服务,新系统通过服务查询数据,利用程序写入的新系统的数据库
3)数据库工具pl/sql导出sql,复制黏贴
4)万能,程序
8.重点知识回顾
a)业务,主从从
购销合同、合同下货物、货物下的附件,构成复杂的结构,两级主从。一个后台处理的对象结构上,在前台页面组织结构。
b)对象结构
1)传统对象方式,对象关联关系,在对象的实体中,合同和货物关系,会在合同中多一个Set/List集合对象 Set<ContractProduct>
contractProducts
2)它们三个都是按照单对象,在对象中并没有刻意体现它们三个的关系。对象之间的关系,没有直接体现,而用外键的字段来体现。把复杂的对象关联关系,变成一个普通字段。使代码简单化,使业务简单化,效率更高。体现出mybatis优势。
c)页面组织结构
1)在列表后面加链接,实际开发中常采用的一种主从关联页面操作方式
2)easyUI、extJS提供了更丰富,更方便操作的强大的页面控件。GRID表格控件。
d)相对路径,绝对路径,jsp,action
大多链接都采用相对路径。直接写文件链接<img src=”../../skin/images/a.jpg”/>
绝对路径 base.jsp ctx /jk
e)Mybatis自动生成代码插件
覆盖myeclipse插件目录
配置相关配置,它需要访问绝对路径的数据库驱动jar。配置要产生文件的目录。(推荐你不要设置项目相关的目录,它每次产生文件会覆盖现有文件)