在通过PreparedStatement编写正确的搜索查询时需要帮助

时间:2018-06-28 11:31:23

标签: java jdbc

现在,我正试图制作一个Java控制台应用程序,以更轻松地填充我的数据库(我刚开始学习Java,所以请您不好用术语来对不起我。)

我正在使用Hibernate和JDBC。所以我上了几节课,其中两个是“乡村”和“城市”。首先,我将填写“国家/地区”,然后填写“城市”,因为我将它们与一对多链接(“国家/地区”->“城市”)。

我需要编写一个方法,该方法将接受来自Scanner的字符串countryname,在Country表中进行搜索,然后返回该国家的ID。我在编写MySQL查询时需要帮助。

public static countrySearch(String countryname){

    try {
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/freeguide", "root", "6235");
        PreparedStatement ps = connection.prepareStatement("select id from Country where countryname LIKE (?) ");
        //Here is where I am stuck

    }    

    catch (SQLException e) {    
        e.printStackTrace();
    }
    return countryid;

}

1 个答案:

答案 0 :(得分:0)

您可以使用select IIF(ISNUMERIC(IIF(RIGHT(RTRIM('20.55-'), 1) = '-', '-' + REPLACE('20.55-', '-',''), '20.55-')) = 1, CONVERT(decimal(7,3), IIF(RIGHT(RTRIM('20.55-'), 1) = '-', '-' + REPLACE('20.55-', '-',''), '20.55-')), NULL) 将String值设置为给定的参数索引。对于您的情况,请尝试以下代码。

public void setString(int paramIndex, String value)