I previously mentioned that I intended not to use any Java ORM frameworks. J'avais déjà mentionné que j'avais l'intention de ne pas utiliser de Java ORMULAIRE cadres. ORM frameworks I have seen so far have a steep learning curve and tend to shoe horn your architecture into their model. ORMULAIRE cadres que j'ai vus jusqu'ici ont une forte courbe d'apprentissage et de la chaussure ont tendance à cor votre architecture dans leur modèle. So I started fresh without any ORM frameworks like Hibernate or Spring (which I have heard is better). J'ai donc commencé sans frais ORMULAIRE cadres comme Hibernate ou de printemps (que j'ai entendu est de meilleure qualité).

I am happy coding my queries in SQL and don’t need to use any ORM specific language like Hibernate OQL. Je suis heureux de codage mes requêtes en SQL et n'ont pas besoin d'utiliser un langage spécifique ORM comme Hibernate OQL. SQL is best for what it does. SQL est le mieux pour ce qu'il fait. Why re-invent the wheel? Pourquoi réinventer la roue? Also I like the fine-grained control over my database as I am processing very large amount of data. J'aime également l'amende-le contrôle au-dessus de ma base de données comme je suis le traitement très grande quantité de données. My experience will be primarily relevant to sql happy java developers. Mon expérience sera essentiellement l'heureux sql développeurs Java.

In the process (of working without any ORM framework) I realized I just needed two simple facilities over plain old JDBC. Dans le processus (de travail sans cadre ORM) je me suis rendu compte que je viens de deux simples nécessaires sur les installations anciennes plaine JDBC.

1. I needed a way to put all the SQL queries and DDL’s in a separate file. J'avais besoin d'un moyen de mettre toutes les requêtes SQL DDL et dans un fichier séparé. This allows me or a DBA to later analyze the query with a fine tooth comb and optimize if necessary. Cela me permet un DBA ou plus tard à analyser la requête d'une amende peigne et d'optimiser le cas échéant. It also allows me to easily change them without changing the code. Il me permet également de les modifier facilement sans modifier le code. Most of all cleanliness of the solution is appealing. La plupart de tous propreté de la solution est séduisante. At this point I am sure you are thinking of iBatis. À ce stade, je suis sûr que vous pensez de iBatis. I tried iBatis. J'ai essayé iBatis. Initially I liked it and thought I had my solution. Au début, je l'ai beaucoup aimée et de la pensée j'ai eu ma solution. However as I went down the lane I realized it too gave me features that I didn’t need. Toutefois, je suis allé à la voie je me suis rendu compte il m'a donné trop caractéristiques que je n'ai pas besoin. Even this was more complicated than I needed. Même cela a été plus compliqué que j'avais besoin. All I needed was a HashMap saved to a file in XML format. Tout ce que je faut, c'est une HashMap enregistrées dans un fichier au format XML. And my database class should support query execution by name (think key-value). Et ma base de données de classe devraient appuyer l'exécution de la requête par son nom (pensez clé-valeur).

2. Secondly I needed connection pooling to prevent opening and closing too many connections and also running out of connections. Deuxièmement, je le pool de connexion nécessaires pour empêcher l'ouverture et de fermeture trop grand nombre de connexions et également à court de connexions. I found a nice solution in Proxool. J'ai trouvé une solution élégante dans Proxool. Additionally it supports having multiple connection profiles in a simple text file and optionally logging queries. De plus, il supporte d'avoir plusieurs profils de connexion dans un simple fichier texte et, éventuellement, l'exploitation forestière requêtes.

3. I needed to integrate these two capabilities in a simple database class along with utility methods like cleanly closing connection and optionally logging the query data. J'avais besoin d'intégrer ces deux fonctions en une simple base de données de classe ainsi que des méthodes comme l'utilité proprement Fermeture de la connexion et, éventuellement, l'exploitation forestière à la requête de données.

That’s all there is in my super simple framework, if you can even call it that. C'est tout ce qu'il ya dans mon super cadre simple, si vous pouvez même l'appeler ainsi. And, believe it or not, I am way more productive using it than I have been in a long time and I feel fully in control. Et, croyez-le ou pas, je suis beaucoup plus productif à l'aide de ce que je ne l'ai été depuis longtemps et je suis pleinement en contrôle. No more burden of shoe horning my ideas to fit FooBah framework and its ideologies for me. Plus de charge de la chaussure Horning mes idées pour s'adapter FooBah cadre et de ses idéologies pour moi.

Update: There has been extensive discussion on this post at the Mise à jour: Il a été longuement débattu de ce poste au ServerSide .