MyBatisPlus + Oracle 联合查询排序问题整理,2021 年最后一篇
背景
2021 年说话间就要过期了,今年干的几件事情有:
- 年初调研了三个任务调度框架。
- 4 月到 9 月参与了一个产品的开发,
SpringCloud + React
,基本掌握了微服务的知识,也熟悉了 React 这个前端框架,惊奇的发现是 React 竟然有 XSS 预防能力。 - 10 月至 12 月,参与了一个简单项目的开发。
本文整理10 月以来项目开发过程中遇到的简单的技术问题。
数据库操作
MyBatisPlus + Oracle 分页查询及联合查询的知识:
- 分页查询
IPage
查询中的OrderItem
排序列名称是数据库表的字段名称,而不是实体字段。 - DAO 分页查询结果会放到
IPage
入参中,所以方法定义时不需要返回IPage
对象,直接使用入参即可。 - Oracle 存储一个中文的长度是 2。
- Oracle 批量将
byte[]
保存到BLOB
字段时,不能使用 Union all, 因为它使用from dual
虚表查询获取数据的方式,因为从虚表取数据字段长度介于2000-4000之间时,Oracle 会将字段类型转为long
类型,会抛出异常ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
。 Timestamp
类型的字段作为查询条件时,参数传递类型也需要是时间戳。- DAO测试,list 列表为空的时候,执行批量插入SQL报异常:
java.sql.SQLSyntaxErrorException: ORA-00926
: 缺失 VALUES 关键字。 - 事务提交问题:新开启的事务,下一次查询并没有提交,直到下一次有写操作才提交。但如果查询想得到立即的数据,应该用
select for update
。
MyBatisPlus + Oracle 联合查询排序问题
Oracle 区分大小写,多表关联查询时,为了方便映射查询结果,可以设置字段别名,字段别名如果用双引号,需要转义。
例如,这个联合查询 SQL :
SELECT 'tableA' source, ID "Id" ,CREATE_TIME createTime
FROM tableNameA
UNION ALL
SELECT 'tableB' source, ID "Id" ,CREATE_TIME createTime
FROM tableNameB
如果用 createTime
进行排序,因为没有引号,可以直接设置:
orderItem.setColumn("createTime");
如果用 ID 字段排序,由于别名用了双引号,所以需要转义:
orderItem.setColumn("\"Id\"");
React 前端
- 设置打包目录的方式。
Form.Item
表单中的数据初始化,用initialValue
。- 函数绑定
this
的方式,显式绑定和 lambda 表达式绑定,以及不绑定 this 出现的事件提前被触发、undefined
等问题。 - React Table 设置某一列文本显示区域的属性是:
align: 'right'
。 - Upload 插件的
beforeUpload
返回false
或Promise.reject
时,只用于拦截上传行为,不会阻止文件进入上传列表,如果需要阻止列表展现,可以返回Upload.LIST_IGNORE
实现。 setState
是异步的,如果要在设置完成后执行某些动作可以添加回调函数。- 如何获取 Form 表单下 Table 中的表单。
SpringBoot
- 使用打包插件
exec-maven-plugin
在prepare-package
阶段阶段已经完成了 class 的编译,如果此时要执行额外的npm run build
命令将前端工程打包到 resources 目录下,那么最终的 jar 包中是不会包含新生成的资源文件的。所以如果 React 前端工程变化了,首次打包后不会生效。 Timestamp
类型的实体,默认生成的 JSON 格式是奇怪的,需要特殊设置格式如:@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
。- 不能对
Collections.emptyList()
这个返回对象进行集合操作。
其他
- word 全局替换:添加换行符号用
^l
。 - Linux 查找某个进程具体的启动时间:
ps -eo pid,lstart,etime|grep PID
。
后记
本文算是对今年的一个小结吧,今天在思考一个问题,有没有一种前端页面一劳永逸的数据定制框架呢?就是任何一个需要存储数据、从页面录入数据的工程,React 页面都可以定制数据结构的录入、编辑、回显等基本功能。
因为业务不同,貌似不太容易。想起一个论述母鸡与前端的文章 《母鸡与前端工程师》:
中国是世界鸡蛋第一大国。据统计,2013年全国产量5750亿枚,一个中国人平均一年要吃掉400多枚鸡蛋。
那么中国需要多少只母鸡,才能达到这样的产量?
据说,普通母鸡一年大概生200~250枚鸡蛋。养鸡场里面最优秀的母鸡,一年可以达到320枚。以250枚计算的话,中国至少需要有23亿只母鸡,才能满足全国人民吃蛋的需求。
如果把鸡蛋换成网页,同样的问题就是,中国一年需要生产多少张网页,才能满足人民消费的需要?
去年,我国手机用户超过13亿,智能手机用户超过6亿。就算其中只有一半人上网,那也是3亿多人。这么多人,每天都有几十分钟或者几个小时,要使用手机上网。全体中国人一年消费的网页和App的数量,是一个天文数字。
文章得出一个结论:
鸡蛋是母鸡生出来的,网页从哪里来?归根结底,所有页面都需要工程师做出来。那么多互联网公司,每家公司都需要前端工程师。而全国的前端工程师,目前可能总共有几十万人,对比那么大的内容消费量,肯定是远远不够的(想一想吧,全国的母鸡有23亿只)。这样一想,工程师抢手就不奇怪了。
还有一个很重要的原因,学校不教前端开发,可能会有一些相关课程,但不会系统地教,所有前端工程师都是靠自学的。这也导致了供给偏少。
未来前端工程师会收到 AI 的冲击吗?
如果后端转前端,会不会好一些呢?
——2021 年 12 月 31 日书
MyBatisPlus + Oracle 联合查询排序问题整理,2021 年最后一篇相关推荐
- oracle查询表字段sql语句怎么写,oracle联合查询并更新一个表字段的sql语句
更新某一个字段写起来简单,也容易理解: UPDATE tablea A SET A.name=(select name from tableb B where A.id=B.id) 更新多个字段就显得 ...
- oracle主从关系表查询,Oracle 主从表联合查询解决方法
Oracle 主从表联合查询 表A id type name 1 E AA 2 F 表B id Aid name 1 2 BB 2 2 ...
- oracle中文字段名怎么查询_sql注入联合查询总结
点击上方蓝色字关注我们 联合查询注入利用的前提: 前提条件:页面上有显示位 联合注入的过程: 1.判断注入点 2.判断是整型还是字符型 3.判断查询列数 4.判断显示位 5.获取所有数据库名 6.获取 ...
- Oracle ODI 12c之多表联合查询以及定时任务设置
本文介绍如何通过ODI进行多表联合查询并设置定时任务.准备工作如下: 准备物理方案和逻辑方案: 创建模型并通过"逆向工程"同步方案: 创建项目(根据实际情况创建或者使用现有的): ...
- oracle多表联合查询更新,ORACLE 两表关联更新三种方式
不多说了,我们来做实验吧. 创建如下表数据 select * from t1 ; select * from t2; 现需求:参照T2表,修改T1表,修改条件为两表的fname列内容一致. 方式1,u ...
- Oracle多表联合查询
-多表联合查询: –当需要获取的数据分布在多张中,考虑使用联合查询 –SQL92方式 –SQL99方式 –SQL92方式 –笛卡尔积:将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积. –结果的 ...
- java 索取了多表联合查询分页,mybatis-plus多表联合分页查询
1.entity层要写个Vo实体类 2.controller @AutoLog(value = "员工CURD-分页列表查询") @ApiOperation(value=" ...
- oracle 外键子查询,外键、联合查询、子查询
1.外键: 增加外键 创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) references 外部表(主键字段) 在新增表之后增加外键:修改表结构,使用alter ta ...
- Oracle数据库经典案例之学生选课四表联合查询
四表联合查询之学生选课查询 问题及描述: 学生和成绩表 学生是主表,成绩是子表 课程和成绩表 课程是主表,成绩是子表 老师和课程表 老师是主表,课程是子表 1.学生表 Student(S#,Sname ...
最新文章
- 心得丨程序员们,AI来了,机会来了,危机也来了,我们该咋办?
- Asp.net MVC 示例项目Suteki.Shop分析之---结束篇
- mac改终端前面的计算机名
- 结合源码深入理解Android Crash处理流程
- [css] 使用css将图片转换成黑白的效果
- 360断网急救箱_万事不求人,教你自己动手修复网络断网
- AlphaFold2开源了,不是土豪也不会编程的你怎么蹭一波?
- Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(二)
- SpiderKeeper的使用
- node 连接mysql 中间件_如何在node.js里连接和使用mysql
- 中南大学计算机基础考试试题,[中学]中南大学计算机基础考试题库试题.doc
- 计算机审计实验一计划阶段,审计实验1.ppt
- 安卓开发日记1——虫虫新闻
- 保镖机器人作文_【保镖的作文】_玛雅作文网
- DISC社交风格测试题--老虎 孔雀 考拉 猫头鹰
- 基于Fruits-360数据集构建CNN进行水果识别实验
- c#开发条形码生成器
- 为什么说JCLGMP必将带来更实实在在的就学等方面权益?
- 雨雨cms-YYCMS5.0新版影视网源码自动采集数据-玥雅CMS
- python怎么变成竖行,python更改文字为竖排