如何使用context.bind绑定DataSource。连接池等

时间:2011-08-13 14:32:18

标签: java sql-server jdbc

我在NetBean 7.0中创建了一个简单的java项目,并为MS SQl支持添加了jar文件sqljdbc4.jar。

我创建了一个类,我已经为MQ SQL创建了一个数据源(下面的代码)。 它使用数据源连接数据库并成功获取记录计数(504)。 (我有一个有504条记录的产品表)

但尝试绑定到Context时会抛出错误。有人可以帮我建议我应该输入什么来填补“???”在下面的代码?

package datasourcetest; 

import javax.naming.InitialContext;

import javax.naming.Context;

import javax.naming.NamingException;

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

import java.sql.*; 

import java.util.Hashtable; 

/** 
* 
* @author admin 
*/ 



public class dataSource { 

public static void main(String [] args) 
{ 

SQLServerDataSource ds = new SQLServerDataSource(); 

ds.setServerName("admin-PC\\SQLEXPRESS"); 

ds.setPortNumber(1433); 

ds.setUser("sa"); 

ds.setPassword("admin"); 

try{ 

System.out.println("PART 1"); 

Connection con = ds.getConnection(); 

if(con !=null) 

{ 

System.out.println("Connection Success"); 

} 

Statement stmt = con.createStatement(); 

ResultSet rs = stmt.executeQuery("select count(*) from AdventureWorks.Production.Product") ; 

while(rs.next()) { 

int count = rs.getInt(1); 

System.out.println("Total Record: "+ count); 

} 

/* Bind the DataSource to JNDI so that we can look for the datasource by the name given**/ 

System.out.println("PART 2"); 

Hashtable env = new Hashtable(); 

env.put(Context.INITIAL_CONTEXT_FACTORY," ??? "); 

env.put(Context.PROVIDER_URL, " ??? "); 

Context ctx = new InitialContext(env); 

ctx.bind("jdbc/myDatasource",ds); 

SQLServerDataSource myDs = (SQLServerDataSource)ctx.lookup("jdbc/myDatasource"); 

} 

catch(SQLException se) { 

System.out.println("Failed PART 1"); 

} 

catch(NamingException ne) { 

System.out.println("Failed PART 2"); 

ne.printStackTrace(); 

} 

} 

} 

1 个答案:

答案 0 :(得分:0)