Гм :) Напиши, плс, последовательность вызовов JDBC для этого дела,
т.е. то, что юзер пишет в программе. А то я чего-то не понимаю\не вижу.

пусть у нас имеется табличка some_table с двумя полями - id и name, при чем если id при вставке NULL, то триггер присваивает новое значение из генератора.

Вариант 1:

  Connection c = getMyConnection();
  String sql = "INSERT INTO some_table VALUES(?)";

  PreparedStatement s = c.prepareStatement(sql,
    Statement.RETURN_GENERATED_KEYS);

  s.setString(1, "some value");
  s.execute();

  ResultSet rs = s.getGeneratedKeys();
  rs.next();

  int id = rs.getInt("id");

Вариант 2:

  Connection c = getMyConnection();
  String sql = "INSERT INTO some_table VALUES(?)";

  PreparedStatement s = c.prepareStatement(sql,
    new int[]{1});

  s.setString(1, "some value");
  s.execute();

  ResultSet rs = s.getGeneratedKeys();
  rs.next();

  int id = rs.getInt(1);

Вариант 3:

  Connection c = getMyConnection();
  String sql = "INSERT INTO some_table VALUES(?)";

  PreparedStatement s = c.prepareStatement(sql,
    new String[]{"id"});

  s.setString(1, "some value");
  s.execute();

  ResultSet rs = s.getGeneratedKeys();
  rs.next();

  int id = rs.getInt("id");

Reply via email to