你好 请问下java.sql.SQLException: 列名无效 这个怎么解决 我的字段和数据库是一样的

数据库可以查出来,java里遍历不出来

img

img

32行那个拼接的字符串最后,右括号后面加一个 as t1,然后你的where条件里面,写成where t1.r between

rs.Get后面标的字段名再确认一遍吧,也有可能是这里的问题

你把你下面写的列名,全部改成大写的试试。
很多人都说oracle数据库大小写不敏感,其实事实反而恰恰相反,
对于对象及列名不加双引号时,无论你输入的是大写还是小写,统统都会在后台自动转换为大写再去执行,因此你如果你建表时字段是不加双引号的小写,这其实是按大写建的,这些字段名在数据字典里都是大写。
如果你建表的时候,这些小写字段被双引号引起来了,那么你sql里去查时也必须使用双引号把字段引起来,因为不引就是自动大写。
同理,用双引号引起来的方式,甚至可以建大小写混用的字段或者对象名

oracle我用的比较少。但是mysql和mssql我还是比较熟悉。
从楼主的截图来看,应该是sql语句写错了。

可以加个别名,


SELECT * FROM (SELECT rownum r,n.* FROM news n WHERE newsstate=1) a WHERE a.r BETWEEN 1 AND 5 

另外,如果是Springboot项目,推荐使用Mybatis-plus

Spring Boot 实战纪实-Springboot整合Mybatis-plus