JNDI使用
jndi配置数据库
tomcat使用的是Tomcat 6.0.18版本
1.先在工程的WEB-INF目录下的META-INF下新建context.xml中添加配置resource,如下:
2.将mysql的connet jar放入到%TOMCAT_HOME%\common\lib下面。
3.写测试的例子:
jsp页面代码
自定义JNDI
1、写自定义的类
2.在context.xml中添加如下配置:
其中bar="23"是对MyBean的初始化
3.写测试代码:
jsp页面:
附件为完整的例子和mysql的驱动
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的驱动