2014-02-04 1 views
-1
I have 2 tables in my application: 
1.newuser 
2.introducer_table 

Newuser1 table contains *sid**(primary key,auto-generated field)****, fathername,gender,datebirth,occupation,addharnumber as columns 

1.I'm вставки значения в таблицу NEWUSER с помощью Java подготовлен заявление, как показано ниже:Получение нулевого значения в ссылочное поле моего стола в Mysql

PreparedStatement pst = con.prepareStatement("insert into newuser1 (name,fathername,gender,datebirth,occupation,aadharNumber) values(?,?,?,?,?,?)"); 

      //pst.setString(1,NULL); 
      pst.setString(1,”xyz”); 
      pst.setString(2,"ram"); 
      pst.setString(3,"male"); 
      pst.setString(4,"oct25"); 
      pst.setString(5,"emps"); 
      pst.setString(6,"4564"); 
data is inserted successfully,but I want the sid value of newuser1 in my introducer_table so I write the query like this in prepared statement to select the last insert id. 

My introducer_table contains the columns: 

**sid(foreign key),name,accountno,sign** 
PreparedStatement pst = con.prepareStatement("insert into introducer_table(sid,name,accountno,sign) values((SELECT LAST_INSERT_ID() from dual),?,?,?)"); 

       //nomine details into data base 
       //pst.setString(1,NULL); 
       pst.setString(1,"ram"); 
       pst.setString(2,"8945"); 
       pst.setString(3,"ssss"); 

When I execute this,Im getting ‘0’ value in the sid column of introducer_table.I make sid column as not null while creating intoducer_table,even im getting the ‘zero’ value like this: 

Introducer_table:

**Sid** name accountno  sign 
**0**  ram  8945  ssss 

Пожалуйста, помогите мне. Я застрял в этой проблеме из-за стольких дней.

ответ

0

Вместо того, чтобы делать это ваш путь думать об использовании

con.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); 

, а затем после вставки

pst.executeUpdate(); 
ResultSet rs = prest.getGeneratedKeys(); 

int last_inserted_id = -1; 
if(rs.next()) 
{ 
    last_inserted_id = rs.getInt(1); 
} 
+0

, но я пишу подготовленный код заявление для вставки introducer_table в другой класс java я могу использовать этот сгенерированный ключ в другом классе? Будет ли работать? – balasrilakshmi

+0

Да, просто используйте значение 'last_inserted_id' для установки значения' sid' –

+0

означает использовать эту переменную last_insert_id в моем другом классе. Я должен создать объект obj для этого класса и могу использовать его. Правильно ли это? – balasrilakshmi

Смежные вопросы