JAVA_连接池、DataSource、JNDI
2016-07-10 23:16
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()取得。
4、基于Tomcat利用DataSource
1)JDBC驱动配置
直接利用JDBC编程的话,JDBC驱动放在Web app的WEB-INF/lib下就可以了。
利用DataSource的话,JDBC需要放在app服务器的类目录下:
<Tomcat安装目录>/lib
2)修改context.xml文件
在Tomcat登录DataSource有很多办法,在context.xml里追加<Resource>是最简单的。
文件: <Tomcat安装目录>/conf/Catalina/localhost/<ProjectName.xml>
内容: 追加<Resource>要素
Resource要素
- name,名字。用这个名字取得DataResource
- type,类名。一般javax.sql.DataSource
- auth,认证种类,Application或Container。Application的话,需要写认证代码。
- username
- password
- driverClassName,JDBC驱动的类名
- url,JDBC的URL
例如:
<Context>
、、、、、、
<Resource name="jdbc/myds" auth="Container"
type="javax.sql.DataSource"
username="sa" password=""
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost"/>
、、、、、、
</Context>
3)使用DataSource
例子:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
**********
try{
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/名字");
Connection con = ds.getConnection();
*******
}catch(Exception e){
throw new ServletException(e);
}
}
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()取得。
4、基于Tomcat利用DataSource
1)JDBC驱动配置
直接利用JDBC编程的话,JDBC驱动放在Web app的WEB-INF/lib下就可以了。
利用DataSource的话,JDBC需要放在app服务器的类目录下:
<Tomcat安装目录>/lib
2)修改context.xml文件
在Tomcat登录DataSource有很多办法,在context.xml里追加<Resource>是最简单的。
文件: <Tomcat安装目录>/conf/Catalina/localhost/<ProjectName.xml>
内容: 追加<Resource>要素
Resource要素
- name,名字。用这个名字取得DataResource
- type,类名。一般javax.sql.DataSource
- auth,认证种类,Application或Container。Application的话,需要写认证代码。
- username
- password
- driverClassName,JDBC驱动的类名
- url,JDBC的URL
例如:
<Context>
、、、、、、
<Resource name="jdbc/myds" auth="Container"
type="javax.sql.DataSource"
username="sa" password=""
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost"/>
、、、、、、
</Context>
3)使用DataSource
例子:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
**********
try{
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/名字");
Connection con = ds.getConnection();
*******
}catch(Exception e){
throw new ServletException(e);
}
}
相关文章推荐
- Mybatis传递多个参数的解决办法(三种)
- 获取Java的MyBatis框架项目中的SqlSession的方法
- Mybatis逆工程jar包的修改和打包
- 深入浅析mybatis oracle BLOB类型字段保存与读取
- MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
- MyBatis启动时控制台无限输出日志的原因及解决办法
- 详解Java的MyBatis框架和Spring框架的整合运用
- Java的MyBatis框架项目搭建与hellow world示例
- SpringMVC整合mybatis实例代码
- Java实现mybatis批量插入数据到Oracle
- oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
- MyBatis学习笔记(二)之关联关系
- 浅析Mybatis 在CS程序中的应用
- Java Mybatis框架入门基础教程
- Windows下Java+MyBatis框架+MySQL的开发环境搭建教程
- Mybatis与Ibatis的区别
- Mybatis控制台打印Sql语句的实现代码
- Mybatis传递多个参数进行SQL查询的用法
- MyBatis学习教程(二)―如何使用MyBatis对users表执行CRUD操作
- Java+MyBatis+MySQL开发环境搭建流程详解