继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

艾桥
关注TA
已关注
手记 2
粉丝 0
获赞 4

一个实体类的字段要是取了和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>
`

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP