一. 报错列表
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), //quarterS: 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’