有没有办法在不使用Java中的ResultSet类的情况下从SQL数据库中提取表数据?

时间:2013-11-17 19:07:23

标签: java sql jdbc

我正在用Java编写一个相当简单的数据库应用程序。从SQL数据库中提取数据的典型方法如下:

    private Connection conn = null;
    private Statement stmt = null;
    private ResultSet rs = null;

    conn = DriverManager.getConnection("jdbc:mysql://localhost/test?" + "user=monty&password=greatsqldb");
    stmt = conn.createStatement();
    rs = stmt.executeQuery("SELECT foo FROM bar");
    rs.first();
    int firstColumn = getInt(1);
    String secondColumnn = getString(2);

我的问题是ResultSet缺少我想要的很多功能(例如,一个getRow()方法会返回整行,或者一个getNumberOfRows()方法会告诉我有多少行在结果集)。我可以自己编码,但我觉得别人已经有了。

是否有人知道提供这些方法和其他有用功能的类?

任何喜欢ResultSet类的人都没有冒犯。

2 个答案:

答案 0 :(得分:1)

如果你只想用普通的JDBC来完成你的任务,那么我会说不。 数据访问可以分为两类。

  1. 已连接架构 您的ResultSet属于此范围。

  2. 断开连接的架构 CachedRowSet属于这个。

  3. 上述答案可能与您的查询没有直接关系,但这有助于您的理解。您还可以考虑使用ORM(hibernate,JPA,MyBatis)来实现更加面向对象的数据访问功能。它比JDBC有许多优势。

    希望这会有所帮助

    干杯!

答案 1 :(得分:0)

您可以查看适当的ORM,例如hibernate或JPA。这些将允许您通过对象及其OO链接(组合,列表,集等)与DB进行交互。

http://www.hibernate.org/

http://en.wikipedia.org/wiki/Java_Persistence_API