java出错了,报错SQL出错,错误是java.sql.SQLException: sql injection violation, dbType mysql
前言
报错提示信息如下:
java.sql.SQLException: sql injection violation, dbType mysql
sql injection violation,字面理解就是sql注入错误,多数情况都是列名被怀疑是sql注入,所以被拒绝,需要检查字段(比如用户id在别的地方是user_Id,但在user自己表里面即主键就叫id)
解释:
一般情况下,都是因为表字段和关键字冲突,这个问题解决后多数情况都正常了。如果开发工具不显示SQL关键字不方便区分的话,暂时我只知道三种解决办法:
- 可以把感觉不对劲的表名和字段名都用 ` ` 给注上,如`state`
- 给冲突的字段或表名起别名
- 还可以在oracle中使用双引号"",将冲突的列名括起来
例子:select * from user where "name" = "张三他叔"
所以为了避免这种情况,在数据库最初建表时需要有意识的避免字段冲突问题,下面是网上找的建表命名规范:
采用“系统名 _ t_ 模块名 _ 表义名”格式构成。
若数据库中只含有单个模块,命名可采用“系统名 t_ 表义名”格式构成。
整个表名的长度不要超过30个字符。
系统名、模块名均采用小写字符。
模块名或表义名均以其英文单词命名,且字符间不加分割符;表义名中单词的首字符大写,其它字符小写,多个单词间也不加任何分割符,单词全部采用单数形式。
表别名命名规则:取表义名的前3个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)。
关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanegfj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01