配置 jndi
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"/>??
<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" jndi-name="java:/comp/env/jdbc/test"> </jee:jndi-lookup>