李白的古诗,菠菜不能和什么一起吃,网络视频直播-大坑视线-专注闭坑-重新发现价值

频道:新闻世界 日期: 浏览:245

1、insert写成select

在一般的情况下,此写法是能够正常运转的。不过在有一些公司自定义的MyBatis时(像咱们公司为了支撑分库分表)开发了一套自定义的mybatis组件,这个组件假如select标签里边写insert时就会报错。

所以我们标签和句子仍是需求对应的好,不然有可能会呈现不行预知的过错。

2、select中的resultMap特点不正确

一些Eclipse或idea有依据Mapper接口主动生成xml的功用,比方作者之前装置的一个插件就会把一切的mapper中的方法生成

正确的方法是运用resultMap或许select句子中有_的字段都添加AS

3、#和$混用的问题

看官方文档怎么描绘的http://www.mybatis.org/mybatis-3/sqlmap-xml.html#select

能够看到官方的问题写的很清楚,运用#,MyBatis会运用PreparedStatement来进行SQL查询,能够避免SQL注入。而$更多的是用来拜访配置文件中的特点的。所以我们在自己的SQL中仍是应该经量运用#。

4、在运用resultMap的时分,要把ID写在榜首行,不然的话,就会报错。



5、时刻戳的运用

许多表一般会给一个create_time和update_time两个字段。许多小伙伴一般在Java中去手动设置两个字段的值。其实更好的方法是运用数据自带的时刻戳函数

CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(255) DEFAULT NULL COMMENT '名字',
`password` varchar(255) DEFAULT NULL COMMENT '暗码',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创立时刻',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时刻',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

6、能够不必if choose等句子就经量少用

有一些开发,许多代码都是从他人的Mapper文件copy过来的,许多情况下也考虑为什么。比方 这些条件句子的运用,假如你的参数是必传的话,那么就不要写,这样能够削减不必要的运算和使代码明晰。比方你们公司的DBA看见这样的句子,知道你的索引运用的对吗?

比方此例中的userId假如已经是添加了索引,并且是必填的,那么就不要写啦,直接最终写user_id = #{userId}就能够了。

看到这儿,阐明你喜爱本文,你的转发,是对我最大的鼓舞!重视亦是支撑↓