JavaWeb中连接数据库的一般方式与通过JNDI连接池的方式
2015-09-23 20:34
441 查看
一 概念介绍:
1、连接池
Connection的取得和开放是代价比较高的处理,解决这个问题的方法是连接池。
连接池就是事先取得一定数量的Connection,程序执行处理的时候不是新建Connection,而是取得预先准备好的Connection的使用权。
2、DataSource
提供连接池机能的技术叫DataSource。 Javax.sql.DataSource
一般web服务器会提供。比如Tomcat5.5。
DataSource可以通过new来取得,但通常是通过 JNDI 用 lookup 取得。
3、JNDI (Java Naming and Directory Interface)
Java 命名和目录服务接口(Java Naming and Directory Interface,JNDI)。
命名服务: 可以类比为Session属性的Map的高级版。实现指定名字的对象的,取得和登录。一般Web服务器会提供。
目录服务: 和命名服务类似,但是对象的管理是层次性的。
在命名服务里登录的对象,可以用lookup()取得。
(PS:来源:http://www.cnblogs.com/nliao/p/3191201.html)
二 最基本的配置jdbc的方式:
三 通过JNDI连接池技术来配置jdbc
1 (在项目名)/WebContent/WEB-INF/ 新建 context.xml,具体内容为:
2 在web应用下的 web.xml 增加一个节点(这一步可以省略,这里配置主要是可以使相关配置信息更加稳定)
3 配置数据库连接方法类:
1、连接池
Connection的取得和开放是代价比较高的处理,解决这个问题的方法是连接池。
连接池就是事先取得一定数量的Connection,程序执行处理的时候不是新建Connection,而是取得预先准备好的Connection的使用权。
2、DataSource
提供连接池机能的技术叫DataSource。 Javax.sql.DataSource
一般web服务器会提供。比如Tomcat5.5。
DataSource可以通过new来取得,但通常是通过 JNDI 用 lookup 取得。
3、JNDI (Java Naming and Directory Interface)
Java 命名和目录服务接口(Java Naming and Directory Interface,JNDI)。
命名服务: 可以类比为Session属性的Map的高级版。实现指定名字的对象的,取得和登录。一般Web服务器会提供。
目录服务: 和命名服务类似,但是对象的管理是层次性的。
在命名服务里登录的对象,可以用lookup()取得。
(PS:来源:http://www.cnblogs.com/nliao/p/3191201.html)
二 最基本的配置jdbc的方式:
import java.sql.Connection; import java.sql.DriverManager; public class DbConn { private static String driver = "com.mysql.jdbc.Driver"; private static String url = "jdbc:mysql://127.0.0.1:3306/onlinefriend?useUnicode=true&characterEncoding=utf-8"; private static String user = "root"; private static String passwd = "root"; public static Connection getConnection(){ try { //加载驱动 Class.forName(driver); //连接数据库 Connection conn = DriverManager.getConnection(url,user,passwd); return conn; } catch (Exception e) { e.printStackTrace(); } return null; } }
三 通过JNDI连接池技术来配置jdbc
1 (在项目名)/WebContent/WEB-INF/ 新建 context.xml,具体内容为:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> <Context> <Resource name="jdbc/onlinefriend" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/onlinefriend?useUnicode=true&characterEncoding=utf-8" username="root" password="root" maxActive="100" maxIdle="30" maxWait="10000" /> </Context>
2 在web应用下的 web.xml 增加一个节点(这一步可以省略,这里配置主要是可以使相关配置信息更加稳定)
<resource-ref> <description>DBConn</description> <res-ref-name>jdbc/onlinefriend</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
3 配置数据库连接方法类:
import java.sql.Connection; import javax.naming.InitialContext; import javax.sql.DataSource; public class DbConn { public static Connection getConnection(){ try { InitialContext context = new InitialContext(); DataSource dSource = (DataSource) context.lookup("java:comp/env/jdbc/onlinefriend"); Connection conn = dSource.getConnection(); return conn; } catch (Exception e) { e.printStackTrace(); } return null; } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- JSP/PHP基于Ajax的分页功能实现
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树