1)JNDI
JNDI ---- Java 命名与目录接口(Java Naming and Directory Interface).
在J2EE容器中配置JNDI参数,定义一个数据源,也就是JDBC引用参数,给这个数据源设置一个名称;然后,在程序中,通过数据源名称引用数据源从而访问后台数据库。
以下是连接mysql数据库的数据源配置:
- <Resource
- name="jdbc/test"
- type="javax.sql.DataSource"
- password="bb"
- driverClassName="com.mysql.jdbc.Driver"
- maxIdle="2"
- maxWait="50"
- username="root"
- url="jdbc:mysql://localhost:3306/test"
- maxActive="4"/>
<Resource name="jdbc/test" type="javax.sql.DataSource" password="bb" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="50" username="root" url="jdbc:mysql://localhost:3306/test" maxActive="4"/>
(2) 配置方法(tomcat)
1.第一种:
在App工程\META-INF\context.xml中配置数据源.
2.第二种
配置数据源.
3.第三种
在Tomcat目录\conf\server.xml 中配置数据源,
然后App工程下的context.xml(或者在Tomcat目录\conf\localhost\工程名.xml)链接数据源:
<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>
4.第四种
在Tomcat目录\conf\context.xml中配置数据源。
第一,二种是是app工程独有数据源配置方式。
第三,四种是全局数据源配置方式。
(3) 通过JNDI取数据源
- Context initContext = new InitialContext();
- Context envContext = (Context)initContext.lookup("java:/comp/env");
- DataSource ds = (DataSource)envContext.lookup("jdbc/test");
- Connection conn = ds.getConnection();
Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/test"); Connection conn = ds.getConnection();
(4) spring 访问 jndi
参考:
[url] http://jyaitangbo.blog.163.com/blog/static/538403052008112411052536[/url]
- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
- <property name="jndiName">
- <value>java:/comp/env/jdbc/test</value>
- </property>
- </bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:/comp/env/jdbc/test</value> </property> </bean>
jndi-lookup:
<jee:jndi-lookup id="simple" jndi-name="java:/comp/env/jdbc/test"> </jee:jndi-lookup>