我的应用:Netbeans(8.0.1),Apache Tomcat
我这里有一个Web服务和Web方法。 用户应插入一个数字(Sozialversicherungsnummer(SVN))。他应该返回相应的名称(" Nachname")。数据库中的表名为" kunden"。领域:" Sozialversicherungsnummer"和" Nachname"。
@WebMethod( operationName = "SVN-Abfrage" )
public String svn(int SVN)
{
try
{
connection = DriverManager.getConnection(
DATABASE_URL, USERNAME, PASSWORD );
statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery( "SELECT Nachname FROM kunden WHERE Sozialversicherungsnummer='" + SVN +"'" );
// if requested seat is available, reserve it
if ( resultSet.next() )
{
return resultSet.getString("Nachname");
} // end if
return "fehler";
} // end try
catch ( SQLException e )
{
e.printStackTrace();
return ("1");
} // end catch
catch ( Exception e )
{
e.printStackTrace();
return ("2");
} // end catch
finally
{
try
{
statement.close();
connection.close();
} // end try
catch ( Exception e )
{
e.printStackTrace();
return ("3");
} // end catch
} // end finally
} // end WebMethod
我使用SOAP UI测试Webservice。不幸的是,我的代码中存在错误。
我总是得到" 3"作为回报。当我删除我的"终于"我得到的部分" 1"作为回报。当我也删除它时,我会得到" 2"作为回报......我插入的内容并不重要:任何数字如" 123"或权利" Sozialversicherungsnummer"来自数据库应该工作。
我想从用户那里得到一个Integer,并返回一个相应的名字(" Nachname")。我想的要复杂得多: - /
如果有人可以帮助我,那会很友好。
格尔茨
答案 0 :(得分:0)
替换
statement.executeQuery( "SELECT \"*\" FROM \"kunden\"" + "WHERE (\"Sozialversicherungsnummer\" = '" + SVN + "')" );
用
statement.executeQuery( "SELECT * FROM kunden WHERE Sozialversicherungsnummer='" + SVN +"'" );
您还可以在异常块中优化代码。而不是
String i= "Kann nicht gefunden werden";
return i;
你可以
return "Kann nicht gefunden werden";