• eclipse下jdbc数据源与连接池的配置及功能简介


      今天在做四则运算网页版的时候遇到了一个困惑,由于需要把每个产生的式子存进

    数据库,所以就需要很多次重复的加载驱动,建立连接等操作,这样一方面写程序不方便,加大了程序量,另一方面,还有导致数据库的性能急剧下降,那么怎么解决这个问题呢?

      我所学到的方法就是通过JDBC数据源和连接池的方式来解决这个问题。利用DataSource来建立数据库的连接不需要加载JDBC驱动,也不需要DriverManager类,通过向一个JNDI服务器查询来得到DataSource对象,然后调用DataSource对象的getConnection()方法来建立数据库的连接。下面代码是一个使用DataSource来建立数据库的连接的实例:

     

    //创建连接和语句对象
    Connection conn=null;
    Statement stmt
    =null;
    try{ Context ctx=new InitialContext();
         //javax.naming.Context接口定义了将对象和名字绑定,
         //以及通过名字查询对象的方法lookup()。
    DataSource ds
    =(DataSource)ctx.lookup("java:comp/env/jdbc/calculation"); conn=ds.getConnection(); stmt=conn.createStatement(); String sql="insert into biaodashi values('"+result+"')"; stmt.execute(sql); stmt.close(); conn.close(); } catch(Exception e){ System.out.println(e); }

     

      下面介绍一下连接池技术:

    连接池技术预先建立多个数据库连接对象,然后将连接对象保存到连接池中,党客户请求到来时,从池中取出一个连接对象为客户服务,当请求完成后,客户程序调用close()方法,将连接对象放回池中。

      那么,那么在eclipse下怎么使用这项技术呢,首先就得配置JDBC数据源:

    1.打开一个web工程,在webContent目录下的META-INF目录下新建一个叫context的xml文件,

     

     

    2.打开context.xml文件,以下是context.xml的完整内容(可以直接复制粘贴到你的context.xml文件里(*代表的是自己根据自己的实际情况填写)):

     

    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/*" reloadable="true">
        <!-- 配置数据源 -->
        <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100"
        maxldle="30" maxWait="10000" name="jdbc/*" password="****" type="javax.sql.DataSource"
        url="jdbc:mysql://localhost:3306/*?autoReconnect=true" username="root"/>
    </Context>

     

    这里需要对以上的配置文件进行基本的解释说明:

    Context path="/*",这是虚目录,等于给你真正的数据源文件起了一个别名,*可以随便命名;

    name="jdbc/*",这是指定资源相对于java:comp/env 上下文的JNDI名,*可以随便命名,但是要记住,下面连接数据库的时候要用。

    password=“****”是你的数据库密码。

    url="jdbc:mysql://localhost:3306/*?autoReconnect=true"

    为指定连接数据库的URL。

    (只需要把*号部分换成你数据库的名字即可,其余部分可以不动。)

      

      接下来就是web.xml文件的配置:

    1.打开web.xml文件,在<web-app></web-app>之间添加如下代码:

    (可以直接复制粘贴到你的web.xml文件里<web-app></web-app>之间(*代表的是自己根据自己的实际情况填写))

    <resource-ref>
        <description>MySQL DBCP</description>
        <res-ref-name>jdbc/*</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>

     这里<res-ref-name></res-ref-name>之间的内容代表的就是上面配置Context.xml文件里name属性的值。

     

    至此,eclipse下JDBC数据源与连接池的配置就弄好了,这个时候最上面的那个实例就可以正常运行了。

  • 相关阅读:
    Linux 打包文件 及 备份数据库
    YII事务
    MySQL两种存储引擎: MyISAM和InnoDB 简单总结
    mysql锁表查询和解锁操作
    Yii+MYSQL锁表防止并发情况下重复数据的方法
    B/S和C/S的区别及应用【转】
    Yii2.0的乐观锁与悲观锁
    【事务】脏读、不可重复读、幻读解释
    利用非阻塞的文件排他锁
    自定义实例化class
  • 原文地址:https://www.cnblogs.com/haojun/p/6657653.html
Copyright © 2020-2023  润新知