Servlets / JSP - 无法访问SOAP Web服务上的数据库

时间:2012-04-12 12:12:35

标签: mysql web-services soap

我正在尝试在我的netbeans上的mysql服务器支持的glassfish服务器上创建一个简单的小型web服务

它旨在成为一种非常简单的货币转换服务

这是它应该做的事情

需要一定金额(总是以GBp为单位)作为INT和货币才能将其转换为字符串。

然后,服务从我的数据库表中查找该货币,以使用

等查询获取转换率
select * from exchange.rates where currency = string

然后执行简单计算将货币转换为货币并返回金额

问题是我不知道如何从我的mysql服务器调用转换率,我试过但尝试但没有任何反应 我只是继续获得相同的金额。

我尝试输入欧元和10 我在我的数据库中设置了该速率,但是当我测试webservice时,我刚刚退出了10个

 /**
     * Web service operation
     */
    @WebMethod(operationName = "convert")
    public int convert(@WebParam(name = "currency") String currency, @WebParam(name = "amount") int amount) {
        int newamount = 0;
        try {

            Class.forName("com.mysql.jdbc.Driver");
            Connection con =
                    DriverManager.getConnection("jdbc:mysql://localhost:3306/exhange",
                    "root", "25587");
            PreparedStatement st =
                    con.prepareStatement("select * from rates where currency = '" + currency+"'");

            ResultSet rs = null;
            rs = st.executeQuery();
 rs.first();
            newamount =rs.getInt("conversion") * amount;

 return newamount;
        } catch (Exception e) {
            System.out.println("error");
        }

        return amount;
    }

1 个答案:

答案 0 :(得分:0)

使用预准备语句时,需要明确传递参数:

PreparedStatement st = con.prepareStatement("select * from rates where currency = ?");
st.setString(1,currency) //Check this
ResultSet rs = st.executeQuery();

// If you are sure that is only one row then you nee to do
String columnX = null;
if (rs.next() != null) {
   columnX = rs.getString(1); //Where 1 is the first column
}