2009-02-03 5 views
3

Je viens de regarder le framework Spring pour JDBC - on dirait qu'il y a un peu de courbe d'apprentissage - et je ne suis toujours pas capable de trouver un bon tutoriel Spring/JDBC à démarrage rapide de qualité!Spring est-il trop complexe pour les opérations JDBC?

est-il plus léger que le printemps pour les opérations JDBC de base - ou Quelqu'un at-il de bons liens pour les tutoriels

Un grand merci

+0

Je vous conseille d'ammend votre titre. "Le printemps est-il aussi pour les opérations de JDBC?". Est-ce que le printemps aussi? – Kezzer

+0

woops! Merci bien – Vidar

+1

J'ai essayé de combler le vide, j'espère que j'ai deviné correctement ;-) –

Répondre

17

Bien au contraire. Le support de JDBC au printemps est très simple. Voici exemple de base:

dataSource = ... obtain data source... (e.g. via Spring config) 
SimpleJdbcTemplate jdbcTemplate = new SimpleJdbcTemplate(dataSource); 
Map<String, Object> row = jdbcTemplate.queryForMap(
     "SELECT * FROM MyTable WHERE ID=? LIMIT 1", 100); 

JdbcTemplate et SimpleJdbcTemplate a beaucoup de méthodes de requête peuvent vous être utiles. Pour mapper des lignes à vos objets, consultez RowMapper et ParameterizedRowMapper < T>.

Pour votre source de données, vous souhaitez généralement utiliser un DataSource avancé avec un support de pooling. Pour les tests, BasicDataSource simples feront:

BasicDataSource ds = new BasicDataSource(); 
ds.setDriverClassName("driverClassName"); 
ds.setUrl("jdbc://..."); 
ds.setUsername("username"); 
ds.setPassword("password"); 
+0

+1. C'est comme ça que je suis arrivé au printemps. JDBCTemplate lib a rétréci énormément mon code b/c je n'étais plus dans l'essai d'attraper finalement l'enfer. Direct JDBC est extrêmement verbeux et fastidieux avec toutes ces exceptions vérifiées partout. –

+0

De plus, SQLExceptions peut même ne pas être lié à SQL - Le DataAccessException levé capture ce point beaucoup mieux. Si le réseau tombe en panne, votre SQL aurait pu être parfait, mais ... SQLException! – MetroidFan2002

+0

Ouais, j'adore * la hiérarchie DataAccessException.Il est beaucoup plus facile d'attraper des problèmes spécifiques et de ne pas être dérangé par les codes d'erreur spécifiques à la base de données. –

2

La documentation de printemps est assez bonne.

Si cela n'aide pas les différents livres de printemps tels que Spring in Action, etc sont très bons.

Le printemps est l'apprentissage vaut la peine - vous pouvez vous débarrasser de beaucoup de code JDBC plaque de la chaudière. Il fait un très bon travail de gestion de connexion - avec DBCP

+0

La documentation de printemps est définitivement approfondie. Pas très facile à analyser cependant. Il dégénère en soupe à l'alphabet assez rapidement. Un peu dense pour les nouveaux venus sur le web. –

6

Pour choisir un style (plein 'Automagic' Printemps vs la plupart du travail effectué par le programmeur) et en apprendre davantage sur les opérations de base sur JdbcTemplate.

Le site a des exemples de belles, comme

int countOfActorsNamedJoe = 
    this.jdbcTemplate.queryForInt(
     "select count(0) from t_actors where first_name = ?", 
     new Object[]{"Joe"}); 

Quoi qu'il en soit, vous aurez besoin d'investir un peu de temps en elle. Peu importe quel tutoriel sur Spring JDBC vous utiliserez, il sera toujours Spring JDBC en dessous. Et dans ce cas, cela ne fait pas de mal d'apprendre de la source, c'est-à-dire les docs de Spring, qui sont assez bien écrits.

1

Spring JDBC était bonne dans la version 1.0, mais ils refactorisé un peu dans la version 2.5 pour le rendre encore plus simple. Jetez un oeil à JdbcTemplate et les classes dans le paquet org.springframework.jdbc.core.simple. Ils sont nouveaux au printemps 2.5, donc vous ne les trouverez pas dans les livres plus anciens. Le mieux est de regarder les documents de référence en ligne.

+0

Est-il préférable de s'en tenir à la version 2.5x ou de passer à 3? – Vidar

+0

Je n'ai pas déménagé à 3 moi-même, donc je ne peux pas dire. Je ne crois pas qu'il y ait beaucoup de nouvelles dans JDBC: http://www.devoxx.com/pages/viewpage.action?pageId=1704462 – duffymo

Questions connexes