Tomcat数据源配置
1.通过ConnectionPool管理数据库连接
2.通过DataSource去管理ConnectionPool
3.DataSource被JNDI绑定
能减少数据库打开和关闭的操作次数,节约资源
在开发中,基本上都是使用此种连接方式,可以提高性能
首先,初学者会有疑问,为什么会使用数据源呢?
使用数据源是为了提高数据库的访问效率.tomcat容器会接管数据库的connnection对象.他会根据参数的设置,预先实例化若干个connection对象在内存中。这样大大的提高了数据库的访问速度和操作效率.
全局设置:供所有项目使用
%TOMCAT_HOME%/conf/context.xml
指定项目设置,webapp就是你的web项目,只供当前项目使用
WebApp/META-INF/context.xml
使用全局的数据源,要把数据库的JDBC驱动拷贝到%TOMCAT_HOME%/lib下;使用项目数据源,需要拷贝到项目的lib下
下面是 context.xml代码
下面是JSP的调用代码 test.jsp
1.通过ConnectionPool管理数据库连接
2.通过DataSource去管理ConnectionPool
3.DataSource被JNDI绑定
能减少数据库打开和关闭的操作次数,节约资源
在开发中,基本上都是使用此种连接方式,可以提高性能
首先,初学者会有疑问,为什么会使用数据源呢?
使用数据源是为了提高数据库的访问效率.tomcat容器会接管数据库的connnection对象.他会根据参数的设置,预先实例化若干个connection对象在内存中。这样大大的提高了数据库的访问速度和操作效率.
全局设置:供所有项目使用
%TOMCAT_HOME%/conf/context.xml
指定项目设置,webapp就是你的web项目,只供当前项目使用
WebApp/META-INF/context.xml
使用全局的数据源,要把数据库的JDBC驱动拷贝到%TOMCAT_HOME%/lib下;使用项目数据源,需要拷贝到项目的lib下
下面是 context.xml代码
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource
name="jdbc/jspdev"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="5000"
username="sa"
password="tri12345"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev"
/>
<Resource
name="jdbc/emp"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="5000"
username="scott"
password="tri12345"
ValidationQuery="select count(*) from dual"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:ora9"
/>
<Resource
name="jdbc/net"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="5000"
username="root"
password="mysqladmin"
driverClassName="com.mysql.jdbc.Driver" ValidationQuery="select count(*) from dual"
url="jdbc:mysql://192.168.1.251/net"
/>
</Context>
下面是JSP的调用代码 test.jsp
<%@ page contentType="text/html;charset=gbk" %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
String JNDINAME = "java:comp/env/jdbc/net" ;
request.setCharacterEncoding("gbk");
Connection conn = null ;
try
{
// 初始化查找命名空间
Context ctx = new InitialContext() ;
// 找到DataSource
DataSource ds = (DataSource)ctx.lookup(JNDINAME) ;
conn = ds.getConnection() ;
out.write(conn.toString());
}
catch(Exception e)
{
System.out.println(e) ;
}
// 将连接重新放回到池中
conn.close() ;
%>