tomcat配置jdbc连接池

1.为什么要使用jdbc连接池呢

        使用jdbc连接数据库时,drivermanager得到数据库连接对象需要与数据库进行多次认证,影响到了应用系统的性能,那么我们应当尽量减少不停创建新的数据库连接,接着,连接池这个概念就来了。

2.这个连接池是个什么东东呢?

        首先,上面提到我们要尽量减少与数据库的连接操作,当然,连接是肯定要建立的,为什么不预先建立多个连接,然后用一个对象统一管理呢?然后大家一起使用,需要的时候,直接向那个对象(DataSource)要就行了。

3.连接池相关名词解释

最小连接数:这个是datasource对象始终与数据库保持连接的数量,当小于这个数量的连接请求时,
连接池的高效率就体现出来了,不用创建新的连接,直接引用就行。

最大连接数:当请求连接数量大于最小连接数时,多出的部分会建立新的连
接,如果再多一点,大于了最大连接数,那么请求会被阻塞,放在请求队列里等待。

最大空闲等待时间:数据库的断开并不是由开发人员控制的,当一个数据库连接空闲时,
其资源并不会马上释放,他会等待被复用直到超过最大空闲等待时间后释放。

4.在哪配置呢?

        在这里,我们用的java ee 服务器是tomcat,因此,我们找到它的配置文件%tomcathome%\conf\context.xml,配置相应地resource标签。

5.如何配置

context.xml:





            auth="Container"
            
            type="javax.sql.DataSource"
            
            username="root"
            password="root"
            
            maxIdle="30"
            
            maxWait="10000"
            
            maxActive="100"
            
            driverClassName="com.mysql.jdbc.Driver"
            
            url="jdbc:mysql://127.0.0.1:3306/oa" />

ps:需要将jdbc连接驱动放在tomcat的lib目录下。

6.数据库连接池测试

tomcat服务器中默认的命名服务注册名为:java:comp/env/+“配置名”
try {      
            //初始化查找命名空间
            Context ctx = new InitialContext();  
            //参数java:/comp/env为固定路径  
            DataSource ds = (DataSource)ctx.lookup("java:/comp/env/oa_mysqld"); 
            Connection conn = ds.getConnection();     
           //业务逻辑 
            out.println("连接成功");     
        } catch (NamingException e) {     
            e.printStackTrace();     
        } catch (SQLException e) {     
            e.printStackTrace();     
        }     

你可能感兴趣的:(java)