【夫子原创】数据库关键字的坑

日期:2017-09-07 09:10:06
       在授课的过程中,我一再强调规范,比如,命名规范,这个很重要,在java代码里,不管是类名、方法名还是变量名,都要有使用驼峰形式,什么是驼峰?像这样的命名方式:realName、createTime、listUserOrder,我们称之为驼峰命名法,单词和单词之间首字母大写,高低起伏,看上去像沙漠里骆驼背上的驼峰。

 

       在讲到数据库时,建表和字段的时候,也需要起名字,很多童鞋一上来就使用驼峰形式来命名表名和表字段,这种做法是不对的,数据库里有自己的命名的方式,比如createTime,在表字段里,应该使用create_time来表示,使用下划线“_“来连接每个单词,和应用程序里的驼峰命名法完全不同,所以,在写惯了代码的情况下,忽然让你建表,顺手就将表名和表字段写成了驼峰格式。所以,大家一定去遵守这样的规范,当然,不遵守也没有关系,程序一样可以运行,不过,在大家都遵守的情况下,你比较特立独行,那么,迎接你的将是大大小小的坑,这些坑就在你不经意间,溜达到你脚下,前脚刚从坑里拔出来,后脚又会踏进另一个坑。这是我在教学中,亲眼看到学员犯下的错误,我已经告诫他们很多次了,一定要遵守规范,可是,依旧有学员要躺一躺这浑水,以身试法,结果狼狈不堪。就在前几天,我在公司加班,临走前,帮学员解决了一个问题,是一个SQL问题,SQL本身是没有问题的,一执行就报错,后来使用排除法,查处报错的原因是他在建表时,表名起的是order,可这个order是数据库里的关键字,例如:“order by“是用来排序的。所以,像这样的问题,很难去排查,因为,SQL写的是没问题的,语法都OK,但一执行就报错,很多学员在这样低级但错误中耗费里很多时间和精力,当我把问题找到时,都唏嘘不已,觉得不应该犯这样都错误,可实施情况是不止犯一次,而是犯了很多次,有些人使用"desc"当作表字段都名称,然而,desc也是数据库的关键字,也会引起SQL异常,查找问题也很费劲,这都是不遵守规范引起的,表名我们一般都会有前缀的,比如某系统的表名:xxx_user,其中xxx代表项目代号,这样就不会出现刚才的关键字问题,而且,对于DBA来说,这样的表名一看就明了,知道这张表是哪个系统在使用。

 

       字段名尽量不要缩写,容易产生奇异,还会造成误用数据库关键字的问题。还有,就是建索引的规范,比如建一个唯一性索引,前面务必加上uq,比如要将user_id字段加上一个唯一性索引,可以给索引命名为:uq_user_id,这样别人看到索引的名字就知道是什么类型的索引,以及是给哪个字段添加的索引,这些规范,看似没什么,但良好的规范,会减少代码的bug,能避免一些尴尬的bug,但是我遇到很多初学者并没有意思到,就我班上的学员也是在我多次强调和他们以身试坑的大无畏之精神,才溅溅的感受到了规范的重要性,没办法,想要get到技能,只能不断的入坑和挖坑才能学到真本事。

       大猿软件,Java培训小班教学,欢迎你的到来。

 


 

JDBC编程+MyBatis框架+项目实战

7天

¥1600

9月15号-9月25号

(报名中)

JavaEE高级+项目实战+模拟面试

2.5个月

¥8000

9月26号-12月14号

(报名中)

 

Java SE 基础 1个月 ¥3000

10月16号-11月16号 

(报名中)

 

JDBC编程+MyBatis框架+项目实战 7天 ¥1600

11月17号-11月23号(含周六周日)

(报名中)

JavaEE高级+项目实战+模拟面试 2.5个月 ¥8000

2017.11.24-2018-02-08

(报名中) 

 

报名方式1、直接在微信公众号中留言报名。

报名方式2、添加大猿软件唯一qq:2371671422。

报名方式3、电话17712879136(江老师)。