so many times I go to a new job and I find that they have issues with database connections - I always think, if you had just used Spring (Jdbc)....
Rakesh On Sun, Feb 22, 2009 at 6:24 PM, Robert Fischer <robert.fisc...@smokejumperit.com> wrote: > > The problem is this code: > > public int getUserCount() { > openConnection(); > try { > return queryScalar(Integer.class, "select count(*) from > people"); > } finally { > closeConnection(); > } > } > > That's 1 semantically meaningful line surrounded by 5 lines of boilerplate > plumbing. Which means > that it's really 1/6th actual code, and 5/6th noise. That's a pretty poor > signal to noise ratio. > > It's even worse when you're dealing with raw JDBC calls, since you have to > think about preparing > statements and managing connections and data sets and the like. > > ~~ Robert. > > > > Christian Hvid wrote: >> I don't understand - why would that be a problem? (That you have >> explictly open and close your database connection). >> >> On Feb 22, 7:09 pm, Robert Fischer <robert.fisc...@smokejumperit.com> >> wrote: >>> +1 for Spring JDBC: it manages all that openConnection/closeConnection >>> noise for you, which means >>> that your JDBC code can *also* start to be expressive. >>> >>> ~~ Robert. >>> >>> >>> >>> Rakesh wrote: >>>> have you looked at Spring JDBC? It has a similar interface and manages >>>> the connections for you. >>>> I think if you go down a non-orm route and want to have lots of sql, >>>> Ibatis is quite common - not used it so can't say for sure. >>>> Spring JDBC though is very nice and have used it extensively. >>>> Rakesh >>>> On Sun, Feb 22, 2009 at 2:21 PM, Christian Hvid >>>> <christian.h...@gmail.com> wrote: >>>>> Hi Java people. >>>>> I have been toying with simplier ways of doing embedded SQL in Java. >>>>> And would like your comments on this one? >>>>> http://code.google.com/p/chalkmine/ >>>>> It allows you to write code like this: >>>>> openConnection(); >>>>> try { >>>>> int count = queryScalar(Integer.class, "select count(*) from >>>>> people"); >>>>> System.out.println("There are "+count+" people in the bin."); >>>>> } finally { >>>>> closeConnection(); >>>>> } >>>>> or >>>>> openConnection(); >>>>> try { >>>>> List<Person> people = queryList(Person.class, "select name, >>>>> time_in_the_bin from people"); >>>>> for (Person p : people) >>>>> System.out.println(p.getName()+" has been "+p.getTimeInTheBin() >>>>> +" hours in the bin."); >>>>> } finally { >>>>> closeConnection(); >>>>> } >>>>> (Provided that Person has a constructor matching the types of name, >>>>> time_in_the_bin. Probably Person(String, int).) >>>>> Where the methods openConnection, queryScalar, queryList, >>>>> closeConnection are statically imported. >>>>> openConnection() figures out the name of the calling class, looks up a >>>>> configuration, opens a connection and puts in a ThreadLocal container. >>>>> queryScalar(Class, String, ...) performs a query with a single row >>>>> result that is "cast" to the given class. >>>>> queryList(Class, String, ...) performs a query and returns the result >>>>> as a list of the given class. >>>>> I would like to turn it into a full-fledged open source project. >>>>> But since it is incredibly hard for a new open source project to gain >>>>> traction I would like to figure out whether it is interesting enough >>>>> first. >>>>> -- Christian >>> -- >>> ~~ Robert Fischer. >>> Grails Training http://GroovyMag.com/training >>> Smokejumper Consultinghttp://SmokejumperIT.com >>> Enfranchised Mind Bloghttp://EnfranchisedMind.com/blog >>> >>> Check out my book, "Grails Persistence with GORM and >>> GSQL"!http://www.smokejumperit.com/redirect.html >> > >> > > -- > ~~ Robert Fischer. > Grails Training http://GroovyMag.com/training > Smokejumper Consulting http://SmokejumperIT.com > Enfranchised Mind Blog http://EnfranchisedMind.com/blog > > Check out my book, "Grails Persistence with GORM and GSQL"! > http://www.smokejumperit.com/redirect.html > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to javaposse@googlegroups.com To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---