在maven项目中显示无法解析表 有的语句又可以正常解析表

在调试代码时发现有的语句可以识别表 有的语句无法识别表
String insert = "insert into Book(book_name,book_author,book_publish) values(?,?,?)";
pstmt = conn.prepareStatement(insert);
pstmt.setString(1,book.getBookName());
pstmt.setString(2,book.getBookAuthor());
pstmt.setString(3,book.getBookPublish());
pstmt.execute();
这一堆语句和这个语句
rs = stmt.executeQuery("SELECT * FROM Book");
都是一样的 可以说都是静态查询语句 虽然上面的String insert本质上是动态的 但是是预输入的 在执行上也是静态的 而当idea遇到静态的sql查询语句时,会先向自身的数据源中找表 但是由于我idea没有配置数据源 用的时jdbc链接的datagrip数据库 因此会出现无法解析表 以及book_name等等

但是当sql语句是动态的时
stmt.executeUpdate("delete from Book where id="+id);
idea遇到动态的sql语句不会去验证 会等到执行的时候链接数据库去执行 因此不会报错 可以说 这个问题是由于本地没有部署数据库导致的问题 属于虚假报错 对代码并没有影响 当真正执行起来之后 只要数据库连接成功,就会正确执行代码。

posted @ 2025-04-11 20:12  big4mart  阅读(26)  评论(0)    收藏  举报