带返回的Web服务

时间:2014-12-09 11:25:41

标签: java database webmethod

我的应用: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")。我想的要复杂得多: - /

如果有人可以帮助我,那会很友好。

格尔茨

1 个答案:

答案 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";