第一步:下载mysql数据库的jdbc驱动,Connector/J,下载解压后的jar放到tomcat安装路径的lib下,不要放错到bin下咯。
第二步:创建数据库,这里数据库名为testdb,mysql数据库名不区分大小写,默认小写,就最好小写咯。CREATE DATABASE `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
第三步:eclipse中创建Dynamic Web Project项目,项目名testjndi,内容如下:
整个WEB-INF/web.xml文件内容如下:
test
index.jsp
jdbc/testjndi
javax.sql.DataSource
Container
整个WebContent/index.jsp文件内容如下:(
自己手写很容易把包引错)
Insert title here
");
DataSource ds = null;
try {
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/testjndi");
Connection conn = ds.getConnection();
conn.close();
out.print("MySQL 数据源测试成功!");
} catch (Exception ex) {
out.print("出现意外,信息是:" + ex.getMessage());
ex.printStackTrace();
}
%>
第4步:修改tomcat/conf/context.xml,整个文件内容如下,其中 这段是新加的,注意红色字体,其中jdbc/testjndi和jsp和web.xml中保持一致。
WEB-INF/web.xml
${catalina.base}/conf/web.xml
第五步:eclipse tomcat中启动项目,运行http://localhost:8080/testjndi/,如下图
备注一:如果运行得到:Cannot create JDBC driver of class '' for connect URL 'null',请再检查你的context.xml,是否配置正确,尤其是看Resource name属性是否为jdbc/testjndi和url是否正确,eclipse中clean项目会重新生成配置,具体看eclipse的配置情况
备注二:网上还有一种在tomcat\conf\server.xm和tomcat\conf\Catalina\localhost下配置方式:
1.整个localhost\项目名.xml内容如下:注意这个文件是手动添加的,文件名名称为项目名
2.部分server.xml内容如下:是在中加Context,在Context中加Resource,Resource内容和上面是一致的,如果eclipse中tomcat配置合适是自动生成的,只需加Resource
3.eclipse tomcat中启动项目,运行http://localhost:8080/testjndi/,完成
备注三:eclipse_tomcat_默认配置如下图:
删除eclipse中的tomcat,server。重新建server,配置tomcat如下图,此种配置方式是最佳实践,会少许多bug,默认的在eclipse工作空间中,路径太深:
备注四:我的标题是Tomcat8.0+Mysql5.7配置jndi,其实和tomcat、msql、jdk,版本没有关系,只是开始在这个配置没弄出来,后来换低版本弄出来了,然后又在高版本配置好了。
备注五:更完整资源已上传到百度云中。
备注六:最新发现,不用在tomcat/conf/context.xml中配置Resource,直接如下图,很方便。