public class DataSourceFactory {
// 在Tomcat目录下面的conf目录下面修改context.xml文件如下
/*
<Context reloadable="true" >
<!-- name属性中的值要与java类中的datasoruce中的相同,这个可以自己定义更改为不同的值-->
<Resource name="jdbc/mydb" auth="Container"
type="javax.sql.DataSource" maxActive="100" maxIdle="30"
maxWait="10000" username="12500" password="12500"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.1.115:1521:ORACLE9I" />ORACLE9I是你所连接数据库的服务名(常用的是orcl)
</Context>
*/
//
//
private static final String DATASOURCE = "jdbc/mydb";
//"jdbc/mydb"与context.xml中的name值要相同
public static Connection getConncetion() {
Connection conn = null;
try {
Context ctx = new InitialContext();
Context env = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) env.lookup(DATASOURCE);
conn = ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void testJNDI()
{
Connection conn=getConncetion();
try {
Statement st=conn.createStatement();
String sql="select * from BIGTYPE";
ResultSet rs=st.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getInt(1)+"/t"+rs.getString(2)+"/t"+rs.getString(3));
}
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
用main()方法是不能测试的,只有在web环境下才可以成功。