天天看点

TONGWEB\TOMCAT下,SPRINGMVC+JNDI连接DM数据源

JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。使用时在J2EE容器中配置JNDI参数,定义一个数据源,也就是JDBC引用参数,给这个数据源设置一个名称。然后在程序中,通过数据源名称引用数据源从而访问后台数据库。

本文着重介绍使用JNDI连接DM数据库时,应用以及中间件(TONGWEB\TOMCAT)如何配置。

一、使用TOMCAT

1.应用配置,应用框架为springmvc

  • web.xml,添加以下代码:
<resource-ref>
	<description>DB Connection</description>
    <res-ref-name>jdbc/dm</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
</resource-ref>
           
  • META_INF下增加context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
     <Resource  name="jdbc/dm" auth="Container" 
        type="javax.sql.DataSource"                                                     
        driverClassName="dm.jdbc.driver.DmDriver"                                 
        url="jdbc:dm://127.0.0.1:5236/dameng"
        username="GFW_EASYUI"
        password="GFW_EASYUI"
        maxActive="50"
        maxIdle="30"
        maxWait="10000" />  
</Context>
           
  • 配置文件增加数据源:
<bean id="dataSource2"   class="org.springframework.jndi.JndiObjectFactoryBean"> 
	    <property name="jndiName">                                    
	        <value>java:comp/env/jdbc/dm</value>  
	    </property>  
</bean>
           

2.测试代码:

public void testTongwebArray() {
		// TODO Auto-generated method stub
		Connection conn=null; 
		try { 
			Context ctx = new InitialContext(); 
			Object datasourceRef = ctx.lookup("java:comp/env/jdbc/dm"); 
			//引用数据源 
			DataSource ds = (DataSource) datasourceRef; 
			conn = ds.getConnection(); 
			
			Statement  stat = conn.createStatement();
			ResultSet rs = stat.executeQuery("SELECT A.* FROM FW_B_USER A LEFT JOIN FW_B_USER_ROLE B ON  A.USER_ID = B.USER_ID");
			while(rs.next()) {
        		String user_id = rs.getString("user_id");
        		System.out.println(user_id);
        	}
		} catch(Exception e) { 
			e.printStackTrace(); 
		} finally { 
			if(conn!=null) { 
				try { 
					conn.close(); 
				} catch(SQLException e) {
					e.printStackTrace(); 
				} 
			} 
		}

		
	}
           

启动tomcat,访问应用,正常输出。

二、使用TONGWEB

1.介绍一下如何使用tongweb配置数据源

tongweb7.0部署成功后,访问控制台地址,登陆。

选择JDBC配置,创建连接池,添加相应设置。

TONGWEB\TOMCAT下,SPRINGMVC+JNDI连接DM数据源

提交成功后,tongweb会自动生成一个名称为dm的jndi连接。

TONGWEB\TOMCAT下,SPRINGMVC+JNDI连接DM数据源

2.应用配置,应用框架为springmvc

  • web.xml,添加以下代码:
<resource-ref>
	<description>DB Connection</description>
    <res-ref-name>dm</res-ref-name>   <!-- 名称为tongweb中设置的jndi名称-->
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
</resource-ref>
           

3.测试代码:

public void testTongwebArray() {
		// TODO Auto-generated method stub
		Connection conn=null; 
		try { 
			Context ctx = new InitialContext(); 
			Object datasourceRef = ctx.lookup("java:comp/env/dm");  //名称为tongweb中设置的jndi名称
			//引用数据源 
			DataSource ds = (DataSource) datasourceRef; 
			conn = ds.getConnection(); 
			
			Statement  stat = conn.createStatement();
			ResultSet rs = stat.executeQuery("SELECT A.* FROM FW_B_USER A LEFT JOIN FW_B_USER_ROLE B ON  A.USER_ID = B.USER_ID");
			while(rs.next()) {
        		String user_id = rs.getString("user_id");
        		System.out.println(user_id);
        	}
		} catch(Exception e) { 
			e.printStackTrace(); 
		} finally { 
			if(conn!=null) { 
				try { 
					conn.close(); 
				} catch(SQLException e) {
					e.printStackTrace(); 
				} 
			} 
		}

		
	}
           

启动tongweb,访问应用,正常输出。