配置JNDI数据源


1、JBoss配置数据源 
在JBoss的 D:\jboss420GA\docs\examples\jca 文件夹下面,有很多不同数据库引用的数据源定义模板。将其中的 mysql-ds.xml 文件Copy到你使用的服务器下,如 D:\jboss420GA\server\default\deploy。 
修改 mysql-ds.xml 文件的内容,如下: 

<?xml version="1.0" encoding="UTF-8"?> 
<datasources> 
<local-tx-datasource> 
    <jndi-name>MySqlDS</jndi-name> 
    <connection-url>jdbc:mysql://localhost:3306/lw</connection-url> 
    <driver-class>com.mysql.jdbc.Driver</driver-class> 
    <user-name>root</user-name> 
    <password>rootpassword</password> 
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> 
    <metadata> 
       <type-mapping>mySQL</type-mapping> 
    </metadata> 
</local-tx-datasource> 
</datasources>

2、Tomcat配置数据源  
1)(全局配置)在tomcat的conf文件夹下的context.xml配置文件中加入:

<Resource name="jndi/mybatis" 
    auth="Container" 
    type="javax.sql.DataSource" 
    driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost:3306/appdb" 
    username="root" 
    password="123456" 
    maxActive="20" 
    maxIdle="10" 
    maxWait="10000"/>

然后在项目的web.xml中加入资源引用:

<resource-ref>
  <description>JNDI DataSource</description>
  <res-ref-name>jndi/mybatis</res-ref-name>
  <res-ref-type>javax.sql.DataSource</res-ref-type>
  <res-auth>Container</res-auth>
</resource-ref>

其中res-ref-name值要和context.xml的name值一致。

2)在项目的META-INF下面新建context.xml。加入:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jndi/mybatis" 
        auth="Container" 
        type="javax.sql.DataSource" 
        driverClassName="com.mysql.jdbc.Driver" 
        url="jdbc:mysql://localhost:3306/appdb" 
        username="root" 
        password="123456" 
        maxActive="20" 
        maxIdle="10" 
        maxWait="10000"/>
</Context>

其他配置同第一种方式。

在项目的web.xml中添加的资源引用可有可无。

3、在程序中引用数据源: 

Connection conn=null; 
try 
{ 
    Context ctx=new InitialContext(); 
    Object datasourceRef=ctx.lookup("java:MySqlDS"); 
    //引用数据源 
    DataSource ds=(Datasource)datasourceRef; 
    conn=ds.getConnection(); 
    /* 使用conn进行数据库SQL操作 */ 
    conn.close(); 
}catch(Exception e){
    e.printStackTrace();
}finally {
  
} 
JNDI避免了程序与数据库之间的紧耦合,使应用更加易于配置、易于部署。


你可能感兴趣的:(配置JNDI数据源)