Tomcat配置JNDI数据源两种方式:
(一)局部数据源
步骤:
一、拷贝数据库驱动到 Tomcat安装目录的lib下。
二、配置context.xml文件(两种方法)
方法一:使用Tomcat的context.xml文件
<Context>
<Resource
name="jdbc/mysqlds"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/147slBlog"
username="root"
password="1234"/>
</Context>
方法二:在应用中(WebRoot目录的META-INF目录下)新建context.xml文件进行配置(代码同上)
三、在应用中配置web.xml(不是必须的)
<resource-ref>
<description>DataSource</description>
<res-ref-name>jdbc/mysqlds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
四、使用数据源连接数据库
public Connection getConnection() throws NamingException{
Connection conn = null;
String jndi = "jdbc/mysqlds";
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup(jndi);
if(ds != null){
try{
conn = ds.getConnection();
}catch(SQLException e){
}
}
return conn;
}
(二)全局数据源配置
步骤:
一、在Tomcat服务器lib目录下加入数据库连接驱动包。
二、在Tomcat服务器 \conf\server.xml中编辑,添加全局JNDI数据源配置。在GlobalNamingResources标签中添加代码。
<Resource
name="jdbc/mysqlds"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/147slBlog"
username="root"
password="1234"/>
三、配置context.xml文件(两种方法)
方法一:在Tomcat服务器的context.xml文件中编辑
<ResourceLink
global="jdbc/mysqlds" //全局JNDI
name="jdbc/mysql" //应用中使用JNDI
type="javax.sql.DataSource" />
方法二:在应用的WebRoot\META-INF\下新建context.xml(代码同上)
四、在代码中使用JNDI(Web.xml中无需配置)
补充说明:
name:通过此名称查找DataSource。此名称可任意更换,为了不与其他名称混淆,使用了jdbc/mysqlds(配置关于mysql命名服务)
auth:容器授权管理。用户名和密码是否可在容器上生效。
type:此名称的类型。javax.sql.DataSource
maxActive:数据库在服务器上能打开的最大连接数。
maxIdle:数据库在服务器上维持的最小连接数。
maxWait:最大等待时间,10000毫秒。
username:数据库连接的用户名。
password:数据库连接的密码。