DataSource是怎么连接oracle的啊?
有个项目用到到数据源,但是不会用,急盼赐教!
Context ctx = new InitialContext();
ds = (DataSource) ctx.lookup("d:test/oracle");
conn = ds.getConnection();
这块有问题,"d:test/oracle"这里是我的表空间存放数据文件的目录,以下是连接数据库的代码,运行时报错:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
/**
*
*/
package com.cattsoft.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
/**
* @author Administrator
*
*/
public class ConnOracle {
private DataSource ds;
private Connection conn;
private PreparedStatement ps;
/*
<Resource name="DTmobile" auth="Container" type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
username="cattsoft"
password="cattsoft"
maxActive="80"
maxIdle="20"
maxWait="-1" />
*/
/**
*
*/
public ConnOracle() {
// TODO Auto-generated constructor stub
try {
Context ctx = new InitialContext();
ds = (DataSource) ctx.lookup("d:test/oracle");
conn = ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 获取PreparedStatement
*/
public PreparedStatement getPstmt(String sql){
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ps;
}
/**
* 关闭连接
*/
public void close(){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args){
ConnOracle co = new ConnOracle();
PreparedStatement ps = co.getPstmt("select * from t_user");
try {
ResultSet rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
co.close();
}
}