7

I don't understand how to get auto generated keys with commons-dbutils?

Morgoth
  • 4,935
  • 8
  • 40
  • 66
Plastic Rabbit
  • 2,859
  • 4
  • 25
  • 27

2 Answers2

10

You can use QueryRunner#insert(). Below is an example. Given a table called users, which has an auto generated primary key column and a varchar column called username, you can do something like this:

DataSource dataSource = ... // however your app normally gets a DataSource 
QueryRunner queryRunner = new QueryRunner(dataSource);
String sql = "insert into users (username) values (?)";
long userId = queryRunner.insert(sql, new ScalarHandler<Long>(), "test");
Asaph
  • 159,146
  • 25
  • 197
  • 199
3

As a matter of fact I think it cannot be done with the current version of common-dbutils. A few months ago, when I was working for another company, I extented the QueryRunner with my own implementation.

The request has been submitted to the DbUtils project, and there you can even find a viable implementation which I guess you could copy if you really need it.

https://issues.apache.org/jira/browse/DBUTILS-54

Edwin Dalorzo
  • 76,803
  • 25
  • 144
  • 205