2016-09-09 10 views
0

プロシージャの代わりに関数を記述するとコンパイルされました。JavaのWebサービスを使用してデータベースに挿入

CREATE OR REPLACE function ilce_gtr 
(
    p_ilkodu number 
) 
RETURN VARCHAR2 AS 
p_geridonen varchar2(1000); 
begin 
for rec in(SELECT ADI FROM ILCE WHERE Y_IL=p_ilkodu) 
loop 
p_geridonen := p_geridonen || '|' || rec.ADI; 
end loop; 
return p_geridonen; 
end; 
/

次に、Webメソッドを使用してxmlを作成しました。これは成功しました。

@WebMethod 
     public String get_ilce (int p_ilkodu) { 

      Statement stmt=null; 
      ResultSet rs=null; 
      Connection conn=null; 
      String deger=null; 

      try { 
       conn= getConnection_test(); 
       String query = "SELECT ILCE_GTR('" + p_ilkodu + "') FROM DUAL"; 
       stmt = conn.createStatement(); 
       rs = stmt.executeQuery(query); 
       while (rs.next()) { 
       deger = rs.getString(1);       
       }   

      } catch (Exception e) { 
       return "hata"; 
      } finally { 
       try { 
       rs.close(); 
       stmt.close(); 
       conn.close(); 
       } catch (SQLException e) { 
       return "hata"; 
       }   
      }    
      return deger; 
     } 

私はデータベースに挿入するために同じことをしたいのですか?

+1

catch(Exception e){ return "hata"ではなく例外をログに記録してみます。 } ' –

+0

このコードが作成され、正常に実行されましたが、データベースに挿入されません。挿入プロセスはどのように行うことができますか?データベースのストアドプロシージャまたはJavaのWebメソッドですか? @Scary Wombat –

+0

SQLはうまくいくはずです。 'insert into table ....' –

答えて

0
@WebMethod 
     public String add_ilce (int yourInput) { 

      Statement stmt=null; 
      ResultSet rs=null; 
      Connection conn=null; 
      String deger=null; 

      try { 
       conn= getConnection_test(); 
       String query = "INSERT INTO DUAL" + "(yourAttributeName)" +"VALUES (?)"; 
        PreparedStatement preparedStmt = conn.prepareStatement(query); 
       preparedStmt.setString (1, yourInput); 
       preparedStmt.execute(); 



      } catch (Exception e) { 
       return "hata"; 
      } finally { 
       try { 
       rs.close(); 
       stmt.close(); 
       conn.close(); 
       } catch (SQLException e) { 
       return "hata"; 
       }   
      }    
      return deger; 
     } 

編集:私はあなたがここでチェックし、このようなシナリオのためのDAOのアプローチを使用することをお勧め:Data access object (DAO) in Java

編集:私は私はいくつかのミスがあった、申し訳ありませんでなければなりませんようには働かなければならない今のポストを編集し

+0

Webサービスがlocalhostに表示されませんでした。 –

+0

私は今何が間違っているのかよくわかりません:/ – imoteb

+0

このように "INSERT INTO" + "table_name(AttributeName)" + "VALUES(?)" –

0

ウェブサービスがローカルホストに表示されませんでした。

@WebMethod 
    public String add_ilce (String p_no, int p_tplm) { 

     Statement stmt=null; 
     ResultSet rs=null; 
     Connection conn=null; 
     String deger=null; 

     try { 
      conn= getConnection_test(); 
      String query = "INSERT INTO DUAL" + "TEMP_TAHAKKUK_AG(ABONENO,TOPLAM)" +"VALUES ('p_no','p_tplm')"; 
      stmt = conn.createStatement(); 
      rs = stmt.executeQuery(query); 

      while (rs.next()) { 
       deger = rs.getString(1);       
      }   
     } catch (Exception e) { 
      return "hata"; 
     } finally { 
      try { 
      rs.close(); 
      stmt.close(); 
      conn.close(); 
      } catch (SQLException e) { 
      return "hata"; 
      }   
     }    
     return deger; 
    } 
関連する問題