关于Tomcat中的datasource的配置可以有多种方式下面介绍两种:
第一种用将配置文件放置在%TOMCAT_HOME%/conf/Catalina/localhost文件夹下
创建配置文件WebDemo.xml
内容为:
<Context path="/WebDemo" docBase="E:\WebDemo" reloadable="true">
<Resource name="jdbc/bookstore" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root"
password="system" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test?autoReconnect=true"/>
</Context>
在servlet中的取得datasource:
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
try {
Context ctx = new InitialContext();
//取得datasource对象java:comp/env为固定格式
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/bookstore");
Connection conn = ds.getConnection();
String sql = "select * from tuser";Statement stat = conn.prepareStatement(sql);
ResultSet rs = stat.executeQuery(sql);
if(rs.next()){
System.out.println("name======"+rs.getString(1));
System.out.println("passeword======"+rs.getString(2));
}
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
实验结果可输出数据库表tuser表的内容
接下来是第二种方式:
将上面的WebDemo.xml改名为Context.xml并将文件放置在项目的META_INF下//注意文件名称不能改变,只能为Context.xml
且上面的docBase也不需要了.
<Context path="/WebDemo" reloadable="true">
<Resource name="jdbc/bookstore" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root"
password="system" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test?autoReconnect=true"/>
</Context>