Announcement

Collapse
No announcement yet.

Datenbankanbindung per WebService

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbankanbindung per WebService

    Hi,

    habe folgendes Problem es geht hier um ein WebService der auf die Datenbank zugreifen und jegliche Select Anweisungen ausführen soll.
    Die Ausführung wird bzw. soll mit einem Client gestartet werden.

    Wäre für jeden Hilfe sehr dankbar danke im Voraus.

    Dies habe ich soweit keine Ahnung ob das auch stimmt wäre super wenn jemand mal drüber schauen könnte...

    Habe soweit meinen WebService so gestaltet:

    Code:
    import java.io.*;
    import java.sql.*;
    
    import oracle.jdbc.driver.OracleDriver;
    import oracle.jdbc.pool.OracleDataSource;
    
    //Hier können alle Befehle ausgeführt werden  
    
    public class Select 
    {
    	 public static final String Ausgabe( String sSql )
    	 {
    		String sDbDrv= "oracle.jdbc.driver.OracleDriver",
    			   sDbUrl= "jdbc:oracle:thin:@localhost:1521:xe", 
    	    	   sTable= "Employees", 
    	    	   sUsr= "hr", 
    	    	   sPwd= "fenerium";	    	
    		
    		//Result result = new Result(); 
    	    
    	    if( null != sDbDrv && 0 < sDbDrv.length() &&
    	        null != sDbUrl && 0 < sDbUrl.length() &&
    	        null != sTable && 0 < sTable.length() ) {
    	      Connection conn = null;
    	      Statement  stmt = null;
    	      ResultSet  rs = null;
    	      try {
    	        // Select fitting database driver and connect:
    	        Class.forName( sDbDrv );
    	        conn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
    	        stmt = conn.createStatement();
    	        rs = stmt.executeQuery( sSql );
    	        
    	        
    	        // Get meta data:
    	        ResultSetMetaData rsmd = rs.getMetaData();
    	        int i, n = rsmd.getColumnCount();
    	        // Print table content:
    	        for( i=0; i<n; i++ )
    	          System.out.print( "+----------------------" );
    	        System.out.println( "+" );
    	        for( i=1; i<=n; i++ )    // Attention: first column with 1 instead of 0
    	          System.out.print( "| " + extendStringTo21( rsmd.getColumnName( i ) ) );
    	        System.out.println( "|" );
    	        for( i=0; i<n; i++ )
    	          System.out.print( "+----------------------" );
    	        System.out.println( "+" );
    	        while( rs.next() ) {
    	          for( i=1; i<=n; i++ )  // Attention: first column with 1 instead of 0
    	            System.out.print( "| " + extendStringTo21( rs.getString( i ) ) );
    	          System.out.println( "|" );
    	        }
    	        for( i=0; i<n; i++ )
    	          System.out.print( "+----------------------" );
    	        System.out.println( "+" );
    	      } catch( Exception ex ) {
    	        System.out.println( ex );
    	      } finally {
    	        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
    	        try { if( null != stmt ) stmt.close(); } catch( Exception ex ) {}
    	        try { if( null != conn ) conn.close(); } catch( Exception ex ) {}
    	      }
    	    }
    	    return sSql ;
    	  }
    
    	  // Extend String to length of 21 characters
    	  private static final String extendStringTo21( String s )
    	  {
    	    if( null == s ) s = "";
    	    final String sFillStrWithWantLen = "                     ";
    	    final int iWantLen = sFillStrWithWantLen.length();
    	    final int iActLen  = s.length();
    	    if( iActLen < iWantLen )
    	      return (s + sFillStrWithWantLen).substring( 0, iWantLen );
    	    if( iActLen > 2 * iWantLen )
    	      return s.substring( 0, 2 * iWantLen );
    	    return s;
    	  }
    }
    Client dazu eine Jsp Datei:
    Code:
    <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
    <%@ taglib uri="/WEB-INF/taglibs-io.tld"  prefix="io" %>
    
    <%@ page import = "java.sql.*" isThreadSafe="false" %>
    <%@ page import = "oracle.jdbc.driver.OracleDriver" isThreadSafe="false" %>
    <%@ page import = "oracle.jdbc.pool.OracleDataSource" isThreadSafe="false" %>
    
    <%
    	final String urlLocalhost =
        "http://localhost:8083/MeinWebServiceSelect/services/MeinWebServiceSelect";
      	String url   = request.getParameter( "url" );
    	
    	String DbDrv = request.getParameter( "DbDrv" );
    	String DbUrl = request.getParameter( "DbUrl" );
    	String Usr   = request.getParameter( "Usr" );
    	String Pwd   = request.getParameter( "Pwd" );
    	String Table = request.getParameter( "Table" );
    	String Sql   = request.getParameter( "Sql" );
    
    
    	url   = ( null != url ) ? url.trim() : urlLocalhost;
    	DbDrv = ( null != DbDrv ) ? DbDrv.trim() : "oracle.jdbc.driver.OracleDriver";
    	DbUrl = ( null != DbUrl ) ? DbUrl.trim() : "jdbc:oracle:thin:@localhost:1521:xe";
    	Usr   = ( null != Usr ) ? Usr.trim() : " hr ";
    	Pwd   = ( null != Pwd ) ? Pwd.trim() : " fenerium ";
    	Table = ( null != Table ) ? Table.trim() : "Employees";
    	Sql   = ( null != Sql ) ? Sql.trim() : "";
    %>
    
    <html>
    <head> <title>Mein Web Service Client Select Database</title> </head>
    <body>
    <h2>Mein Web Service Client Select Database</h2>
    
    
    <form method="post"><pre>
    Endpoint-URL       : <input type="text"     name="url" value='<%= url %>' size=80>
    D.-Treiber         : <input type="text"     name="DbDrv" value='<%= DbDrv %>' size=80>
    D.-Url             : <input type="text"     name="DbUrl" value='<%= DbUrl %>' size=80>
    User               : <input type="text"     name="Usr" value='<%= Usr %>' size=80>
    Password           : <input type="password" name="Pwd" value='<%= Pwd %>' size=80>
    Tabelle            : <input type="text"     name="Table" value='<%= Table %>' size=80>
    Sql-Kommando       : <input type="text"     name="Sql" value='<%= Sql %>' size=80>
                         <input type="submit"   name="submit" value="Ausgabe">
    </pre></form>
    
    <h3><hr>Ausgabe( <%= Sql %>) --&gt;
    <% out.flush(); %>
    <io:soap url="<%= url %>" SOAPAction="">
      <io:body>
        <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
          <SOAP-ENV:Body>
            <m:Ausgabe xmlns:m="http://meinpackage">
                <in0><%= Sql %></in0>
            </m:Ausgabe>
          </SOAP-ENV:Body>
        </SOAP-ENV:Envelope>
      </io:body>
    </io:soap>
    <hr></h3>
    
    </body>
    </html>
Working...
X