【springmvc+mybatis项目实战】杰信商贸-23.重点知识回顾

简介:
1.重点知识回顾
购销合同查看,采用类似hibernate方式,都以对象关联方式。
(1)PO为了利用MyBatis性能,在创建时,没有采用关联对象关联,而是将对象关键字段,也就是外键,利用这个普通属性,来记录值,表数据间关联关系存在,但对象关联关系不存在。代码也就变得简单。在货物新增时,只要从主对象中携带过来,主表ID即可。
(2)VO为了方便对象关联时取数据。在列表循环货物信息时,要去查询当前货物下的附件时,如果采用上面的方式,只能再次查询。但是我们以对象关联方式,可以直接获取到当前货物下的附件集合,一次SQL所有的附件都查询出来。

PO/VO都是POJO对象。根据业务的当前环境。

货物数、附件数的查询(一个合同下多个货物,每个货物下多个附件)
方法1:代码可以通过合同号,分别去查询货物数、附件数;它需要发出多条的SQL再次查询。
方法2:利用SQL语句直接支持,它可以把一个结果集作为一个字段值,这样的SQL返回结果集必须一个列。同时在这个子查询中它的条件可以拼接动态的条件。
contract_id=t.contract_id t是总表的别称。这样引入一个动态的条件。一次类推实现了附件数的查询。

方法1和方法2效能都不高。对于方法1,要重新发出SQL子查询。效率低。对于方法2,SQL嵌套很多子查询,但是它是数据库级别(也就是运行在强大的服务器上),强大的服务器架构下的数据库能够处理复杂的嵌套语句。
(为什么重新发出SQL子查询效率就比嵌套很多子查询来查询效率低?因为每次重新发出SQL的时候,都需要重新连接数据库连接池,开启事务,然后查询完毕之后断开事务,关闭与数据库连接池的链接,然后再去进行下一条SQL的查询,所以,这中间就浪费了很多时间和资源。)

方法3效率比方法1和方法2都高,方法3是什么?

方法3:冗余+分次计算【亮点】
在表中建立货物数和附件数字段,在货物新增时,当前合同,货物数+1。删除货物,货物数-1;在附件新增时,当前合同附件数+1,删除附件时,附件数-1;删除货物时,要将其下面的附件总数从合同附件数中减去。代码考虑的比较复杂些,但它因为分散各处,计算效率很高。查询时,无需动态计算,效率奇高。

权限【亮点】
角色用户权限,大多数系统都使用此种方式。
细粒度的权限控制,控制到数据访问权限。权限架构才能解决我们实际项目的应用。(如财务)

转载请注明出处:http://blog.csdn.net/acmman/article/details/48678547







相关文章
|
17天前
|
前端开发 Java Spring
Spring MVC 是如何对对象参数进行校验的
【6月更文挑战第4天】对象参数校验是使用 SpringMVC 时常用的功能,这篇文章尝试分析了,Spring 是如何实现这一功能的。
28 5
|
19天前
|
Web App开发 前端开发 Java
基于Spring3 MVC实现基于HTML form表单文件上传
基于Spring3 MVC实现基于HTML form表单文件上传
23 7
基于Spring3 MVC实现基于HTML form表单文件上传
|
1天前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
7 1
|
4天前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
9 1
|
4天前
|
前端开发 Dubbo Java
spring面试题_spring mvc面试题_springboot面试题库
spring面试题_spring mvc面试题_springboot面试题库
|
6天前
|
JSON 前端开发 Java
【JavaEE进阶】 关于Spring MVC 响应
【JavaEE进阶】 关于Spring MVC 响应
14 3
|
7天前
|
缓存 NoSQL Java
在 SSM 架构(Spring + SpringMVC + MyBatis)中,可以通过 Spring 的注解式缓存来实现 Redis 缓存功能
【6月更文挑战第18天】在SSM(Spring+SpringMVC+MyBatis)中集成Redis缓存,涉及以下步骤:添加Spring Boot的`spring-boot-starter-data-redis`依赖;配置Redis连接池(如JedisPoolConfig)和连接工厂;在Service层使用`@Cacheable`注解标记缓存方法,指定缓存名和键生成策略;最后,在主配置类启用缓存注解。通过这些步骤,可以利用Spring的注解实现Redis缓存。
25 2
|
19天前
|
前端开发 IDE Java
Spring3 MVC 集成Velocity中文支持
Spring3 MVC 集成Velocity中文支持
33 7
|
19天前
|
前端开发 Java BI
Spring3 Web MVC 集成Jasper Report生成PDF例子
Spring3 Web MVC 集成Jasper Report生成PDF例子
30 7
|
16天前
|
JSON 前端开发 Java
Spring MVC 级联对象参数校验
【6月更文挑战第6天】在 Spring MVC 的使用过程中,我们会发现很多非常符合直觉的功能特性,但往往我们会习惯这种「被照顾得很好」的开发方式,依靠直觉去判断很多功能特性的用法。
18 1