Java 违反了唯一约束?

Java 违反了唯一约束?,java,jdbc,Java,Jdbc,我正在尝试更新一个表: create table Out_Patient(Patient_ID number(8) primary key , First_Name varchar2(20) , Last_Name varchar2(20) , Gender varchar2(10) , Mobile_Number number(12) , Address varchar2(20), Date_Of_Birth Date , Date_Of_Entry Date) 和福勒在一起。代码

我正在尝试更新一个表:

create table Out_Patient(Patient_ID number(8) primary key ,
First_Name varchar2(20) ,
 Last_Name varchar2(20) ,
Gender varchar2(10) , 
Mobile_Number number(12) ,
 Address varchar2(20),
 Date_Of_Birth Date , 
Date_Of_Entry Date)
和福勒在一起。代码:

PreparedStatement st= con.prepareStatement("Update Out_Patient Set Patient_ID=?,First_Name=?,Last_Name=?,Gender=?,Mobile_Number=?,Address=?,Date_Of_Birth=?,Date_Of_Entry=?");
String t1=text1.getText();
        int id=Integer.parseInt(t1);
        String t2=text2.getText();
        String t3=text3.getText();
        String t4=text4.getText();
        String t5=text5.getText();
        String t6=text_dob.getText();
        String t7=text_doe.getText();
        String s1=combo_gender.getSelectedItem().toString();
             st.setInt(1,Integer.parseInt(t1));
         st.setString(2,t2);
         st.setString(3,t3);
        st.setString(4,s1);
        st.setString(5,t5);
        st.setString(6,t4);
        st.setString(7,t6);
        st.setString(8,t7);

            st.executeUpdate();
但我得到了ORA-00001:违反了唯一约束。 我知道Patient_ID是表中的主键,但在输入详细信息时,我将其与表中的主键保持一致。应进行哪些更改。 请帮忙!!
谢谢..

您的JDBC update语句中没有WHERE子句,因此您试图为所有记录设置相同的ID。看看这个例子:

我甚至改成了字符串t1=text1.getText();int id=Integer.parseInt(t1);“Update Out_Patient Set First_Name=?,Last_Name=?,Gender=?,Mobile_Number=?,Address=?,Date_Of_Birth=?,Date_Of_Entry=?where Patient_ID=ID”然后我得到了:无效标识符ID这可能是因为您写了“where Patient_ID=ID”,而这个“ID”标识符被视为一个值,而不是一个参数。试试这个:“where Patient_ID=?”并在java代码中为参数st.setInt(9,Integer.parseInt(t1))赋值;我包括where子句,其中Patient_ID=?您为这个参数赋值了吗?非常感谢,它起作用了..谢谢..只是照您说的做了。st.setInt(9,Integer.parseInt(t1));