Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail From: markspace <-@.> Newsgroups: comp.lang.java.programmer Subject: Apache JDBC utils Date: Mon, 30 Apr 2012 14:55:51 -0700 Organization: A noiseless patient Spider Lines: 50 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Mon, 30 Apr 2012 21:55:56 +0000 (UTC) Injection-Info: mx04.eternal-september.org; posting-host="7zTeebvKpIS8LVJ5OFDmwg"; logging-data="3180"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19sl1+WLxdYkNQhKGGcFBgtyrnyMUNOZec=" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 Cancel-Lock: sha1:9jx0MQT9p8aCahCxJQ3oNH19JNo= Xref: csiph.com comp.lang.java.programmer:14057 Hey all, I'm making a small website as a personal project using only the JDBC interface. (No ORM, etc.) Well, I did the CRUD for exactly one bean and found it pretty tedious going. So I started looking around for something light-weight to help me out. I found the Apache commons dbutils project: This makes reading a bean much much easier. It does most of the column to property matching for you and will read an entity into a bean with only a few lines of code. Here's a (mostly) complete example from my little project: public UserBean getByUsername( String name ) { QueryRunner run = new QueryRunner( dataSource ); BeanHandler handler = new BeanHandler( UserBean.class ); UserBean user = null; try { user=run.query( sqlStatements.getProperty( LOGIN_BY_USERNAME ), handler, name ); } catch( SQLException ex ) { Logger.getLogger( UserDataMapper.class.getName() ). log( Level.SEVERE, null, ex ); } return user; } That's a lot less 'faffing about' reading the fields of a ResultSet into a simple bean, and a much higher signal-to-noise ratio imo. The problem is, this only works for reading a simple entity. There doesn't seem to be any equivalent for update, create, or delete. So my question is: does any have experience with dbutils and see's something I'm missing? Would you take a look at the docs even if you don't have experience with dbutils? And: is there a better, light-weight non-ORM package that you might recommend instead? Something a bit more complete. Anyway, I'm in the middle of adding basic update and create, and it's actually going well. (It'd be going better if I weren't some clumsy with SQL syntax.) But I thought I'd ask to see what other ideas the folks here on this news group might have. Thanks!