一. 报错列表
1.1. Out of range value for column “xx” at row x
阐述:第 “x” 行的列 “xx” 超出范围
原因:建表时,类型bigint且长度20,如下字段的值超过其可输入的范围了
解决:修改该值为该列所设的长度即可
1.2. Incorrect datetime value:“for column 数据库名
.表名
.字段
” at row 1
阐述:在xx数据库的xx表中xx列是不正确的日期值。
原因:如下设置默认为NULL,那么默认为 ‘0000-00-00 00:00:00’
解决:填入的值为 “0000-00-00 00:00:00”
才不会报错
1.3. Cannot deserialize value of type java.util.Date
from String “2023-05-29T18:02:02.000Z”: expected format “yyyy-MM-dd HH:mm:ss”;
阐述:需要的是 yyyy-MM-dd HH:mm:ss
格式,而得到的是 yyyy-MM-ddTHH:mm:ss.000Z
原因:前后端传值,调用接口传的参数不正确
解决:可以通过过滤器将时间转为后端所需的,见附录二的 2.1
1.4. Operand should contain 1 column
阐述:俩表联查,操作的数据里查询结果没有列值
原因:这一块暂未搞懂
参考:原因
1.5 Subquery returns more than 1 row
阐述:俩表联查,子查询返回了多条数据
原因:该sql只能返回一条数据
参考:一表(树形结构)联查,返回树形结构。附录二 2.2
1.6 Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘xxx.updata_time’ in ‘order clause’\r\n### The error may exist in file
阐述:找不到该列“borrow.updata_time”
原因:update_time 写错了
1.7 class java.lang.String cannot be cast to class java.util.Date (java.lang.String and java.util.Date are in module java.base of loader ‘bootstrap’)
阐述:将String 转为Date类型是不允许的
原因:前端使用组件el-data-picker实现筛选时间功能,在传参时传的时间类型是’String’,然而在后端接收时转为了‘Date’
解决:前后端修改为一样的String类型即可
二. 附录
2.1. 日期格式转换
// 1. 先放在js文件,路径为:@/utils/date.js
export function dateFormat(date, format) {
format = format || 'yyyy-MM-dd hh:mm:ss'
if (date !== 'Invalid Date') {
let o = {
'M+': date.getMonth() + 1, //month
'd+': date.getDate(), //day
'h+': date.getHours(), //hour
'm+': date.getMinutes(), //minute
's+': date.getSeconds(), //second
'q+': Math.floor((date.getMonth() + 3) / 3), //quarter
S: date.getMilliseconds(), //millisecond
}
if (/(y+)/.test(format))
format = format.replace(
RegExp.$1,
(date.getFullYear() + '').substr(4 - RegExp.$1.length)
)
for (let k in o)
if (new RegExp('(' + k + ')').test(format))
format = format.replace(
RegExp.$1,
RegExp.$1.length === 1
? o[k]
: ('00' + o[k]).substr(('' + o[k]).length)
)
return format
}
return ''
}
// 2. 在vue文件中使用
import { dateFormat } from '@/utils/date'
methods: {
submit(){
let time = dateFormat(要处理的时间)
}
2.2 一表自连查,获取到子级列表以及父级名称
– 1. 自联查获取父级名称
SELECT sort.*,( SELECT ca.catamanage_name FROM admin_archive_attach_sort ca WHERE ca.id = sort.parent_id ) AS parentName
FROM
admin_archive_attach_sort sort
WHERE
sort.id = ‘1661347708339924994’– 2. 自联查获取父级名称
SELECT
sort.*,
ca.catamanage_name parentName
FROM
admin_archive_attach_sort sort
LEFT JOIN admin_archive_attach_sort ca ON sort.parent_id = ca.id
WHERE
sort.id = ‘1661347708339924994’