在Tomcat7中配置数据源
来源:互联网 发布:商城框架java 编辑:程序博客网 时间:2024/05/16 17:46
今天看书看到了Tomcat数据源,但是按照书上的方法在server.xml中配置却出现了异常,上网百度了下,结果在conf/context.xml中配置才成功【可能是Tomcat7没有向下兼容】。
下面来讲讲Tomcat数据源
动态Web的动态体现在与数据库的交互上,但是传统的JDBC操作的过多的重复性的操作会降低程序的性能,而数据源可以提升与数据库操作的性能。
1.JDBC操作步骤
1.加载数据库驱动程序,通过classpath配置
2.通过DriverManager类取得数据库连接对象
3.通过Connection实例化PreparedStatement对象,编写SQL语句操作数据库
4.关闭数据库连接,释放资源
提示:JDBC连接数据库时会进行多个Socket连接操作,性能很低
思考:步骤1、2和4所有用户都是相同的,只有步骤3不同,此时如果只保留步骤3, 则性能肯定会有所提高【可通过Tomcat数据源实现】
2.数据源操作原理
在一个对象池【也称为数据库连接池,Connection Pool】中保存多个数据库的连接,当要进行数据库操作时,可以直接从连接池中取出
一个数据库连接,操作完成后,在将此连接放回连接池中,等待其他用户使用。
3.数据源操作中的问题
1.最小连接数:无用户连接时,数据库最小应维持的数据库连接数
2.最大连接数:一个程序中一个数据库最多可以打开的数据库连接数
3.最大等待时间:因为有最大连接数,所以当连接池中没有连接时,用户必须等待,但是也不能无限制地等待,当超过最大等待时间,用户就无法取得数据库连接
4.在Tomcat中使用数据库连接池
在web容器中,数据库的连接池是通过javax.sql.DataSource访问的,即可通过DataSource类取得一个Connection对象,但需要使用JNDI进行查找。
JDNI:Java Naming and Directory Interface——Java命名及目录接口
JDNI作用:通过一个名称“key”查找到对应的一个对象“value”,只要key不变,vlaue可以任意修改
Tomcat中数据源操作
5.在conf/context.xml中配置数据库连接池
在<Context>节点中
<Resourcename="jdbc/hl"配置连接池资源,名称为jdbc/hlauth="Container"连接数据库的方法type="javax.sql.DataSource"指定此数据源对应的类型是DataSourcemaxActive="100"最大连接数maxIdel="10"最小连接数maxWait="1000"最大等待时间username="root"password="root"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/hl" />
6.配置web.xml
在context.xml中配置完后,就可以在需要jdbc/hl此数据库的web项目中配置web.xml
<resource-ref><description>MySql Connection</description><res-ref-name>jdbc/mldn</res-ref-name>数据源名称<res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth> </resource-ref>
7.查找数据源
1.数组JNDI名称:String DSNAME = "java:com/env/jdbc/hl"
【解释】java:com/env/:Java EE 规定的一个环境命名上下文【Environment Naming Context(ENC)】
【高级服务器,如WebLogic、Websphere已经设置好了此属性,可不写】
【作用】解决JNDI查找时的冲突问题
2.初始化名称查找上下文:Context ctx = new InitialContext()
3.通过名称查找DataSource对象:DataSource ds = (DataSource)ctx.lookup()
4.通过DataSource取得一个数据库连接:Connection conn = ds.getConnection()
例:通过数据源取得数据库连接————getConnection.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="javax.naming.*" %><%@ page import="javax.sql.*" %><%@ page import="java.sql.*" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%String DSNAME = "java:comp/env/jdbc/hl";Context ctx = new InitialContext();DataSource ds = (DataSource)ctx.lookup(DSNAME);Connection conn = ds.getConnection();System.out.println("获取数据库连接成功");%><%=conn%><%conn.close();%></body></html>本程序将打印Connection对象
好了,这就是今天所学,明天继续!
- 在Tomcat7中配置数据源
- 在tomcat7.x版本中配置数据源
- Tomcat7.0 配置数据源
- Tomcat7配置数据源
- Tomcat7配置数据源
- tomcat7 配置数据源
- Tomcat7数据源配置
- Tomcat7 配置数据源
- tomcat7配置数据源
- Tomcat7配置数据源
- Tomcat7配置DBCP数据源
- Tomcat7配置数据源
- Tomcat7配置数据源
- Tomcat7配置数据源
- Tomcat7配置数据源
- Tomcat7在JNDI中添加定制的JavaBean数据源
- 在Tomcat中配置数据源
- 在struts中配置数据源
- 左旋转字符串
- hdu Dating with girls(2) bfs加点东西 水题
- ubuntu安装apache
- XML是什么
- 用My97DatePicker日期框架取得时间后转换为可在javascript中比较的Date类型
- 在Tomcat7中配置数据源
- 认识指针和指针变量
- linux网络协议栈分析笔记9-arp邻居子系统2
- 多机调度问题(C语言实现)——贪心算法应用(4)
- hadoop在ubuntu下的安装配
- 网页制作中控制表格边框的显示
- linux网络协议栈分析笔记10-arp邻居子系统3
- 连接
- 第一周项目2—日期结构体