Tomcat配置数据源,由于项目经常访问数据库,需要不断地打开关闭,这就耗费了大量的资源。所以用数据源的方式访问数据库。
大体步骤:
- 配置server.xml
- 配置项目所在的WebRoot/WEB-INF/web.xml
- 在Servlet或者JSP中调用
一、
在server.xml中的<host>标签中配置,
1 <Host name="localhost" appBase="webapps" 2 unpackWARs="true" autoDeploy="true"> 3 <Context path="/MyWeb3" docBase="D:MyWorkspaceMyWeb3WebRoot" reloadable="true"> 4 <Resource name="jdbc/haoDB" auth="Container" type="javax.sql.DataSource" 5 maxActive="100" maxIdle="30" maxWait="10000" 6 username="root" password="root" driverClassName="com.mysql.jdbc.Driver" 7 url="jdbc:mysql://192.168.1.18:3306/cuihao"/> 8 </Context> 9</Host>
其中的name属性是数据源名称,通常采取jdbc/**.driverClassName属性是驱动程序名称。
username,password,数据库名称和密码(要输入正确,不要有空格)
url:访问的数据库路径,这里要注意!
maxActive属性是并发连接的最大数。设置为0则无限制。
maxWait属性是等待连接的最大连接的时间。
maxIdle属性是连接池中空闲的连接的个数。
二、
配置项目所在的WebRoot/WEB-INF/web.xml
1 <!-- 数据源 --> 2 <description>MySQL Test App</description> 3 <resource-ref> 4 <description>DB Connection</description> 5 <res-ref-name>jdbc/haoDB</res-ref-name> 6 <res-type>javax.sql.DataSource</res-type> 7 <res-auth>Container</res-auth> 8 </resource-ref>
<res-ref-name>标签内的是数据源的名称,与(一)中server.xml的<Resource>标签内的name相同。
三、Servlet中调用
final String JDBCNAME = "java:comp/env/jdbc/haoDB";
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup(JDBCNAME);