如何在Java的Prepared Select语句中包含参数?

我正在尝试在程序中运行一个简单的select语句。插入和创建工作就可以了。但是我的选择查询没有任何结果。 如果我直接在sqlite控制台中运行该语句,我会得到结果,因此我想像我准备的语句中肯定有一个错误。

我将查询保存在另一个Java类中,并直接将它们作为静态变量进行访问(这些查询也可用于创建和插入)

这是我所拥有的:

Queries.java

[...]
    public static final String SELECT_TOPIC_BY_NAME_AND_DESCRIPTION =
            "SELECT * FROM topics WHERE name=? AND description=?";
[...]

Connector.java

[...]
for (Topic topic : scan.getTopicList()) {
            PreparedStatement topicStatement = connection.prepareStatement(Queries.SELECT_TOPIC_BY_NAME_AND_DESCRIPTION);
            topicStatement.setString(1, topic.getName());
            topicStatement.setString(2, topic.getDescription());
            ResultSet topic_resultSet = topicStatement.executeQuery();
            if (topic_resultSet.getFetchSize() == 1) {
                [...]
            }
            else{
                System.out.println("Couldn't Find Topic: {name: "+topic.getName()+"; description: "+topic.getDescription()+"}");
            }
        }
[...]

主题与我之前插入的主题相同,因此名称和描述不变。如果我运行它,它将为我提供以下输出:

找不到主题:{name:Money;描述:Alles was mit Money zu   屯帽}      找不到主题:{name:Banking;描述:Alles是麻省理工学院   银行祖屯帽}      找不到主题:{name:Money;描述:Alles was mit Money zu   屯帽}      找不到主题:{name:Banking;描述:Alles是麻省理工学院   银行祖屯帽}

但是,如果要在sqlite中运行select语句,它将为我提供正确的结果:

main> SELECT * FROM topics WHERE name='Money' AND description='Alles was mit Money zu tun hat'

1,Money,Alles was mit Money zu tun hat
3,Money,Alles was mit Money zu tun hat

我将不胜感激