问题阐述:解决方法1.选确认你SQL语句中的字段名称和实体类中的对象名称一一对应(不多概述),2.如果您的SQL语句中的字段名使用“双引号”包裹起来了,那就把双引号去掉重新创建表即可,详细过程如下:
对于这个问题,网上有很多种的解决方案(基本就是 你的SQL里面的字段名和java中的实体类的对象名称不一样)我反复检查发现就是一模一样的,最后发现就是 SQL创建表中字段的SQL语句的问题,就是创建SQL表的时候,字段名称 不要带 “双引号”(不要把字段名称用双引号包裹起来)
就像这样
SQL语句中字段名称被双引号包裹
CREATE TABLE logon_logs (
"id" VARCHAR2(50 BYTE) NOT NULL , --id
"time" DATE , --时间
"user_name" VARCHAR2(50 BYTE), --用户名称
"login_results" NUMBER(6) , --登录结果
"ip" VARCHAR2(50 BYTE) , -- IP地址
"address" VARCHAR2(50 BYTE) , --地址
"remark_outcome" VARCHAR2(50 BYTE) --登录结果
);
java实体类:(我这里用了mybatis 规定了 驼峰命名)
public class LogonLogs {
/**
* id编号
*/
private String id;
/**
* 时间
*/
private Date time;
/**
* 用户名称
*/
private String userName;
/**
* 登录结果
*/
private Integer loginResults;
/**
* ip地址
*/
private String ip;
/**
* 地址
*/
private String address;
/**
* 备注
*/
private String remarkOutcome;
}
这里可以看到,我们的对象名称和SQL语句中的字段名称 一模一样,但是还是报错:
修改方法
我们把SQL的创建表的语句改成这样
SQL创建语句中的 字段名 不要用 “双引号”包裹
CREATE TABLE logon_logs (
id VARCHAR2(50 BYTE) NOT NULL , --id
time DATE , --时间
user_name VARCHAR2(50 BYTE), --用户名称
login_results NUMBER(6) , --登录结果
ip VARCHAR2(50 BYTE) , -- IP地址
address VARCHAR2(50 BYTE) , --地址
remark_outcome VARCHAR2(50 BYTE) --登录结果
);
改成这个样子,我们在java中发送请求,数据就出来啦,也不会报错了!