Netbeans将数据库链接到Java(应用程序获取记录并将其保存到表中)
我正在尝试创建一个应用程序,该应用程序使用用户名并将其保存在表中 这就是我得到的错误: 【EL信息】:2016-01-19 00:24:22.979--服务器会话(227610345)--EclipseLink,版本:Eclipse 持久性服务-2.5.2.v20140319-9ad6abd[EL Info]:连接: 2016-01-19 00:24:23.104--服务器会话(227610345)--文件:/C:/Users/M7edShin/Documents/NetBeansProjects/SaveBox/build/classes/_SaveBoxPU 登录成功【EL警告】:2016-01-19 00:24:23.154——工作单元(171647063)——异常[EclipseLink-4002] (Eclipse持久性服务-2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException内部 异常:java.sql.SQLIntegrityConstraintViolationException:列 “ID”不能接受空值。错误代码:20000呼叫:插入到 预编码(ID、用户名)值(?,)绑定=>[2个参数绑定] 查询:InsertObjectQuery(savebox.Precords[id=null]) java.lang.IllegalArgumentException:已创建空PK的实例 为此查找操作提供了错误的设置 这是我正在使用的代码:Netbeans将数据库链接到Java(应用程序获取记录并将其保存到表中),java,Java,我正在尝试创建一个应用程序,该应用程序使用用户名并将其保存在表中 这就是我得到的错误: 【EL信息】:2016-01-19 00:24:22.979--服务器会话(227610345)--EclipseLink,版本:Eclipse 持久性服务-2.5.2.v20140319-9ad6abd[EL Info]:连接: 2016-01-19 00:24:23.104--服务器会话(227610345)--文件:/C:/Users/M7edShin/Documents/NetBeansProject
Precords p = new Precords();
p.setUsername(txtUsername.getText());
EntityManagerFactory emf = Persistence.createEntityManagerFactory("SaveBoxPU");
PrecordsJpaController pjc = new PrecordsJpaController(emf);
try {
pjc.create(p);
} catch (Exception e) {
System.out.println(e);
}
showTable a = new showTable();
a.setVisible(true);
正如您所看到的,我的id是正确的(
主键,并且不是NULL和唯一的
),所以为什么会出现此错误?Precords对象没有设置id属性。所以,当您尝试插入到表中时。它正在显示列“ID”,不能接受空值
试着设置id也一样
p、 setID(1)//做一些逻辑来设置唯一值
它应该能成功运行