Recently i was working on a project and I faced some security issues regarding the connection string. I was using the DriverManager.getConnection method>
Later I searched and found a way to handle that. I accessed the Weblogic Server Datasource. Pulled the connection information from the datasource and made a connection to the database. :)
Connection con=DriverManager.getConnection("jdbc:oracle:thin:tom/tom@l91c214gx:1521:orcl");
You can find the code below. Change the jdbc/wb_datasource to your datasource name. Always prefix JNDI Name with jdbc like jdbc/wb_datasource
eg: pool = (DataSource) env.lookup ("jdbc/xxxx");
<%@ page import="java.sql.*" %> <%@ page import="java.util.Hashtable"%> <%@ page import="javax.naming.*"%> <%@ page import="javax.sql.DataSource"%> <%@ page import="java.util.*"%> <%try{ Context env = null; DataSource pool = null; Hashtable ht = new Hashtable( ); ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); ht.put(Context.PROVIDER_URL,"t3://localhost:7001"); env = new InitialContext(ht); //Lookup this DataSouce at the top level of the WebLogic JNDI tree pool = (DataSource) env.lookup ("jdbc/wb_datasource"); //get a java.sql.Connection from the pool Connection conn = pool.getConnection( ); // change the sql_retrive string according to your need String sql_retrive = "select * from test" ; Statement st1=conn.createStatement(); st1.execute(sql_retrive); ResultSet rs=st1.getResultSet(); ResultSetMetaData rsm = rs.getMetaData( ); int colCount = rsm.getColumnCount( ); %> <table><tr> <% //print column names for (int i = 1; i <=colCount; ++i) { %> <th><%=rsm.getColumnName(i)%> </th> <% } %> </tr> <% while( rs.next( )){ %> <tr> <%for (int i = 1; i <=colCount; ++i) { %> <td> <%= rs.getString(i) %> </td> <%} //for loop ended%> </tr> <%} //while loop ended%> </table><% } conn.close(); st1.close(); } catch(Exception ex){ out.println(ex); } %>
0 comments:
Post a Comment
Type here your comments