Java 行插入时出现外键冲突错误

Java 行插入时出现外键冲突错误,java,jdbc,Java,Jdbc,当我试图通过jdbc将值插入下表时,我遇到了一个错误 数据库模式 CREATE TABLE student_contact_details_t( student_contact_details_id MEDIUMINT NOT NULL AUTO_INCREMENT, student_id MEDIUMINT NOT NULL , contact_relation_type_id MEDIUMINT NOT NULL, name varchar(255),

当我试图通过jdbc将值插入下表时,我遇到了一个错误

数据库模式

CREATE TABLE student_contact_details_t(
    student_contact_details_id MEDIUMINT NOT NULL AUTO_INCREMENT,
    student_id MEDIUMINT NOT NULL ,
    contact_relation_type_id MEDIUMINT NOT NULL,
    name varchar(255),
    addresss varchar(255),
    phone_no varchar(255),
    created_by varchar(255),
    created_date DATE,
    modified_by varchar(255),
    modified_date DATE,
    PRIMARY KEY(student_contact_details_id),
    FOREIGN KEY(student_id) REFERENCES student_details_t(student_id),
    FOREIGN KEY(contact_relation_type_id) REFERENCES contact_relation_type_t(contact_relation_type_id)
);
代码

例外情况

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`studentregistration`.`student_contact_details_t`, CONSTRAINT `student_contact_details_t_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `student_details_t` (`student_id`))
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
    at com.mysql.jdbc.Util.getInstance(Util.java:360)

错误表示您正在将
学生id
插入表
学生联系人详细信息\u t
中,而该表在
学生详细信息\u t
表中不存在。查看您在
学生联系人详细信息\u t
表创建过程中设置的外键约束


因此,您必须首先在表
student\u details\u t
中插入,然后在
student\u contact\u details\u t
中插入
student\u id
您必须验证student表student\u details\t中是否存在学生id

如果学生详细信息中不存在该学生,则无法在相关表“学生联系人详细信息”中插入该学生


在这个场景中,你应该告诉用户“学生XXX不存在”。

我很困惑。您的标题表示加载数据库配置时出错,但异常表示您遇到了约束冲突,这意味着您连接到数据库正常。是哪一个?我正在连接数据库。尝试使用结果集生成的键获取父表主键并将数据插入子表时出现此异常。
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`studentregistration`.`student_contact_details_t`, CONSTRAINT `student_contact_details_t_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `student_details_t` (`student_id`))
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
    at com.mysql.jdbc.Util.getInstance(Util.java:360)