网上其实这种例子很多,但是往往有好多人配置时会出现问题,现在就以tomcat6为例,演示一下配置步骤,以及在配置过程中出现的问题的解决方法.
配置步骤如下:
步骤1: 在你的web应用的web.xml文件中增加如下配置 注意需要在节点<web-app>内部
<resource-ref>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
步骤2:在conf\Catalina\localhost路径下找到你的web应用对应的xml文件 在文件配置虚拟路径下增加下面代码.
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test1?characterEncoding=utf-8"/>
步骤3: java类中获取数据库连接对象的代码
public Connection getConnection() throws SQLException {
Connection con = null;
try {
Context ctx=new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
con = ds.getConnection();
} catch (Exception e) {
throw new SQLException();
}
return con;
}
步骤4 测试:
可以再jsp文件中加入如下代码进行测试.细节不多说了.
完成上述几个步骤以后就可以测试了,测试时有时会碰到异常问题如下:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
出现这个问题的可能是因为配置好了JNDI数据源,我们需要在tomcat容器内进行数据库连接的获取.如果仅仅独立于此应用则会报这个异常.