JBOSS 配置 数据源JNDI

以mysql为例

第一步、

         复制$JBOSS_HOME\docs\examples\jca\mysql-ds.xml   到  $JBOSS_HOME\server\default\deploy 目录下

第二步、

        打开复制到deploy目录下的mysql-ds.xml文件,并编辑。

      

<?xml version="1.0" encoding="UTF-8"?>

<!-- See http://www.jboss.org/community/wiki/Multiple1PC for information about local-tx-datasource -->
<!-- $Id: mysql-ds.xml 88948 2009-05-15 14:09:08Z jesper.pedersen $ -->
<!--  Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>	<!-- 一定要这个属性为false ,否则java里面naming是获取不到的。 -->
	<use-java-context>false</use-java-context>
    <connection-url>jdbc:mysql://localhost:3306/zftest</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>root</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    -->
    <!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
      -->
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
      -->

    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

java使用方法


package com.zf.servlet ;

import java.io.IOException;
import java.sql.Connection;

import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import javax.transaction.UserTransaction;


public class MyServlet extends HttpServlet {


	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {


		try{
			InitialContext jndiContext = new InitialContext();
			
			insertToMySql1();
			
			System.out.println("ok");
			
		}catch(Exception e){
			e.printStackTrace();
		}

	}


	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}
	
	public void insertToMySql1() throws Exception{
		Connection conn1 = createMySqlConnection();
		conn1.prepareStatement("insert into ccb (name , balance) values( 'xxx' , 15 )").executeUpdate();
		conn1.close();
	}
	
	private Connection createMySqlConnection() throws Exception{
		  InitialContext jndiContext;
		  try {
		        jndiContext = new InitialContext();
		        DataSource ds = (DataSource)jndiContext.lookup("MySqlDS");
		        return ds.getConnection();
		    } catch (Exception e) {
		        e.printStackTrace();
		    }
		    return null;
	}

}



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