Heim  >  Artikel  >  Datenbank  >  经过JNDI从服务器容器中获取资源_Spring JNDI+Mysql+Tomcat

经过JNDI从服务器容器中获取资源_Spring JNDI+Mysql+Tomcat

WBOY
WBOYOriginal
2016-06-07 16:26:511108Durchsuche

通过JNDI从服务器容器中获取资源_Spring JNDI+Mysql+Tomcat 通过JNDI从服务器容器中获取DataSource资源 (由容器管理,不要关闭它,容器自己会处理)上一篇我们使用的是dbcp,这里使用JNDI: 使用JNDI连接数据: 在Spring注释 bean id=dataSource class=org.a

通过JNDI从服务器容器中获取资源_Spring JNDI+Mysql+Tomcat
通过JNDI从服务器容器中获取DataSource资源 (由容器管理,不要关闭它,容器自己会处理)上一篇我们使用的是dbcp,这里使用JNDI:
使用JNDI连接数据:

在Spring注释

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="url" value="${jdbc.url}"></property>
		<property name="driverClassName" value="${jdbc.driverClassName}"></property>
	</bean>

使用:

	<!-- 使用JBDI -->
	<bean id="dataSource" class="org.springframework.jndi.JndiObjectLocator">
		<property name="jndiName">
			<value>java:comp/env/jdbc/joba</value>
		</property>
	</bean>

一、添加数据库驱动文件 

通过数据源访问数据库,由于数据源由tomcat创建并维护,所以必须把MySql的驱动包拷贝到Tomcat根目录\lib中

二、配置数据源 
在tomcat根目录\conf\context.xml里的节点中添加以下配置 

<resource name="jdbc/jboa" auth="Container" type="javax.sql.DataSource" username="root" password="jerome" driverclassname="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/jboa" maxactive="100" maxidle="10" maxwait="5000"></resource>
这里我们介绍一下节点中的属性: 
(1)name:指定Resource的JNDI名字,可自定义 
(2)auth:指定管理Resource的Manager,它有两个可选值:Container和Application。Container表示由容器来创建和管理Resource,Application表示由web应用来创建和管理Resource 
(3)type:指定Resource所属的java类名 
(4)maxActive:指定数据库连接池中处于活动状态的数据库连接的最大数目。取值为0,表示不受限制 
(5)maxIdle:指定数据库连接池中处于空闲状态的数据库连接的最大数目。取值为0,表示不受限制 
(6)maxWait:指定数据库连接池中数据库连接处于空闲状态的最长时间(以毫秒为单位),超过这个时间将会抛出异常。取值为-1,表示可以无限制等待 
(7)username:指定连接数据库的用户名 
(8)password:指定连接数据库的口令 
(9)driverClassName:指定连接数据库的JDBC驱动程序 
(10)url:指定连接数据库的url

测试:必须在tomcat容器里面运行,要启动tomcat不能用junit

  我这里用的是我练习项目的测试,在action的login方法前面加下面代码登陆的时候就会执行这段代码:这段代码是下面的testAdd考过来的

package com.jboa.service;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.jboa.model.Department;
import com.jboa.model.Employee;
import com.jboa.model.Postion;

public class EmployeeServiceTest {
	@Test
	public void testAdd() {
		ApplicationContext ac = new ClassPathXmlApplicationContext("/*ApplicationContext.xml");
		EmployeeService employeeService = (EmployeeService) ac.getBean("employeeService");
		Employee employee = new Employee();
		employee.setSn("user11111112");
		employee.setPassword("user11111112");
		employee.setStatus("1");
		employee.setName("user1111112");
		Postion p = new Postion();
		p.setId(2);
		employee.setPostion(p);
		Department d = new Department();
		d.setId(1);
		employee.setDepartment(d);
		employeeService.add(employee);
	}
}
添加成功,测试成功;


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn