为数据库设计查询类

时间:2013-08-24 18:52:29

标签: sql database jdbc

我正在编写一个与数据库交互的应用程序。我想使用PreparedStatement来执行查询,但我必须做的查询数量很多,将来可能会增加。
我只知道为特定查询编写一个函数来执行它,并且无法想到更好的方法。

例如查询可以是:

SELECT * 
FROM   TABLE_NAME 
WHERE  TABLE_NAME.ATTRIBUTE_NAME = ? 

SELECT * 
FROM   TABLE_NAME 
WHERE  TABLE_NAME.ATTRIBUTE_NAME = ?
       AND TABLE_NAME.ATTRIBUTE_NAME1 = ?

我将不得不编写一个独立的函数来执行(an example如何为一个查询执行此操作),但我知道这不是一种模块化的方法。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

IMO是一个非常好的解决方案,可以使用JOOQ库 只是

  • 创建数据库架构
  • 连接数据库
  • 使用流畅的API根据生成的数据库创建查询 schema metamodel

(您也可以使用简单的SQL-executor,如here所述) 完成。这是你的图书馆。

之后,要从程序上下文中分离出来,请创建一个类似

的界面
interface MyOperations {
  public int getUserById(int userID);
}

class MyOperationsImpl implements MyOperations {

  public MyOperationsImpl(Connection connection) {...}

  int getUserById(int userID) {
    DSLContext create = DSL.using(this.connection, SQLDialect.MYSQL);
    create.select().from(USERS).where(USERS.ID.equal(userID));
  }
}

这可以通过某种方式回答您的问题或帮助吗?