麻烦老师帮我看看问题出在哪

麻烦老师帮我看看问题出在哪

之前把catelog写成catelog,刚刚全部修改过来了但还是出错,我实在找不到错误在哪,错误信息提示的地方我就是找不到,下面我放出报错可能发生的地方老师看看,就是找不到这个catelog在哪,因为报错显示sql问题,我就只放DAO了

package com.imooc.icake.dao;

import com.imooc.icake.entity.Catalog;
import com.imooc.icake.entity.Catalog;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface CatalogDao {
    @Insert("<script>" +
            "insert into catalog(title,pid,info) values" +
            "<foreach collection='list' item='catalog' separator=','>" +
            "(#{catalog.title},#{catalog.pid},#{catalog.info})" +
            "</foreach>"+
            "</script>")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    void batchInsert(List<Catalog> list);

    @Delete("delete from catalog where id=#{id}")
    void delete(int id);


    @Select("select * from catalog where id = #{id}")
    @Results(id="all",value={
            @Result(column = "id", property = "id", id = true),
            @Result(column = "title", property = "title"),
            @Result(column = "info", property = "info"),
            @Result(column = "id", property = "children", many = @Many(select = "selectByPid"))
    })
    Catalog select(int id);


    @Select("select * from catalog where pid=#{pid}")
    @ResultMap("all")
    List<Catalog> selectByPid(int pid);
}
package com.imooc.icake.dao;

import com.imooc.icake.entity.Cake;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface CakeDao {

    @Insert("insert into cake(title,cid,image_path,price,taste,sweetness,weight,size,material,status) values(#{title},#{cid},#{imagePath},#{price},#{taste},#{sweetness},#{weight},#{size},#{material},#{status})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    void insert(Cake cake);

    @Update("update cake set title=#{title},cid=#{cid},image_path=#{imagePath},price=#{price},taste=#{taste},sweetness=#{sweetness},weight=#{weight},size=#{size},material=#{material},status=#{status} where id=#{id}")
    void update(Cake cake);

    @Delete("delete from cake where id=#{id}")
    void delete(int id);

    @Select("select c.*,ca.title ctitle from cake c left join catalog ca on c.cid=ca.id where c.id=#{id}")
    @Results(id="all",value = {
            @Result(id = true,column = "id",property = "id"),
            @Result(column = "title",property = "title"),
            @Result(column = "cid",property = "cid"),
            @Result(column = "image_path",property = "imagePath"),
            @Result(column = "price",property = "price"),
            @Result(column = "taste",property = "taste"),
            @Result(column = "sweetness",property = "sweetness"),
            @Result(column = "weight",property = "weight"),
            @Result(column = "size",property = "size"),
            @Result(column = "material",property = "material"),
            @Result(column = "status",property = "status"),
            @Result(column = "ctitle",property = "catalog.title")
    })
    Cake select(int id);


    @Select("select c.*,ca.title ctitle from cake c left join catalog ca on c.cid=ca.id")
    @ResultMap("all")
    List<Cake> selectAll();
}
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'icake.catelog' doesn't exist
### The error may exist in com/imooc/icake/dao/CatelogDao.java (best guess)
### The error may involve com.imooc.icake.dao.CatelogDao.select-Inline
### The error occurred while setting parameters
### SQL: select * from catelog where id = ?
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'icake.catelog' doesn't exist


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕柯南 2019-12-21 15:36:48

同学你好!

  1. 刷新项目会重新编译,相当于重新部署

  2. idea热更新,修改一下位置,为如图所示的样子,idea热部署有时可能会有延时

    http://img1.sycdn.imooc.com//climg/5dfdcaee092edb5414580901.jpg

  3. 重启tomcat项目会重新启动。会重新编译。老师和同学说的是一个意思。

祝学习愉快~


好帮手慕柯南 2019-12-20 17:19:59

同学你好!

  1. 只要修改了代码肯定要重新编译才能够访问到最新的代码

  2. 你可以在Server下点击左边的图标,可以刷新项目

    http://img1.sycdn.imooc.com//climg/5dfc914409cfed7f04800179.jpg

    或者重新启动项目

  3. 但是有时按以上操作了,可能修改的代码还是不生效,这是可能就是缓存的原因。可以考虑删除target或者清除idea或者浏览器的缓存测试一下。这里老师以为你之前重启启动过了,所以怀疑是缓存的问题,让你删除target了

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕柯南 2019-12-20 15:45:49

同学你好!
可能是你修改之后,idea没有将项目重新编译好导致的,你可以将编译生成的target文件删除,强制重新idea重新编译。重新启动项目测试一下。

http://img1.sycdn.imooc.com//climg/5dfc7bdc096f490202360117.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 请问,如果我修改了JAVA代码,那再次尝试功能的时候需要把服务器重启,target删除,重新编译全部重新做一遍吗,有时候就是写错字了修改一下也要这样吗
    2019-12-20 16:10:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师