私のプログラムで、組み込みH2データベースとのJDBC接続をしようとしています。問題は、 "WHERE ID ="で簡単なクエリを実行できなかったことです。私のdatabseでは、IDは整数ではありません(私の例では 'D58BE')。H2データベースのSELECT * WHERE
私のコードがあります:
public Milestone findbyId(String id) throws ClassNotFoundException, SQLException {
Class.forName("org.h2.Driver");
Connection connection = DriverManager.getConnection("jdbc:h2:~/dao_db", "sa", "");
PreparedStatement prepareStatement = connection.prepareStatement("SELECT * FROM MILESTONE WHERE ID= 'D58BE'");
問題は、同じクエリが(「MILESTONE WHERE IDを= 『D58BE』 SELECT * FROM」)私の埋め込まデータベースで完璧に動作していることである(私が結果を検証データベースを管理するために提供されるh2.jar)。日食で、私はこの例外を持っていたものの:
Exception in thread "main" org.h2.jdbc.JdbcSQLException: Column "D58BE" not found [42122-191]
、それを直接実行文を作成し、SQLを実行するには...
:あなたのケースのためにhttps://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html
それはの線に沿って何かする必要があります一重引用符 '' 'は削除されたか、二重引用符' ''で置換されたように見えます。実際にD50BEを(存在しない)列名に変換します。なぜなら、探検するべきものです。そして、いくつかの不規則なJavaソース変換と関連があります。 –