tomcat6.0 配置jndi

注意事项:tomcat JDK 一定要和 应用程序的JDK 版本一致(本例中统一JDK1.6)

说明:tomcat5.5与6.0的配置略有不同,即:tomcat的lib位置不同(其他完全一致),
6.0位置是:D:\我的工具\apache-tomcat-6.0.10\lib下

5.5位置是:D:\我的工具\apache-tomcat-5.5.17\common\lib


局部数据源步骤:
一、拷贝数据库驱动到:D:\我的工具\apache-tomcat-6.0.10\lib下,这里是(ojdbc14.jar)


二、配置context.xml文件(此步骤两种配法)

方法一:使用tomcat的context.xml文件

配置D:\我的工具\apache-tomcat-6.0.10\conf\context.xml中加入以下配置:

注意:下面配置放到<Context>中

<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
username="zsj"
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:zsj"
maxActive="100"
maxIdle="30"
maxWait="10000"/>

方法二:在应用中新建一个context.xml文件进行配置

在WebRoot目录下META-INF的目录(假如不存在则新建),
在该目录下创建一个context.xml文件,并且在context.xml文件当添加以下的配置信息:
<Context>

<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
username="zsj"
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:zsj"
maxActive="100"
maxIdle="30"
maxWait="10000"/>

</Context>


三、应用的web.xml配置(Tomcat建议在web.xml中添加以下内容,但这不是必须的。)

<resource-ref>
<description>OracleDataSource</description>

<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>


四、使用数据源连接数据库


private Connection getConnection() throws NamingException {
Connection conn = null;
String jndi = "jdbc/test";
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");//固定,不需要修改
DataSource ds = (DataSource)envContext.lookup(jndi);
if(ds != null){
try {
conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
}

return conn;
}


public List<String> selectById(int id) throws InstantiationException, IllegalAccessException{
Connection con = null;
try {
con = getConnection();
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
List<String> list = new ArrayList<String>();
String sql="select * from myusers where id=?";
try {
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1, id);
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
list.add(rs.getString(1));
list.add(rs.getString(2));
list.add(rs.getString(3));
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}


全局数据源配置:
一、1、直接在${CATALINA_HOME}\conf\server.xml的GlobalNamingResources标签中增加一下内容:

<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
username="zsj"
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:zsj"
maxActive="100"
maxIdle="30"
maxWait="10000"/>

二、在tomcat的context.xml的Context中增加:


<ResourceLink global="jdbc/test" name="jdbc/test2" type="javax.sql.DataSource"/>

说明:jdbc/test是全局的JNDI,jdbc/test2是你的应用中使用的JNDI

当然也可以在应用程序的WebRoot\META-INF\下新建context.xml,然后中增加:

<Context>

<ResourceLink global="jdbc/test" name="jdbc/test2" type="javax.sql.DataSource"/>

</Context>


三、直接在代码中使用该JNDI即可(web.xml无需任何配置了)


hibernate使用tomcat数据源


1,建立一个context.xml文件放到webroot的META-INF文件夹下。内容如下:
<Context>

<Resource name="jdbc/test" auth="Container"
type="javax.sql.DataSource"
username="zsj"
password="zsj"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:zsj"
maxActive="100"
maxIdle="30"
maxWait="10000"/>

</Context>

2、配置hibernate.cfg.xml文件

指定数据库方言
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>

指定JNDI名称(这里JNDI名称为:jdbc/myhibernate)


<property name="connection.datasource">java:comp/env/jdbc/test</property>


spring引用tomcat数据源


<bean id="dataSource"

class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName" value="java:comp/env/jdbc/sxmicsss" />

</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值