问答详情
源自:4-4 基于myBatis实现DAO编程(上)

为什么我写Sql语句的时候还要带上库名?不能直接使用表名比如UPDATE seckill

<update id="reduceNumer">
   UPDATE seckill.seckill     //如果不带库名,提示unable to resolve
   SET number = number -1
   WHERE seckill_id = #{seckillId}
   AND start_time <![CDATA[ <= ]]> #{killTime}
   AND number >0
</update>

http://img.mukewang.com/596f129f0001545308380156.jpg

user这个表是其他库的,在Mybatis中能直接用后面带(),

这个课程中创建的库,在Mybatis中就必须要用库名seckill,操作的时候也就是必须库名加表名seckill.seckill

难道是只有一个数据库的时候的时候不需要表名?现在两个库了,第二个库必须加库名(虽然我也觉得要加)

提问者:未卜先知 2017-07-19 15:27

个回答

  • 未卜先知
    2017-07-19 22:39:21

    我新建了一个只有这一个表的用户,就没问题了,问题是等我在用其他用户的时候,看起来也是没问题的

    这有可能是intellij的一个bug

  • 未卜先知
    2017-07-19 22:10:58

    测试倒是跑通的,就是感觉怪怪的,智能提示告诉我必须带库名

  • Android精灵
    2017-07-19 18:11:00

    应该不需要带数据库名啊

  • 呵呵142
    2017-07-19 18:03:38

    你是不是url里面没有写数据库名字啊?