手记

今天写代码碰到一个关于实体类字段与数据库关键字的问题

一个实体类的字段要是取了和mysql 的关键字同名的,对数据的查找和删除没有影响,但是对数据库的修改和增添都会有影响,

仔细考虑了一下,应该是如果sql语句有用到 那个同名的关键字的话,系统就无法辨别 ,所以设计数据库字段时,尽量避免使用关键字`
代码如下:
这是数据库表 字段与实体类字段相对应,其中range是关键字Mysal的一种分区方式,具体我也不太清楚
<sql id="breadthColumns">
a.breadth_id AS breadthId,
a.code AS code,
a.range AS range,
a.metric AS metric,
a.british AS british,
a.creat_date AS createDate,
a.del_flag AS delFlag
</sql>

下面这个根据Id查找的sql语句没有用的range,可以执行
<select id="get" resultType="Breadth">
SELECT
<include refid="breadthColumns"/>
FROM
code_breadth_table a
WHERE a.breadth_id =#{breadthId,jdbcType=VARCHAR}
</select>

更新的Sqly语句用到了range,所以只想报语法错误
<update id="update">
UPDATE code_breadth_table
SET
code=#{code},
metric = #{metric},
british = #{british},
range = #{range},
creat_date = #{createDate}
WHERE breadth_id=#{breadthId,jdbcType=VARCHAR}
</update>
`

0人推荐
随时随地看视频
慕课网APP