Гм :) Напиши, плс, последовательность вызовов 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");