Client Programm - Welche mySql Connection?

hesk

Erfahrenes Mitglied
Hallo!

Ich habe ein client-Programm welches in Swing programmiert ist.

In diesem greife ich auf mySQL zu.

Bis jetzt habe ich immer SimpleJdbcTemplate verwendet:

Java:
MysqlDataSource mysqlDataSource = new MysqlDataSource();
mysqlDataSource.setURL(url);
mysqlDataSource.setUser("root");
mysqlDataSource.setPassword("root");

SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource);

Nun gab es aber ein Problem mit

Java:
simpleJdbcTemplate.queryForInt("SELECT LAST_INSERT_ID()")

Dies liefert immer 0 zurück. Ich hab viel im Internet gesucht, und meine Vermutung ist dass eine andere Connection genommen wird, und dadurch immer 0 zurück kommt.


Meine Frage:

Was sollte man am besten für mySQL-Zugriff verwenden wenn man ein standalone-client-programm hat?

.) SimpleJdbcTemplate?
.) Plain mysql-Statements ... connection, Statement, ResultSet, etc?
.) etwas anderes?

Vielen Dank!
 
Mit einer SingleConnectionDataSource ist das Problem von oben beschrieben behoben.
Da das Programm nur unter einem Thread läuft, sollte es bei dieser DataSource kein Problem geben.

Oder kennt jemand welche?
 
Leider nein:

Java:
2012-02-08 10:20:16,578 [main     ] [DEBUG] [org.springframework.jdbc.datasource.DataSourceUtils                   ] Fetching JDBC Connection from DataSource
2012-02-08 10:20:17,046 [main     ] [DEBUG] [org.springframework.jdbc.datasource.DataSourceUtils                   ] Returning JDBC Connection to DataSource
// insert
2012-02-08 10:20:17,062 [main     ] [DEBUG] [org.springframework.jdbc.datasource.DataSourceUtils                   ] Fetching JDBC Connection from DataSource
2012-02-08 10:20:17,093 [main     ] [DEBUG] [org.springframework.jdbc.datasource.DataSourceUtils                   ] Returning JDBC Connection to DataSource
Returned from 'SELECT LAST_INSERT_ID() from Table LIMIT 1': 0
 
Zurück