【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







相关文章
|
25天前
|
缓存 NoSQL Redis
SpringBoot+SpringCloud+Mybatis+Vue电商项目实战,附文档+源码
采用SpringBoot+SpringCloud+Mybatis+Vue为主要技术栈,包括了大型商城的主要功能、难点功能以及复杂业务功能,涉及到了Oauth2、JWT令牌、MQ的可靠性投递、流量削峰、秒杀、支付、集群、redis哨兵、lua脚本、缓存击穿&雪崩,分布式文件存储等内容。
37 0
|
2月前
|
SQL Java 关系型数据库
【项目实战典型案例】27.单表的11个Update接口--MyBatis
【项目实战典型案例】27.单表的11个Update接口--MyBatis
|
2月前
|
SQL Java 关系型数据库
项目实战21—理由Mybatis动态SQL实现复用
项目实战21—理由Mybatis动态SQL实现复用
50 0
|
2月前
|
XML SQL Java
Spring Boot + vue-element 开发个人博客项目实战教程(六、项目包创建和配置Mybatis)
Spring Boot + vue-element 开发个人博客项目实战教程(六、项目包创建和配置Mybatis)
38 1
|
4月前
|
SQL 算法 Java
[兔子私房课] Mybatis开发详解与项目实战02
大家好,本章主要讲解mybatisPlus的日志配置和ID生成策略!
|
10月前
|
XML 存储 SQL
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目3)
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目)
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目3)
|
10月前
|
SQL 存储 NoSQL
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目2)
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目)
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目2)
|
10月前
|
SQL 算法 NoSQL
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目1)
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目)
【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目1)
|
SQL 存储 Java
1.2 了解MyBatis -《SSM深入解析与项目实战》
1.2 了解MyBatis -《SSM深入解析与项目实战》
831 0
推荐文章
更多