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());
}

我得到三个结果。

第一个实现有什么问题。

注意:如果我只使用一个参数,它会起作用,但如果我使用 2,那么它不会。

4

1 回答 1

0

I found the problem.

if i use

A.Col2 = 'Input2' 

than trim is being called.

I solved it by using

trim(A.Col2) = ?

to get rid of whitespace.

于 2014-12-04T19:57:45.807 回答