本文共 3327 字,大约阅读时间需要 11 分钟。
Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。
JDBC的操作复杂、且非常容易出错。因此,DbUtils可以让我们从这些复杂繁琐的工作中解放出来,是我们更加的专注于数据库的相关操作。
返回一个单独的结果
在数据库中创建一个表user
CREATE TABLE user( id INT(11) AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(20), age INT(11) ) |
public class User { private Integer id; private String name; private Integer age; //省略部分代码 } |
public static Connection getConnection(){ Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql:///test","root","root"); } catch (Exception e) { e.printStackTrace(); } return conn; } |
public void save(){ QueryRunner runner = new QueryRunner(); Connection conn = getConnection(); String sql = "INSERT INTO user (name,age) values(?,?)"; try { Long id = runner.insert(conn, sql, new ScalarHandler<Long>(), "sunwukong", 20 ); System.out.println(id); } catch (SQLException e) { e.printStackTrace(); } finally{ DbUtils.closeQuietly(conn); } } |
public void queryOne(){ QueryRunner runner = new QueryRunner(); Connection conn = getConnection(); String sql = "SELECT id , name , age FROM user"; try { User user = runner.query(conn, sql, new BeanHandler<User>(User.class)); System.out.println(user); } catch (SQLException e) { e.printStackTrace(); } finally{ DbUtils.closeQuietly(conn); } } |
public void queryMore(){ QueryRunner runner = new QueryRunner(); Connection conn = getConnection(); String sql = "SELECT id , name , age FROM user"; try { List<User> list = runner.query(conn, sql, new BeanListHandler<User>(User.class)); System.out.println(list); } catch (SQLException e) { e.printStackTrace(); } finally{ DbUtils.closeQuietly(conn); } } |
public void update(){ QueryRunner runner = new QueryRunner(); Connection conn = getConnection(); String sql = "UPDATE user set name=? , age=? WHERE id=?"; try { runner.update(conn, sql, "admin2",12,1); } catch (SQLException e) { e.printStackTrace(); } finally{ DbUtils.closeQuietly(conn); } } |
经过上面的代码不难发现,DbUtils的确是简化了我们的开发。但是可以注意到的是DbUtils的最大优势并不是修改和插入,因为即使原生的JDBC修改和插入也并不是多繁琐。DbUtils最大的优势是查询,DbUtils为我们提供了大量的结果集处理器,使我们可以很方便的将查询到结果转换为各种对象,极大的简化了我们的开发,所以掌握DbUtils最重要的就是要熟悉它为我们提供的众多结果集。
本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。