Мой исходный код имеет следующую структуру:Как получить сгенерированный идентификатор вставки в JDBC?
SourceFolder
AddProduct.jsp
Исходные пакеты
- контроллер (сервлеты)
SaveProduct.java
- Модель (Db Операции)
ProductDbOperations.java
Я вставляю новый продукт в таблицу продуктов и в то же время добавляю запись в product_collection table (product_id | collection_id).
Чтобы вставить запись в таблицу product_collection мне нужно получить сгенерированный идентификатор из продукта таблицы. После этого в таблицу product_collection вставлена новая запись.
Кроме того, я не использую никакой Framework и использую Netbeans 7.3.
Проблема:
Новая запись вставляется в таблицу продукта с этой частью кода
В : ProductDbOperations.java
try
{
this.initConnection(); // Db connection
pst = cn.prepareStatement("INSERT INTO product values('"+name+"', "+quantity+", "+price+")");
rs = pst.executeUpdate();
}
catch(SQLException ex)
{
}
Я также использовал решение по следующей ссылке, которая не работает для меня. я не получил каких-либо исключений SQL
How to get the insert ID in JDBC?
так помочь мне выяснить, почему этот код не работает для меня. Спасибо, миллион.
Как вы знаете, вы не получите SQLException, улов блок пуст? Также вы попробовали метод getGeneratedKeys()? – Kayaman
Что означает «не работает для меня»? Что происходит? По крайней мере, распечатайте трассировку стека в блоке catch: 'catch (SQLException ex) {ex.printStackTrace(); } ' – Jesper
@Kayaman Фактически Код очень большой, поэтому позвольте мне объяснить .. i m используя переменную состояния типа String, чтобы получить исключение как строку и функцию, возвращает строку, такую как status = ex.toString(); после попытки захватить блок статус возврата; –