tomcat配置数据源的原理和使用

tomcat配置:Tomcat数据源的原理、配置和使用
复习基本的传统的jdbc操作流程:
1.加载数据库驱动程序,数据库的去掉那个程序通过Classpath配置
2.通过DriverManager类取得数据库连接对象
3.通过Connection实例化PrepareStatement对象,编写SQL语句操作数据库
4.数据库属于资源操作,操作完成之后需要对数据库进行关闭的操作。
但是考虑到在整个开发过程之中是只有中间对数据库的操作时不一样的,其他的三个都是一样的。所以就会产生了性能的一种提升的方式。
从Tomcat4.0之后开始出现了数据库连接池的东西,其中有最小的数据库连接数以及最大的数据库连接数。所有的准备好的链接源是存放在一个位置中DataSource,它再通过JNDI进行找到准备好的数据连接源的JNDI是一个属于命名及目录查找接口的,主要的功能就是进行查找的,查找对象,但是现在的数据库连接池是需要在Tomcat中完成配置的,要修改的是server.xml文件。
首先是启动mysql数据库,然后下面给出的是mysql数据库的配置代码:
<Resource name="jdbc/mldn"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="sa"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/mldn"/>
tomcat配置:Name表示数据源的名称,也是要查找的名称;auth表示由容器负责资源的链接,type表示的是对戏那个,数据源上,每一个绑定的都是DataSource,maxActive表示的是最大连接数,minIdle表示的是最小的维持数量,maxWait表示的是最大的等待时间。
现在使用的是Tomcat6.0的版本,要想让一个数据源起作用的话,还必须在web.xml文件中配置完成。
<resource-ref>
<res-ref-name>jdbc/mldn</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
数据源使用的时候,必须按照以下的步骤进行:初始化名称查找上下文:Context ctx = new InitialContext();然后通过DataSource对象:DataSource ds = (DataSource) ctx.lookup(JNDI名称);接着通过DataSource取得一个数据库的链接:Connection conn = ds.getConnection();在上面配置好的基础上来测试下面的代码:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="javax.naming.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<html>
<head><title>datasource的实例操作</title></head>
<body>
<%
String DSNAME = "jdbc/mldn";
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(DSNAME);
Connection conn = ds.getConnection();
//表示从连接池中取得连接
%>
<%=conn%>
<%
conn.close();//表示将连接放回到池中
%>
</body>
</html>
打开浏览器之后会出现500的错误:
javax.servlet.ServletException: javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
这是因为对于资源的操作本身是需要一个环境属性的支持的,java:comp/env,但是由于Tomcat服务器的免费性,没有对这种属性提供支持,所以如果想访问Tomcat中的名称的话,那么就需要在前面加上属性。只需要将上述代码中的加粗红色字体字修改为:
String DSNAME = "java:comp/env/jdbc/mldn";
修改之后我们就会发现这个时候的代码就可以正常的执行了。在浏览器的页面出现了字体说明配置都是成功的。以后的程序中则只认名字,而具体的那个数据库则将由配置来决定的。之前我们用的MVC中的数据库的链接就可以修改一下了:
修改之后的代码:DatabaseConnection.java
package cn.mldn.lxh.dbc ;
import java.sql.* ;
import javax.sql.* ;
import javax.naming.* ;
public class DatabaseConnection {
private static final String DSNAME = "java:comp/env/jdbc/mldn" ;
private Connection conn ;
public DatabaseConnection() throws Exception {
Context ctx = new InitialContext() ;
DataSource ds = (DataSource) ctx.lookup(DSNAME) ;
this.conn = ds.getConnection() ;
}
public Connection getConnection(){
return this.conn ;
}
public void close() throws Exception {
if(this.conn != null){
try{
this.conn.close() ;
}catch(Exception e){
throw e ;
}
}
}
}//tomcat配置
本文来源 我爱IT技术网 http://www.52ij.com/jishu/584.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
