1

こんにちは、次のコードがあります。

public static final MY_QUERY = "Select distinct A.col1, A.col2 from tableA, tableB where A.col1 = ? and A.col2 = ? and b.id = A.id";

私のコードでは、基本的にこれを行います...

public List<MyClass> getData(final String input1, final String input2) {
    return this.jdbcTemplate.query(MyQuery, 
                    new Object[] { input1, input2}, 
                    new int[] {Types.VARCHAR, Types.CHAR}, new MyMapper());
}

結果を実行すると..空のリストが返されます。

今私がこれをしたら。

public static final MY_QUERY_2 = new StringBuilder(96)
.append("Select distinct A.col1, B.col2 from tableA, tableB where A.col1 =").append(input1)
.append(" and A.col2 = ").append(input2).append(" and b.id = A.id").toString();

そして私のDAOクラスの中で

public List<MyClass> getData() {
    return this.jdbcTemplate.query(MY_QUERY_2, new MyMapper());
}

3 つの結果が得られます。

最初の実装の問題点。

注:引数を1つだけ使用すると機能しますが、2つ使用すると機能しません。

4

1 に答える 1