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

来源:4-4 基于myBatis实现DAO编程(上)

未卜先知

2017-07-19 15:27

<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

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

写回答 关注

4回答

  • 未卜先知
    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里面没有写数据库名字啊?

    未卜先知

    url里面是带了数据库库名的,我写的其他项目都不用带库名的,目前就这个是这样 而且resultType="com.leibus.seckill.entity.Seckill" 也要写全,不然找不到 估计是某个注解没生效?现在还没想明白

    2017-07-19 22:09:41

    共 2 条回复 >

Java高并发秒杀API之业务分析与DAO层

Java实现高并发秒杀API的第一门课,还等什么,赶快来加入吧

87514 学习 · 506 问题

查看课程

相似问题