2015-07-09 6 views
0

im довольно новый самостоятельный ученик, и я пытаюсь вставить данные в разные таблицы, но используя тот же идентификатор, что и для вкладки 3, установите дату по умолчанию, например, 2000/01/01 : Мои столы, как:MySql Как вставить данные в разные таблицы, используя тот же ID

tab1 Id1 varchardate1

tab2 ID Id1 varchardate2

tab3 ID Id1 DateTime

Im используя этот код для вставки данных в tab1:

String sub1 = "Insert Into tab1 (`varchardate1`) values " 
        + "(" + jTextField1.getText() + "')"; 
      System.out.println(sub1); 

Теперь я могу сделать то же самое, но я хочу спасти Id1 и использовать его для других 2 таблиц и для TAB3 я хочу установить значение по умолчанию для 2000/01/01.

Спасибо за помощь заранее.

+0

Мой плохо. Я разместил решение PHP для Java-вопроса. Вы можете посмотреть здесь http://stackoverflow.com/questions/1915166/how-to-get-the-insert-id-in-jdbc –

ответ

1

От чего я понял: import java.sql. *;

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
    static final String DB_URL = "jdbc:mysql://localhost/EMP"; 
    String txtfld = jtextField.getText(); 

try{ 
     // register the JDBC driver 
    Class.forname("com.mysql.jdbc.Driver"); 
    Connection conn = DriverManager.getConnection(DB_URL,USER,PASS); 
    String query = "INSERT INTO tab1(varchardate1) VALUES(?)";  
    PreparedStatement stmt = conn.preparedStatement(query); 
    // set prepared statements in the order you have the columns 
    stmt.setString(1,txtfld); 
    stmt.executeUpdate(); 

    String query2 = "SELECT id FROM tab1 WHERE varchardate1 = ?"; 
    PreparedStatement stmt2 = conn.preparedStatement(query2); 
    stmt.setString(1, txtfld); 
    ResultSet result = stmt.executeQuery(query2); 

    int tab1Id = result.getInt('id'); 

    //at this point just insert the next 
    // to values with the `id` extracted from first insertion 

} catch (SQLException e) { 

     System.out.println(e.getMessage()); 

    } finally { 

     if (preparedStatement != null) { 
      preparedStatement.close(); 
     } 

     if (dbConnection != null) { 
      dbConnection.close(); 
     } 

    } 
  1. использование Prepared Statements в целях безопасности при вставке данных в базу данных
  2. Лучшая практика, чтобы узнать, как persistance frameworkHibernate или EJB, который использует JPA
+0

И если мой Id1 на первой вкладке является самым высоким Id1 (уже присутствующим в моем tab1) +1 как должен быть запрос? например: 'String sql =" выберите Id1 из tab1 order by ID desc "; ' – user2853957

+0

@ user2853957, я не уверен, что понимаю ваш вопрос. –

+0

Я редактировал свой вопрос. – user2853957

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