JDBC编程和数据库连接池

JDBC编程是java web应用中最为常见的。

   1. 那么什么是JDBC呢?J

  DBC全称Java DataBase Connectivity——顾名思义,就是java语言操纵数据库连接。说白了就是java程序操作数据库,代替直接手动操作。

其实除了JDBC外还有ODBC(open DataBase Connetivity 开放式数据库互连)。它是微软开发的一套数据库应用系统接口规范。开放式在于

ODBC可以多种数据库适配性,相当于一个转换开关,需要操纵的数据库是什么,就选择相应驱动,sql就会转换成相应标准,执行。其优点是普适性强,但是效率低下,使用不方便。

而JDBC驱动则是由Oracle公司提供专门jar包 一般ojdbc14.jar,直接对数据库进行操作,方便效率高,应用广泛,


1.2.JDBC编程四部曲:

(1)加载驱动  (2)根据连接URL 建立连接获得Connection (3)获得Statement,执行语句 (4)关闭连接。

核心语句为(举例子):

String drivername = "oracle.jdbc.driver.OracleDriver";//驱动名

String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"//我的数据库url

 Class.forName(drivername);//加载驱动,方式不唯一

Connection conn = DriverManager.getConnection(url);//建立连接,获得Connection实例

Statement stmt = conn.createStatment();//获得Statement

利用stmt调用方法执行语句。。

conn.close();

1.3 注意点  需要导入ojdbc14.jar或者在环境变量中设置CLASSPATH,说明此jar包的位置;当stmt被关闭时候,对象上打开的结果集也会被关闭,容易引起操作错误,关闭conn,则会因引起关闭stmt,一般只在最后关闭conn

掌握了四部曲其实很简单。

但是在实际应用中,尤其是大应用中,对于数据库频繁断开和连接导致效率低下。更具资源共享模型,形成了数据库连接池。--------预先在缓存中放好一些连接即Connection供使用,不够就重新创建,使用完毕不直接关闭而是放入缓冲池供下次使用。

2. 数据库连接池

2.1 几个概念 maxIdle:最大空闲数 即空闲时候保持的最大连接;maxActive能够同时 存在的最大连接数。

      什么是连接?一个Connection即是一个连接

      数据库连接池如何配置?

     

1.需要Tomcat6.0,Oracle的JDBC驱动程序包(放在Tomcat/lib下)

2.配置tomcat下的conf下的context.xml文件,在之间添加连接池如下:

<Resource

name="jdbc/test"

auth="Container"

type="javax.sql.DataSource"

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@localhost:1521:orcl"

username="jcrm"

password="jcrm"

maxActive="20"

maxIdle="20"

maxWait="-1"/>

3.配置你的应用下的web.xml中的之间加入:

xml 代码

    <resource-ref>

      <description>DB Connection</description>

      <res-ref-name>jdbc/test</res-ref-name>

      <res-type>javax.sql.DataSource</res-type>

      <res-auth>Container</res-auth>

    </resource-ref>

java代码调用:

try{
   Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
out.println("ddddd<br>");
DataSource ds = (DataSource)envContext.lookup("jdbc/test");
Connection conn = ds.getConnection();
out.println("conn is:"+conn);
}catch(Exception e){
out.println(e.toString());
}

。。。

4.关于框架

框架中都用了池技术 其实本质上只是对于底层进行了类封装,并未变化。

   





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值