本文共 3611 字,大约阅读时间需要 12 分钟。
一、JNDI:
JNDI就是( Naming and Directory Inteface)java名称目录接口。
JNDI的作用:就是将资源引入到服务器中。可以将JNDI当成一个仓库。将Java对象放入到JNDI中去。
二、数据源的由来:
在java开发中,使用JDBC操作的几个步骤:
1.使用Class.forName(类的全路径名称):用于加载数据库驱动程序。
2.获得数据库的Connection连接对象。DriverManager.getConnection()。
3.操作数据库:查询数据库,或者更新数据库内容,
4.关闭数据库连接:使用close方法。
注意:每次获取一个数据库连接的要经过这4个步骤,但是其中【1】,【2】,【4】是所有操作数据库的公共操作,只有【3】是操作数据库的不同步骤。并且获得数据库的connection对象和关闭数据库的连接都是要一定的时间。造成性能较差。
如果我们一开始就有已经创建好了多个connection对象,放在一个公共地方,当有一个连接数据库的请求,就从这个公共地方中取出一个connection,操作数据库,操作完成数据库,不关闭connection,而是放入到公共仓库中去,这就出现了数据库连接池的东西,就是存放多个Connection对象的地方。
三、使用JNDI配置数据库的连接池:有两种方式:(全局的JNDI配置和非全局的JNDI配置)
(一)非全局的JNDI配置:他只针对某一个Web项目的数据源的配置
1.导入要链接数据库的jar包文件。
例如sqlserver导入:sqljdbc4.jar包
oracle导入:ojdbc14.jar包
导入:mysql-connector-java-5.0.8.jar包
2.在JNDI中配置数据库的连接池:
在WEB项目中的的META-INF中创建一个context.xml文件。用于设置数据库的连接池信息
3.在web.xml文件中进行配置( 可有可无 ):如果有的话: 4.如果使用Spring的情况下:在applicationContext.xml或者自己的Spring的配置文件中:导入JNDI的配置信息
//获得content.xml中JNDI配置的数据库的连接池信息。jndi-name必须与JNDI中的name值一样
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/sqlserver" />
//使用JdbcTemplate操作数据库。
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean>
在java文件中使用IOC得到jdbcTemplate对象。最后使用JdbcTemplate操作数据库
5.如果不使用的话:可以在java文件中使用:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");//固定,不需要修改
DataSource ds = (DataSource)envContext.lookup(jdbc/sqlserver);
(二)全局的JNDI:
1.在tomcat的安装目录下的conf下的server.xml文件中的GlobalNamingResources标签下加入(一局部JNDI在context.xml文件中的resource配
置信息)。
2.在Web项目中的META-INF下的context中配置
//global中的名字要与server.xml中的名称一样,而这里的name表示当前要使用名称。
<ResourceLink name="jdbc/sqlserver" global="jdbc/sqlserver" type="javax.sql.DataSource"/>
3.剩下的和局部JNDI一样,及第3,第4,第5直接使用就可以了,也就是将局部中的第2换成全局中的【1】,【2】.
转载地址:http://blog.csdn.net/cw_hello1/article/details/51669696