我不想使用ORM或动态SQL构建器。我需要的只是一个允许我使用命名参数创建预准备语句的类。或者,至少,为不同数据类型的参数安全地替换参数占位符。
编辑: 我知道JDBC不支持命名参数。这就是为什么我要问一个图书馆。
答案 0 :(得分:3)
就我所知,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 tutorial on prepared statements。
编辑:如果你真的想使用像命名参数这样的东西,并且你可以控制SQL本身(所以你可以确保使用一些不会在别处使用的表格),你可以很容易地创建你的自己的查询翻译:
TranslatedQuery
"SELECT Foo FROM Bar WHERE Baz = @Baz"
个实例(这是您的新课程)
?
使类完成测试不应该超过几个小时 - 它实际上不需要触及JDBC。