JNDI使用

JNDI使用

jndi配置数据库

tomcat使用的是Tomcat 6.0.18版本

1.先在工程的WEB-INF目录下的META-INF下新建context.xml中添加配置resource,如下:

<Resource   
name="jdbc/mysql"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
password="123456"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>



2.将mysql的connet jar放入到%TOMCAT_HOME%\common\lib下面。

3.写测试的例子:

public String testMain() throws SQLException, NamingException{
Context ctx = null;
DataSource ds = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
ctx = new InitialContext();
if (ctx == null){
System.out.println("no context");
return "no context";
}

ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
if (ds == null) {
System.out.println("no datasource");
return "no datasource";
}
conn = ds.getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String strSql = "select * from pmuser";
rs = stmt.executeQuery(strSql);
while (rs.next()) {
System.out.println(rs.getString(2));
}
return "sucess";
} catch (Exception ex) {
ex.printStackTrace();
System.out.println(ex.toString());
} finally {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
if (ctx != null)
ctx.close();
}
return "error";
}

jsp页面代码

<%
String br="<br />";
out.println("Start Test JNDI"+br);
TestMysqlJndi tm=new TestMysqlJndi();
String ret=tm.testMain();
out.println("Return String : "+ret+br);
out.println("End Test Jndi <br />"+br);
%>



自定义JNDI

1、写自定义的类

public class MyBean {
private String foo = "Default Foo";
private int bar = 0;
public String getFoo() {
return (this.foo);
}
public void setFoo(String foo) {
this.foo = foo;
}
public int getBar() {
return (this.bar);
}
public void setBar(int bar) {
this.bar = bar;
}
}

2.在context.xml中添加如下配置:

<Resource name="bean/MyBeanFactory" auth="Container"
type="com.demo.MyBean"
factory="org.apache.naming.factory.BeanFactory"
bar="23"/>

其中bar="23"是对MyBean的初始化

3.写测试代码:

public String testMethod() throws NamingException{
Context initCtx=new InitialContext();
Context ctx=(Context)initCtx.lookup("java:comp/env");
MyBean bean=(MyBean)ctx.lookup("bean/MyBeanFactory");
StringBuffer ret=new StringBuffer();
ret.append("foo = ").append(bean.getFoo()).append(", bar = ").append(bean.getBar());
System.out.println(ret.toString());
return ret.toString();
}

jsp页面:

<%
String br="<br />";
out.println("Start Test JNDI"+br);
TestJndiMain tm=new TestJndiMain();
String ret=tm.testMethod();
out.println("Return String : "+ret+br);
out.println("End Test Jndi <br />"+br);
%>


附件为完整的例子和mysql的驱动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值