1. configuration MySql Connection DataSource
原理介绍
java 调用 Tomcat 中的 ConnectionPool 通过Context 中去查找 jndi 的方式
那么目标就明确了 Java ==jndi==> Tomcat ===> Databases
1) 因为是连接池所以需要 $CATALINA_HOME/lib/tomcat-dbcp.jar 包
把这个jar 包放到对就的Tomcat 目录下当然一般Tomcat 目录下有。
2) 要连接数据库 所以要jdbc 驱动 $CATALINA_HOME/lib/
mysql-connector-java-5.1.6-bin.jar
注意:tomcat 4.x 放在 $CATALINA_HOME/
common/lib目录下
将这个jar 包放到Tomcat 目录下同上 OK 在以上物理条件都存在的条
件了。。
3) 配置逻辑条件 $CATALINA_HOME/conf/
context.xml 配置
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
<Resource name="jdbc/mysqlDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="123456" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?autoReconnect=true"/>
</Context>
4) 服务端配置好后 我们就来配置 工程下的web.xml 文件中来告诉Tomcat 容器 我要什么连接。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>webJNdi</display-name>
<description>MySQL Test App</description>
<!-- 告诉 Tomcat Container 我要jdbc/mysqlDb 数据源 -->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysqlDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
5)测试页面
方式一:
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>测试Tomcat Container</title>
</head>
<body>
<%
Context ctx = new InitialContext();
Context env = (Context)ctx.lookup("java:/comp/env");
Object ob = env.lookup("jdbc/mysqlDB");
%>
<h1>Tomcat Container Connection MySqlObjectName:<%=ob %>
</body>
</html>
方式二:
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>测试Tomcat Container</title>
</head>
<body>
<%
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup( "java:/comp/env/jdbc/mysqlDB" );
%>
<h1>Tomcat Container Connection MySqlObjectName:<%=ds %>
</body>
</html>
Tomcat 4.x 的配置方法
与上面版本不同配置在server.xml 中添加内容
<Resource name="jdbc/MysqlDB"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/MysqlDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>123456</value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test?autoReconnect=true</value>
</parameter>
</ResourceParams>
同样在web.xml 中指定这里不变
运行结果
Tomcat Container Connection
MySqlObjectName:org.apache.tomcat.dbcp.dbcp.BasicDataSource@17f409c
分享到:
相关推荐
`DataSource`是一个接口,通常由诸如HikariCP、Druid或Tomcat JDBC等实现提供,它负责存储和管理数据库连接,使得我们的应用能够高效且安全地访问数据库。在Spring Boot中,我们通常通过自动配置和依赖注入来轻松地...
这对希望在Hibernate安装中利用Tomcat JNDI提供的DataSource配置便利性的开发者来说尤为重要。同时,Hibernate从3.0版本升级到3.1版本后,在获取线程安全的Hibernate会话方面也进行了极大的简化。 Tomcat可以被视为...
### Tomcat、MyEclipse与Oracle数据库的配置详解 在软件开发过程中,特别是Java Web应用开发领域,Tomcat服务器、MyEclipse集成开发环境以及Oracle数据库三者的结合使用非常常见。本文将详细介绍如何在开发环境中...
《Spring Boot整合MyBatis与外部Tomcat启动详解》 在现代Java开发中,Spring Boot以其简洁、快速的特性受到了广大开发者的喜爱。而MyBatis作为轻量级的持久层框架,以其灵活的SQL映射功能,为数据库操作提供了便利...
-- ActiveMQ Broker Configuration --> <!-- ===================== --> <!-- to enable Stomp support uncomment this --> <!-- ======================= --> <!-- JDBC DataSource ...
-- Database connection pool configuration --> type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="dbUser" password="dbPass" driverClassName="com.mysql.jdbc.Driver"...
在Java应用开发中,尤其是在使用Servlet容器如Tomcat时,数据库连接的管理是至关重要的。Hibernate作为一个流行的对象关系映射(ORM)框架,能够简化数据库操作,但同时也需要数据库连接来执行SQL语句。本文将详细...
@Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { JndiDataSourceLookup dsLookup = new JndiDataSourceLookup(); dsLookup.setResourceRef(true); return dsLookup....
### Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 框架搭建详细过程 #### 一、环境配置与准备 在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境...
在IT行业中,尤其是在Java Web开发领域,Tomcat和Hibernate是两个非常重要的工具。Tomcat是一款广泛应用的开源Web服务器和Servlet容器,而Hibernate则是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间...
在Java企业应用开发中,Tomcat作为流行的Servlet容器,经常被用来部署Web应用程序。而JNDI(Java Naming and Directory Interface)是Java平台提供的一种标准服务,用于在分布式环境中查找和管理资源。本篇将详细...
- 选择 “org.apache.tomcat.jdbc.pool.DataSource” 类型。 - 配置数据库连接参数: - Driver Class: `oracle.jdbc.driver.OracleDriver` - URL: `jdbc:oracle:thin:@localhost:1521:NBZJU` - Username: `...
### Tomcat 下 JNDI 数据源配置与 Hibernate 整合详解 #### 一、Tomcat 与 JNDI 数据源配置概述 在本篇文档中,我们将深入探讨如何在 Tomcat 服务器环境下配置 JNDI(Java Naming and Directory Interface)数据源...
3. 注解配置:如果使用Spring框架,可以通过@Configuration和@Bean注解来创建和配置HikariDataSource实例。 四、Druid连接池配置 Druid是阿里巴巴开源的一款优秀的数据库连接池,具备监控和扩展功能。配置Druid...
这个类通过`@Configuration`注解声明为一个配置类,并通过`@Import`导入了具体的Tomcat数据源配置。 当Spring Boot检测到没有已存在的`DataSource`或`XADataSource` bean时,`DataSourceAutoConfiguration....
Tomcat.jdbc.pool.DataSource dataSource = new Tomcat.jdbc.pool.DataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/mydb"); ...
- [Tomcat Configuration Reference - Resources](https://tomcat.apache.org/tomcat-8.5-doc/config/resources.html) 掌握这些知识点,开发者将能够更加熟练地在Java项目中进行数据库操作,提升应用的性能和稳定性...
- `DataSourceProxy`:代理数据源,实现了JDBC的DataSource接口,对外提供服务。 - `AbandonedConfig`:废弃连接的配置,处理超时和检测策略。 - `PoolEntry`:每个数据库连接的封装,包含实际的物理连接。 4. *...