Bonjour,
J'ai une classe DaoUser qui est sensée lire et écrire dans la base de données, via le JdbcTemplate de Spring. Or, mon problème est que ce dernier ne fait rien, et ne lève pas même une exception. Mes seuls indices que la connexion se passe bien sont que si je provoque une erreur de syntaxe dans ma requête, là j'ai bien une exception, et que ma table support de mon objet incrementer fonctionne bien.
Voici un extrait de mon fichier de configuration de Spring :
Voici mon code dans DaoUser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <bean id="commonDataSource" class="fr.atatorus.gesicoba.dao.PooledDataSource" init-method="init"> <property name="login" value="gesicoba" /> <property name="password" value="ata1er" /> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1/" /> <property name="database" value="gesicoba" /> </bean> <bean id="daoUser" class="fr.atatorus.gesicoba.dao.DaoUser"> <property name="incrementer" ref="userIncrementer" /> <property name="loader" ref="queryLoader" /> <property name="template" ref="jdbcTemplate" /> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="commonDataSource" /> </bean> <bean id="queryLoader" class="fr.atatorus.gesicoba.dao.XMLClassPathQueryLoader"> <constructor-arg index="0" value="ressources/queries.xml" /> </bean> <bean id="userIncrementer" class="org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer"> <property name="dataSource" ref="commonDataSource" /> <property name="incrementerName" value="gesicoba.userIncrement" /> <property name="columnName" value="val" /> </bean>
Quant à ma requête, la voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private void insertUser (User _user) { String query = loader.getQuery ("insertUser"); Integer id = incrementer.nextIntValue ( ); Object args[] = { id, _user.getLogin ( ), _user.getName ( ), _user.getHashPassword ( ) }; int types[] = { Types.INTEGER, Types.VARCHAR, Types.VARCHAR, Types.CHAR }; int n = template.update (query, args, types); System.out.println (n); // imprime bien 1 _user.setId (id); }
Merci de m'aider, parce que là je ne vois pas où se situe l'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO gesicoba.people (id, login, name, hashPassword) VALUES (?, ?, ?, ?)
Partager