过段时间可能会用到,今天稍微研究了一下,留在这里备忘.
Eclipse用了Eclipse Java EE IDE for Web Developers.版本.http://www.eclipse.org/downloads/这里可以下到
Tomcat用了7.0版本,在Eclipse中下载的.创建Dynamic Web Project项目时就会看到要求你下载Tomcat的提示
mysql使用了5.6.10版本.http://dev.mysql.com/downloads/installer/这里可以下到
配置的时候需要修改tomcat两个配置文件
1:context.xml
在<Context></Context>中加入
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" maxActive="50" maxIdle="10" maxWait="5000" username="root" password="root" diverClassName="org.git.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/world"/>url中的world是你要连接的Schema名称
2:web.xml
3:代码中添加在<web-app></web-app>中加入
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mysql</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>要注意的是context.xml中的name值与web.xml的res-ref-name名称要相同.
DataSource ds = null; try{ InitialContext ctx = new InitialContext(); ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql"); Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); String sql = "select * from city"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ response.getOutputStream().print("name: "+rs.getString(1)); } } catch(Exception ex) { ex.printStackTrace(); }代码里需要注意的是DataSource一定要用web.xml中res-type的DataSource.我起初就是把web.xml中的res-type值设置为javax.sql.DataSource,代码里自动引入了sun.jdbc.odbc.ee.DataSource.
结果造成org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to sun.jdbc.odbc.ee.DataSource异常,google了一番后,明白了是DataSource这里出了问题