第二步:在tomcat的server.xml中Host下指定appBase 我理解的appBase位置就是指,项目war包放的真实地址,例如:app/work.war为war包地址,那么appBase 就是appBase
测试的tomcat为apache tomcat 数据库为mysql和oracle
配置步骤如下
把数据库的JDBC驱动放入D:\apache tomcat \lib目录下
在D:\apache tomcat \conf\web xml文件中 将下面代码加入到web xml中
<resource ref>
<description>DB Connection</description>
<res ref name>jdbc/mysql</res ref name>
<res type>javax sql DataSource</res type>
<res auth>Container</res auth>
</resource ref>
<resource ref>
<description>DB Connection</description>
<res ref name>jdbc/oracle</res ref name>
<res type>javax sql DataSource</res type>
<res auth>Container</res auth>
</resource ref>
在D:\apache tomcat \conf\server xml文件中 在Host节点下添加Context子节点 配置如下
<Context path= /ljqtest docBase= ljqtest debug= reloadable= true crossContext= true >
<Resource name= jdbc/mysql
type= javax sql DataSource
username= root
password= mysql
driverClassName= gjt mm mysql Driver
url= jdbc:mysql://localhost: /shop
maxIdle=
maxWait=
maxActive= >
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
</Resource>
<Resource name= jdbc/oracle
type= javax sql DataSource
username= test
password= test
driverClassName= oracle jdbc driver OracleDriver
url= jdbc:oracle:thin:@localhost: :ORCL
maxIdle=
maxWait=
maxActive= >
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
</Resource>
</Context>
</Host>
或者
<Context path= /uimcardprj docBase= uimcardprj debug= reloadable= true crossContext= true >
<Resource name= jdbc/ycxkDB
type= javax sql DataSource
username= ycxk
password= xmzh
driverClassName= oracle jdbc driver OracleDriver
url= jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
maxIdle=
maxWait=
maxActive= >
</Resource>
</Context>
</Host>
注意 path为D:\apache tomcat \webapps目录下的工程名称
把web工程项目部署在D:\apache tomcat \webapps目录下
MysqlConn类 获取Mysql数据源
package ljq test
import java sql Connection
import java sql SQLException
import javax naming Context
import javax naming InitialContext
import javax sql DataSource
public final class MysqlConn {
// 懒汉式单例(使用时才new)
private static MysqlConn instance = null
MysqlConn() {
}
// 延迟初始化(用到的时候才加载)(推荐)
// public static synchronized JdbcConn
// getInstance(){} >这样不好 因为每调用一次就同步 效率非常低
public static MysqlConn getInstance() {
if (instance == null) {
synchronized (MysqlConn class) {// 可能会产生并发的问题 我们对他进行同步
if (instance == null) {
instance = new MysqlConn()
}
}
}
return instance
}
private DataSource getDataSource() {
DataSource ds = null
try {
Context ctx = new InitialContext()
ds = (DataSource) ctx lookup( java:p/env/jdbc/mysql )
} catch (Exception e) {
System out println( 数据源获取失败 )
e printStackTrace()
}
return ds
}
public Connection getConn() {
Connection conn = null
try {
conn = getDataSource() getConnection()
} catch (SQLException e) {
System out println( 数据库连接失败 )
e printStackTrace()
}
return conn
}
}
OraclelConn类 获取Oracle数据源
package ljq test
import java sql Connection
import java sql SQLException
import javax naming Context
import javax naming InitialContext
import javax sql DataSource
public final class OracleConn {
// 懒汉式单例(使用时才new)
private static OracleConn instance = null
OracleConn() {
}
// 延迟初始化(用到的时候才加载)(推荐)
// public static synchronized JdbcConn
// getInstance(){} >这样不好 因为每调用一次就同步 效率非常低
public static OracleConn getInstance() {
if (instance == null) {
synchronized (OracleConn class) {// 可能会产生并发的问题 我们对他进行同步
if (instance == null) {
instance = new OracleConn()
}
}
}
return instance
}
private DataSource getDataSource() {
DataSource ds = null
try {
Context ctx = new InitialContext()
ds = (DataSource) ctx lookup( java:p/env/jdbc/mysql )
} catch (Exception e) {
System out println( 数据源获取失败 )
e printStackTrace()
}
return ds
}
public Connection getConn() {
Connection conn = null
try {
conn = getDataSource() getConnection()
} catch (SQLException e) {
System out println( 数据库连接失败 )
e printStackTrace()
}
return conn
}
}
页面index jsp:打印数据库连接对象
<body>
mysql连接对象为 <%Connection conn=MysqlConn getInstance() getConn()%><%=conn %><%conn close()%><br/>
oracle连接对象为 <%Connection conn =MysqlConn getInstance() getConn()%><%=conn %><%conn close()%><br/>
</body>
启动tomcat 在浏览器中输入//localhost: /ljqtest/ 输出如下
lishixinzhi/Article/program/Java/ky/201311/28581
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)