tomcat项目数据源配置bean

tomcat项目数据源配置bean,第1张

第一步:在tomcat的server.xml中Service下配置 <Context path="jdbc/1" reloadable="true"></Context><Context path="jdbc/2" reloadable="true"></Context>注意path的值需要和第三步中Resource下的name保持一致。 jdbc/1和jdbc/2是两个不同的数据源

第二步:在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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11510119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存