insert into MT_ROOM_INFO (ID, ROOM_NAME, ROOM_NO,
ROOM_LEVEL, LON, LAT, ROOM_ADDR,
ROOM_MAINTENCE_ID, ROOM_MAINTENCE_NAME, STATUS
)
values (#{id,jdbcType=VARCHAR}, #{roomName,jdbcType=VARCHAR}, #{roomNo,jdbcType=VARCHAR},
#{roomLevel,jdbcType=VARCHAR}, #{lon,jdbcType=FLOAT}, #{lat,jdbcType=FLOAT}, #{roomAddr,jdbcType=VARCHAR},
#{roomMaintenceId,jdbcType=VARCHAR}, (select MAINTENCE_NAME from MT_MAINTENANCE_INFO where ID=${roomMaintenceId}), #{status,jdbcType=VARCHAR}
)
好心人看看这个哪儿错了,需要怎么修改
报什么错啊?可以把values换成你要录入的数据的值,放到数据库中执行一下,看看是哪里报错。
首先${roomMaintenceId}这个不是mybatis的语法吧?应该是#{roomMaintenceId}这样吧;(select MAINTENCE_NAME from MT_MAINTENANCE_INFO where ID=${roomMaintenceId})这个是否确定只返回一条记录?具体要看报错信息
路过,楼上的回答纠正一下问题。 # $ 两种都是mybatis的语法
首先要明白这里是拼装SQL的,在赋值的时候不能使用select MAINTENCE_NAME from MT_MAINTENANCE_INFO where ID=${roomMaintenceId}), 可以在代码中拼装后再拼装
insert与select 不能这么用