您的位置:首页 > 移动开发

Java Application 直接通过jndi连接数据库

2009-11-16 10:48 351 查看
使用jar包:

commons-pool-1.5.3.jar,tomcat-naming-common.jar,commons-pool-1.5.3-bin.zip,commons-dbcp.jar

注意:jdbc 驱动要与数据库兼容.

package test.comm;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Hashtable;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;

public class DBConnector {
static private InitialContext ic = null;
static private DataSource ds = null;

static private void initContext(){
try {

BasicDataSource bds = new BasicDataSource();
bds.setUrl("jdbc:oracle:thin:@localhost:1521:test");
bds.setDriverClassName("oracle.jdbc.OracleDriver");
bds.setUsername("test");
bds.setPassword("a");

Hashtable<String, String> evn = new Hashtable<String,String>();
evn.put("java.naming.factory.initial","org.apache.naming.java.javaURLContextFactory");
ic = new InitialContext(evn);
ic.bind("mydatasource", bds);
ds = (DataSource) ic.lookup("mydatasource");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

static public Connection getConn() throws SQLException{
if (ds == null){
initContext();
}
return ds.getConnection();
}

}


测试:

package test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import test.comm.DBConnector;

public class wfTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Connection conn = DBConnector.getConn();
System.out.println("conn = "+conn);
String qSQL = "SELECT USERNAME,LOGINID FROM S_U_USER";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(qSQL);

while (rs.next()){
System.out.println(rs.getString("USERNAME"));
System.out.print("   "+rs.getString("LOGINID"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: