一 概念介绍:

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&amp;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;}}

转载于:https://blog.51cto.com/983836259/1697610

JavaWeb中连接数据库的一般方式与通过JNDI连接池的方式相关推荐

  1. 数据库基础面试题-JDBC连接池实现方式

    23.JDBC连接池实现方式?(多选题) A. 自定义连接池 B. C3P0 C. C5P0 D. DABP E. DBCP 正确答案是:ABE 数据库基础面试题-中级32题

  2. Tomcat7和mysql连接池dbcp方式的配置方法和测试

    一.设计测试用的数据库 1.新建数据库 create database testmysql; 2.新建一个用户信息数据表 create table test( username varchar(20) ...

  3. 走进JavaWeb技术世界3:JDBC的进化与连接池技术

    网络访问 随着 Oracle, Sybase, SQL Server ,DB2,  Mysql 等人陆陆续续住进数据库村, 这里呈现出一片兴旺发达的景象, 无数的程序在村里忙忙碌碌, 读写数据库,   ...

  4. C3P0连接池配置方式

    c3p0的配置方式分为三种,分别是  1.setters一个个地设置各个配置项  2.类路径下提供一个c3p0.properties文件  3.类路径下提供一个c3p0-config.xml文件 1. ...

  5. redis-稿件-python连接redis-使用连接池的方式来创建

    连接池 看看效率 性能不好 稍好一点 使用单例模式来做链接池 然后就可以了

  6. c# mysql连接字符串_c#中数据库字符串的连接几种方式

    ADO.net 中数据库连接方式(微软提供) 微软提供了以下四种数据库连接方式: System.Data.OleDb.OleDbConnection System.Data.SqlClient.Sql ...

  7. ADO.NET中在C/S模式中使用的连接池

    前几天同事问我一个问题,一种CS架构的程序,直接把SQL Server作为服务端,每个客户端直接连接数据库操作,如果客户端打开的数量过多时SQL Server的连接数将会特别高,数据库端形成性能瓶颈, ...

  8. ado.net mysql 连接池_ADO.NET中SQL Server数据库连接池

    实际上,大多数应用程序仅使用一个或几个不同的连接配置. 这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭. 为了使打开的连接成本最低,ADO.NET 使用称为连接池的优化方法. 连接池减少 ...

  9. Tomcat中设置数据源和连接池

    对于大型网站来说,信息查询的次数会非常多,每次查询都需要这样的过程:加载驱动程序.创建连接.创建语句对象.执行SQL语句.关闭这些对象.这样使得每一个用户访问的时候都需要服务器做出相应,这样的话服务器 ...

最新文章

  1. Go 知识点(16)— 将枚举值转换为字符串
  2. 深入理解计算机系统——系统级I/O
  3. android背景图拉伸,Android使背景图像不拉伸它指定的视图_android_开发99编程知识库...
  4. matlab用socket线程发送数据,使用Python Twisted和Autobahn从Matlab通过WebSocket发送JSON数据...
  5. 数据库以及表的基本操作
  6. 天猫整站SSM-分页-limit(做个人学习笔记整理用)
  7. C++ 之 转义字符
  8. 2019-06-02 15:27:20
  9. python一次性输入多个数_python如何利用input函数输入多个参数?
  10. ORA-01092解决一例
  11. ubuntu mysql 编译_Ubuntu下mysql编译安装
  12. Python请求外部POST请求,常见四种请求体
  13. stm32与计算机串口通信,STM32串口通信协议
  14. 单片机c语言讲解,单片机C语言基础知识讲解.ppt
  15. 电子电路基础 (14)——稳压电源的工作原理分析
  16. 如何处理Git中没有小绿勾的问题
  17. disruptor框架为什么不流行_五笔输入法那么厉害,为什么现在不流行了?
  18. 浅谈微分求导+泰勒展开+生成函数
  19. Vysor使用——用电脑操作手机 无需Root
  20. 搜索导航HTML,CSS 带搜索导航栏的示例代码

热门文章

  1. HDU 4286 Data Handler [栈,双端队列]
  2. 前端中会用到的设计模式之单一职责原则
  3. 解读微软开源MMLSpark:统一的大规模机器学习生态系统
  4. [PA2014]Pakowanie
  5. 创业公司如何做数据分析(一)开篇
  6. HDU 3157 Crazy Circuits(有源汇上下界最小流)
  7. SQL2008修改并保存表结构时报错的解决(阻止保存要求重新创建表的更改)
  8. Csharp: 拼音转汉字字符搜索字符串
  9. ubuntu系统初始化
  10. 正则表达式:元字符,量词