一、用于数据库连接的术语:
JDBC:(Java database connectivity)是基于java数据访问技术的一个API通过客户端访问服务器的数据库,是一个面向关系型数据库并提供一种方法查询和更新数据库;
JNDI:(Java naming and directory interface)JNDI服务提供了对应用程序命名和目录功 能的一种用java程序编写的基于API的java平台;
DataSource:是一个通过JDBC API访问关系型数据库的java对象,当与JNDI整合并在JDNI 名称服务中注册后能更好的工作;
二、tomcat连接常用数据库的操作步骤:
Tomcat配置Oracle DataSource:
- 在server.xml全局文件中定义如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users--> <Resource name="jdbc/tomcat7" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:test" description="test database for tomcat 7" Configuration and Deployment [ 46 ] username="admin" password="admin" maxActive="20" maxIdle="10" maxWait="-1"/> </GlobalNamingResources>
|
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html 下载Oracle JDBC驱动程序类并放在CATALINA_HOME/lib/目录下,tomcat默认只接 受.jar结尾的类,如果是zip压缩格式需要将其重名为.jar结尾,然后放到 CATALINA_HOME/lib/目录下;
在应用下面的WEB-INF/web.xml文件中强制定义文档类型定义,示例如下:
1 2 3 4 5 6
| <resource-ref> <description>Oracle Datasource for tomcat </description> <res-ref-name>jdbc/tomcat7 </res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
|
- 开发人员在代码中引用JNDI并连接到数据库;
Tomcat配置mysql DataSource:
- 在server.xml全局文件中定义如下内容:
1 2 3 4 5 6
| <Resource name="jdbc/tomcat7" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="tomcatuser" password="tomcat" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/tomcat7"/>
|
- 在应用下面的WEB-INF/web.xml文件中强制定义文档类型定义,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <description>Tomcat 7 test DB</description> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/tomcat7</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
|
http://dev.mysql.com/downloads/ 下载MYSQL JDBC驱动程序类并放在 CATALINA_HOME/lib/目录下,tomcat默认只接受.jar结尾的类,如果是zip压缩格式需 要将其重名为.jar结尾,然后放到CATALINA_HOME/lib/目录下;
对连接tomcat的用户授予全部权限,格式如下:
1 2 3 4 5 6
| mysql> GRANT ALL PRIVILEGES ON *.* TO tomcatuser@localhost IDENTIFIED BY 'tomcat7' WITH GRANT OPTION; mysql> create database tomcat7; mysql> use tomcat7; mysql> create table testdata ( id int not null auto_increment primary key,foo varchar(25), bar int);
|
注:用户密码一定不要为空,否则会造成连接tomcat认证错误;
Tomcat配置Postgresql DataSource:
- 在server.xml全局文件中定义如下内容:
1 2 3 4 5 6
| <Resource name="jdbc/tomcat7" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432/tomcat7" username="tomcat7" password="tomcat" maxActive="20" maxIdle="10" maxWait="-1"/>
|
http://jdbc.postgresql.org/download.html 下载PostgreSQL JDBC驱动类并放在 CATALINA_HOME/lib/目录下,tomcat默认只接受.jar结尾的类,如果是zip压缩格式需 要将其重名为.jar结尾,然后放到CATALINA_HOME/lib/目录下;
在应用下面的WEB-INF/web.xml文件中强制定义文档类型定义,示例如下:
1 2 3 4 5 6
| <resource-ref> <description>postgreSQL Tomcat datasource </description> <res-ref-name>jdbc/tomcat7 </res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
|