2016-09-22 4 views
-1

, когда я использую stmt.executeUpdate(), и если я использую ExecuteQuery это обыкновение возвращать запись я просто вставить в БД я сделал набор coccurency и тип при создании объекта STMTЧто я должен использовать вместо stmt.executeUpdate()?

мои столы являются

create Table Customer(
Customer_ID int, 
Age int, 
Contact_No varchar(20), 
First_Name varchar(20), 
Last_Name varchar(20), 
PRIMARY KEY(Customer_ID) 
); 

и

create Table Customer_Address(
Customer_ID int, 
Address_Line1 varchar(50), 
Address_Line2 varchar(50), 
City varchar(20), 
Pincode int, 
State varchar(25), 
PRIMARY KEY(Customer_ID,Address_Line1) 
); 

Мои Java-код:

try { 

    st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 
    st.executeUpdate("insert into Customer values(Default,"+age+",'"+contact_no+"','"+first+"','"+last+"')"); 

    ResultSet set = st.executeQuery("select Customer_ID from Customer where First_Name = '"+first+"' and Last_Name ='"+last+"' and contact_no ='"+contact_no+")"); 
    int id = set.getInt(1); 
    st.executeUpdate("insert into Customer_Address Values("+id+",'"+add1+"','"+add2+"','"+city+"',"+pincode+",'"+state+"')"); 
} 
catch (SQLException ex) { 
    Logger.getLogger(Screen1.class.getName()).log(Level.SEVERE, null, ex); 
} 
+1

Вы должны по крайней мере указать столбцы, которые вы вставляете в. то есть вставить в значения t_table (col1, col2) (val1, val2) – Adam

+0

Ваши значения вставки не соответствуют порядку и не соответствуют определению таблицы. Вы вставляете возраст в First_Name ..... – Adam

+0

Влияют ли ваши изменения на эту проблему на вашу схему таблиц? Я оставляю – Adam

ответ

0

Если вы просто хотите, идентификатор вставленной строки, используйте Statement.RETURN_GENERATED_KEYS так:

st.executeUpdate("INSERT INTO ...", Statement.RETURN_GENERATED_KEYS); 
int id; 
try (ResultSet rs = st.getGeneratedKeys()) { 
    rs.next(); 
    id = rs.getInt(1); 
} 

// ... 
+0

DAMN большое вам спасибо: DDDD –

0

Заменить

ResultSet set = st.executeQuery("select Customer_ID from Customer where First_Name = '"+first+"' and last ='"+last+"' and contact_no ='"+contact_no+")"); 

ResultSet set = st.executeQuery("select Customer_ID from Customer where First_Name = '"+first+"' and last ='"+last+"' and contact_no ='"+contact_no+"')"); 
Смежные вопросы