我正在尝试在我的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;
}
答案 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
}