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

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

2010-01-22 23:21 357 查看
来源:http://www.ej38.com/showinfo/java-132636.html

使用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();

}

}

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