Mybatis 的问题,我按照原本的格式写一个操作为什么原先的能成功,而我的不管怎样都会失败呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ukipoi
V2EX    Java

Mybatis 的问题,我按照原本的格式写一个操作为什么原先的能成功,而我的不管怎样都会失败呢?

  •  
  •   ukipoi 2018-10-30 14:03:27 +08:00 2498 次点击
    这是一个创建于 2539 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个项目 Dao 是单独一个项目,然后打成 jar 包添加到 maven。在后台项目里从 maven 引入的。 我想在 Dao 里加一个操作,但是就很简单的查询也会失败。 模仿的样例:
    AppUserMapper.java

    AppUserMapper.xml

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="XXX.dao.AppUserMapper"> <resultMap id="BaseResultMap" type="XXX.entity.AppUser"> <!--实体类映射--> </resultMap> <sql id="Base_Column_List"> <!--查询的值--> </sql> <!--省略--> <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from app_user where id = #{id,jdbcType=VARCHAR} </select> <!--省略--> </mapper> 

    自己写的:
    GoodsOff.java

    package XXX.entity; import java.io.Serializable; public class GoodsOff implements Serializable { private int id; private String goodsId; private float off; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getGoodsId() { return goodsId; } public void setGoodsId(String goodsId) { this.goodsId = goodsId; } public float getOff() { return off; } public void setOff(float off) { this.off = off; } } 

    GoodsOffMapper.java

    package XXX.dao; import XXX.entity.GoodsOff; public interface GoodsOffMapper { GoodsOff selectByPrimaryKey(String goodsId); } 

    GoodsOffMapper.xml

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="XXX.dao.GoodsOffMapper"> <resultMap id="BaseResultMap" type="XXX.entity.GoodsOff"> <id column="id" jdbcType="INTEGER" property="id" /> <result column="goods_id" jdbcType="VARCHAR" property="goodsId" /> <result column="off" jdbcType="FLOAT" property="off" /> </resultMap> <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> select * from hbmm_goodsoff where goods_id = #{goodsId,jdbcType=VARCHAR} </select> </mapper> 

    我数据库里的表:

    REATE TABLE `hbmm_goodsoff` ( `id` int(11) NOT NULL AUTO_INCREMENT, `goods_id` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL, `off` float DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; 
    xiaoxinshiwo
        1
    xiaoxinshiwo  
       2018-10-30 14:10:18 +08:00
    报错信息贴一下啊大胸弟
    Starry
        2
    Starry  
       2018-10-30 14:10:38 +08:00
    是不是包名路径不一样,自动扫描扫不到你的 DAO 和 XML 文件
    ukipoi
        3
    ukipoi  
    OP
       2018-10-30 14:24:36 +08:00
    @xiaoxinshiwo
    不好意思,错误信息是下面这样的</br>
    ```error
    十月 30, 2018 2:22:44 下午 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet [mvc] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException:
    ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'bar.hbmm_goodsoff' doesn't exist
    ### The error may exist in class path resource [com/youzhuo/bar/mapping/mybatis/GoodsOffMapper.xml]
    ### The error may involve com.youzhuo.bar.dao.mybatis.GoodsOffMapper.selectByPrimaryKey-Inline
    ### The error occurred while setting parameters
    ### SQL: select * from hbmm_goodsoff where goods_id = ?
    ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'bar.hbmm_goodsoff' doesn't exist
    ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'bar.hbmm_goodsoff' doesn't exist] with root cause
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'bar.hbmm_goodsoff' doesn't exist
    ```
    gejun123456
        4
    gejun123456  
       2018-10-30 14:32:08 +08:00
    不是表不存在么,数据库连接问题? 连到你设置的数据库去看看吧
    ukipoi
        5
    ukipoi  
    OP
       2018-10-30 14:40:53 +08:00
    @gejun123456
    真的是眼瞎了,全局搜索了 jdbc.url 才发现原先的项目有 3 个地方配置了数据库连接,我只改了 1 个。
    谢谢回复
    519718366
        6
    519718366  
       2018-10-30 14:44:02 +08:00
    bar 库下面有这个 hbmm_goodsoff 表?要么你连到其他库去了,要么就是名字打错了什么的?
    xiaoxinshiwo
        7
    xiaoxinshiwo  
       2018-10-30 15:13:49 +08:00
    @ukipoi #5 所以发贴记得贴异常啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2719 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 07:46 PVG 15:46 LAX 00:46 JFK 03:46
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86