我不想使用 ORM 或动态 SQL 构建器。我所需要的只是一个类,它可以让我使用命名参数创建准备好的语句。或者,至少,安全地替换不同数据类型参数的参数占位符。
编辑:我知道 JDBC 不支持命名参数。这就是我问图书馆的原因。
我不想使用 ORM 或动态 SQL 构建器。我所需要的只是一个类,它可以让我使用命名参数创建准备好的语句。或者,至少,安全地替换不同数据类型参数的参数占位符。
编辑:我知道 JDBC 不支持命名参数。这就是我问图书馆的原因。
据我所知, JDBC 不使用命名参数,但是对于位置参数,您根本不需要库,这足以“安全地替换不同数据类型参数的参数占位符”:
PrepareStatement statement = connection.prepareStatement
("SELECT Foo FROM Bar WHERE Baz = ?");
try {
statement.setString(1, "John O'Reilly"); // No problem with quote here
ResultSet results = statement.executeQuery();
...
} finally {
statement.close();
}
有关详细信息,请参阅有关准备好的语句的 JDBC 教程。
编辑:如果您真的想使用命名参数之类的东西,并且您可以控制 SQL 本身(因此您可以确保使用不会在其他地方使用的某种形式),您可以相当轻松地创建自己的查询翻译器:
TranslatedQuery
实例(这是你的新类)"SELECT Foo FROM Bar WHERE Baz = @Baz"
?
完成该类的测试不应该超过几个小时的工作——它实际上不需要接触 JDBC。