JNDI 之web项目数据源配置

JNDI 之web项目数据源配置
1.把数据源配置到Server下context.xml 文件中(也可以配置在web.xml中)
这里写图片描述

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource  
    name="jdbc/mysql"   
    scope="Shareable"   
    type="javax.sql.DataSource"  
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
    url="jdbc:mysql://localhost:3306/test"  
    driverClassName ="com.mysql.jdbc.Driver"  
    username="root"
    password="123456"  
    />  
</Context>

这样Spring等框架可以引用了. 下面做了一个简单的测试,在该web项目中获取数据库里的数据.

package com.iris.coon;

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

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

public class Jndi {
    public static void testConnection() {  
        String message = "Not Connected";  
        Connection conn=null;  
        ResultSet rst = null;  
        Statement stmt = null;  
        Context ctx;  
        try {  
            ctx = new InitialContext();  
            Context envContext = (Context) ctx.lookup("java:comp/env");  
            Object datasourceRef=envContext.lookup("jdbc/mysql");  
            DataSource  ds=(DataSource)datasourceRef;  
            conn=ds.getConnection();  
            if (conn != null) {  
                    message = "Got Connection " + conn.toString() + ", ";  
                    stmt = conn.createStatement();  
                    rst = stmt.executeQuery("select t.prp_code,t.prp_no from proposal t");  
                    while(rst.next()){
                        int prp_code = rst.getShort("prp_code");
                        String prp_no = rst.getString("prp_no");
                        System.out.println(prp_code+" "+prp_no+"\t");
                    }
                    System.out.println("Jndi Test Succeed!");  
                 }  
        } catch (NamingException e) {  
            e.printStackTrace();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }finally{  
            if(conn!=null){  
                try {  
                    conn.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }  
} 

新建index.jsp文件,调取testConnection方法得到结果.表示数据源配置是正确的.

对于这样的配置,spring的jee:jndi-lookup 直接就获取到.

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/mysql"></jee:jndi-lookup>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值