[原创]在JAVA环境下建立数据库连接池

在weblogic环境中,通过连接池访问数据库  在weblogic环境中,通过连接池访问数据库       使用java编写访问数据库的程序,如果web服务器为weblogic,则可以通过连接池访问数据库。更或者说是利用了java的JNDI技术,关于此项技术可以通过jdk文档了解。       本文主要谈谈weblogic中连接池的设置和JNDI Name的关联指定,以及相应代码的编写。       在weblogic上部署数 阅读详情

                                                                                   作者:bluesky35(蓝天)

开发环境: Windows2000 + Eclipse3.0 + Tomcat4.1.27 + Oracle9i

1.首先在Tomcat下进行配置
<Context path="/tomcattry" reloadable="true" docBase="D:/eclipse3/workspace/tomcattry" workDir="D:/eclipse3/workspace/tomcattry/work/org/apache/jsp">
  <Resource name="jdbc/wapOracle" auth="Container"
        type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/wapOracle">       
   <parameter>
     <name>factory</name>
     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
   </parameter> 
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:@192.168.0.1:1521:oracle</value>  
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>20</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>10</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>1000</value>
    </parameter>
    <parameter>
      <name>removeAbandoned</name>
      <value>true</value>
    </parameter>
    <parameter>                     
      <name>username</name>          
      <value>abc</value>
    </parameter>
    <parameter>
      <name>logAbandoned</name>
      <value>true</value>
    </parameter>
    <parameter>
      <name>removeAbandonedTimeout</name>
      <value>60</value>
    </parameter>
    <parameter>
      <name>password</name>        
      <value>123</value>
    </parameter>
  </ResourceParams>
</Context>

其中maxActive为最大连接数

Servlet代码如下:
package Sampleservlet;

import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class servlet extends HttpServlet {

 protected void doPost(
  HttpServletRequest request,
  HttpServletResponse response)
  throws ServletException, IOException {

  //DataBean sample = new DataBean();
  String txtname = request.getParameter("txtname");
  String txtpassword = request.getParameter("txtpassword");
  PrintWriter out = response.getWriter();

     try{
   boolean loginSuccessd = false;
      String url_  = "192.168.0.1:1521:oracle";
      String id_ = "abc";
      String pass_ = "123";
      Connection conn = null;
      Statement stmt = null;
      
         Context initContext = new InitialContext();
         Context envContext = (Context) initContext.lookup("java:/comp/env");
         DataSource ds = (DataSource) envContext.lookup("jdbc/wapOracle");      
         conn = ds.getConnection();
   stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
   ResultSet res = stmt.executeQuery("select * from test");
   while(res.next()){
    String usr = res.getString("USERNAME");
    String pwd = res.getString("PASSWORD");
    if(usr!=null && usr.equals(txtname.toString()) && pwd.equals(txtpassword.toString())){
     loginSuccessd = true;
     break;
    }
   }
   
   if(loginSuccessd == true){
    out.println("Welcome!!!");
   }else{
    out.println("Username or Password is not correct");
   }
   //request.setAttribute("beanobject", sample);
     } catch (NamingException ne) {
            System.out.println("Initial DataSource error.");
            ne.printStackTrace();
        } catch (SQLException e) {
         System.out.println("ORACLE: " + e);
            e.printStackTrace();
            out.println("Connection Full!");
        }
    }
}

Bean中代码如下:
package Sampleservlet;

public class DataBean {
 private String username = "";
 private String password = "";
 
 public String getUserName(){
  return this.username;
 }

 public void setUserName(String username){
  this.username = username;
 }
 
 public String getPassword(){
  return this.password;
 }

 public void setPassword(String password){
  this.password = password;
 }
}

Comming.html如下:
<HTML>
<HEAD>
 <TITLE>Comming</TITLE>
 <META http-equiv="Content-Type" content="text/html; charset=shift_jis">
</HEAD>
<BODY>
<center>
Login
<form action="servlet" method="post">
 USERNAME  <input type="text" name="txtname" value="" />
 <br>
 PASSWORD  <input type="text" name="txtpassword" value="" />
 <br>
 <input type="submit" value="Login" />
</form>
</center>
</BODY>
</HTML>

Web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "
http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
 <!-- Servlet -->
 <servlet>
  <servlet-name>servlet</servlet-name>
  <servlet-class>Sampleservlet.servlet</servlet-class>
 </servlet>

 <!-- Mapping -->
 <servlet-mapping>
  <servlet-name>servlet</servlet-name>
  <url-pattern>/servlet</url-pattern>
 </servlet-mapping>

  <resource-ref>
    <description>Oracle Datasource example</description>
    <res-ref-name>jdbc/wapOracle</res-ref-name>          
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

</web-app>
以上整个过程就是从comming.html中输入用户名和密码,然后调用servlet通过数据库连接池连接数据库进行验证,大家试一下吧^_^

基于Flink的风控系统 可以使用Flink-Stream进行实时数据流的检测和处理,或者使用Flink-Kafka集群进行数据转发和存储,然后使用Flink-Table进行数据表的查询和分析。在Flink中,可以使用Flink-Stream进行数据流的处理,或者使用Flink-Kafka进行Kafka数据流的消费和处理。Flink的运行时本身也支持迭代算法的执行。可以使用Flink-Stream进行实时数据流的检测和处理,或者使用Flink-Kafka集群进行数据转发和存储,然后使用Flink-Table进行数据表的查询和分析。 阅读详情

相关推荐

基于 openEuler 24.03 LTS 源码编译安装 Zabbix 7.4

Zabbix是一款开源的企业级分布式监控系统,支持网络、服务器、应用等多种IT资源的监控。核心功能包括数据采集、告警通知、可视化展示等,采用Server/Agent架构,支持多种操作系统。本文详细介绍了在openEuler 24.03系统上部署Zabbix 7.4.2的完整流程,包括环境准备、MySQL配置、PHP/Apache安装、Zabbix编译安装等步骤,为构建企业级监控系统提供了实践指导。

广然笔记 1142

Java-数据库连接池

1)预先在缓冲池中放入一定数量的链接,当需要建立数据库连接时,只需要从“缓冲池”中取出,使用完毕后再“放回”;2)数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立;3)当应用程序向连接池请求的连接数量超过最大连接数量时,这些请求将被加入到等待队列中。

Ego_Ekko的博客 6291

spr-bmp_天堂1_天堂1模拟器发放_

可以转换天堂1spr转为bmp格式文件希望对大家有用途

java 创建自定义数据库连接池

设计思路: 1.连接实例 package com.example.deno.connectionPoolDemo; import java.sql.Connection; public class ConnectionExample { private boolean busy = true;//判断是否可用 private boolean extra;//是否是额外连接 private...

weixin_44700387的博客 2089

Java中实现数据库连接池

大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在Java应用程序中,有效管理数据库连接是提高性能和资源利用率的关键。数据库连接池是一种重要的设计模式,它可以帮助开发人员避免频繁地创建和销毁数据库连接,从而提高应用程序的响应速度和效率。本文将探讨如何在Java中实现数据库连接池,以及一些最佳实践和性能优化策略。

微赚开发者技术分享博客 581

Druid连接池基本使用

Druid连接池使用 导入jar包 druid-1.1.9.jar 下载地址 (注意不要忘记导入数据库驱动jar包) 定义配置文件 (druid.properties)

X_m_c的博客 1489

Java搭建数据库连接池【详细】

家人们,今天给你们讲了这么多关于 Java 数据库连接池的事儿,从为啥要用它,到它的工作原理、怎么解决关键问题,还有主流的连接池介绍以及实战代码。希望你们能明白,这数据库连接池Java 程序和数据库交互的时候可太重要了,就像桥梁的桥墩,支撑着整个交通。要是你们以后也捣鼓 Java 编程,不妨动手试试,根据自己的项目需求选一个合适的连接池,把代码写一写,多实践实践,我相信你们的开发效率肯定能大大提升,以后遇到数据库连接的问题,也都能轻松搞定啦!

潜意识Java的博客 1784

JAVA之JDBC数据库连接池(超详细介绍)

JDBC数据库连接池一、JDBC数据库连接池的必要性二、数据库连接池技术三、多种开源的数据库连接池3.1 C3P0数据库连接池3.2 DBCP数据库连接池3.3 Druid(德鲁伊)数据库连接池 一、JDBC数据库连接池的必要性 1、在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: (1)在主程序(如servlet、beans)中建立数据库连接 (2)进行sql操作 (3)断开数据库连接 2、这种模式开发,存在的问题: (1)普通的JDBC数据库连接使用 DriverManager 来

weixin_43520450的博客 3万+

什么是数据库连接池?为什么使用数据库连接池数据库连接池工作原理

我们安装完Yarn后,可以在浏览器中通过http://ip:8088来访问Yarn的WEB UI,如下图:

wj的博客 1万+

Druid数据库连接池

什么是数据库连接池数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出来的.数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。如下图所示: 数据库连接池在初始化时将创建一定数量的...

zhiguo98的博客 2万+

【DataBase】数据库连接池

本文为网上两篇博客内容的结合以及自己的一些理解: 参考博客一:MySql数据库连接池专题 参考博客二:JDBC之数据库连接池 文章目录一、什么是数据库连接池二、传统的连接机制与数据库连接池的运行机制区别三、 技术背景四、 解决的问题以及需要考虑的因素五、使用数据库连接池的关键点1、并发问题2、事务处理3、连接池的分配与释放4、连接池的配置与维护六、使用数据库连接池的优势和其工作原理1、连接池的...

qgnczmnmn的博客 541

Java语言的数据库连接池

数据库连接池Java应用中起着至关重要的作用,通过合理的使用和配置,可以有效提升应用的性能和稳定性。在选择数据库连接池时,开发人员应根据实际需求,考虑项目的规模、并发量、维护成本等多种因素,选用合适的连接池实现。同时,定期的监控和性能调整也是确保系统健康运行的必要措施。希望通过本文的介绍,能够帮助开发人员深入理解数据库连接池的原理与实践,为项目的成功建设贡献一份力量。

2501_91241494的博客 1656

Java基础之数据库连接池

概念 何为池? 池(Pool)技术在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销。这里所说的池是一种广义上的池,比如数据库连接池、线程池、内存池、对象池等。其中,对象池可以看成保存对象的容器,在进程初始化时创建一定数量的对象。需要时直接从池中取出一个空闲对象,用完后并不直接释放掉对象,而是再放到对象池中以方便下一次对象请求可以直接复用。其他几种池的设计思想也是如此,池技术的优势是,可以消除对象创建所带来的延迟,从而提高系统的性能...

乔巴俊儿~~的博客 3701

数据库连接池

数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠。需要自己创建连接和销毁连接,这样是比较消耗时间,资源等。

a13641376265的博客 1498

java数据库连接池看这篇就够了

概述   数据库连接池是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。那么其中的运行机制又是怎样的呢?今天主要介绍一下数据库连接池原理和常用的连接池。 一、为什么要使用连接池   数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。   数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接

zhanglongfei1016的专栏 8305

java数据库连接池

数据库连接池

分享前端开发工程师的一些日常生活、前端知识点、职业发展、对一些问题的看法、感悟等等 754

Java高级编程!一文手把手带你实现自己的数据库连接池

数据库连接池使用了池化的技术,可以复用数据库连接,减少了重复开启连接和关闭连接带来的性能损耗,减轻了数据库的压力,提高了服务器的处理效能。本文将带领读者从零开始使用java从零实现一个数据库连接池

greatming666的博客 2806

Java里怎么写一个数据库连接池

Java创建数据库连接池通常不建议从零开始,因为这涉及线程安全、资源管理和性能优化等复杂问题。业界有成熟且经过广泛测试的库,如HikariCP、C3P0和DBCP等。这里以HikariCP为例,展示如何在Java中配置和使用数据库连接池。通过上述步骤,你可以使用HikariCP在Java中轻松地创建和管理数据库连接池。HikariCP是一个高性能的连接池实现,它在性能和资源管理方面都优于传统的DBCP和C3P0。在你的项目中添加HikariCP的依赖。在你的Java代码中配置HikariCP。

2301_79505693的博客 692

数据库连接池创建

首先,确保有一个Connect接口,并且这个接口扩展了接口。//实现java.sql.Connection接口。

2301_81937222的博客 875

Java数据库连接池

概念:是一个容器(在Java中就是一个集合),存放数据库连接的容器。当系统初始化好之后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。 不像之前的代码一样,每次开始前都建立一个连接,然后结束时close,释放连接。 好处:节约资源、高效。 实现: 标准接口:DataSource javax.sql包下的。getConnection方法. 一般由数据库厂商来实现。 两种数据库连接池实现技术C3P0、Druid。 ...

芋泥啵啵月亮的博客 1518

java mysql创建数据库连接池_Java数据库连接池

一、关于数据库连接池一个普通的java程序,要查询数据库的数据,基本流程是这样的:查询数据基本流程.jpg可以看到,进行一次查询,要进行很多次网络交互,这样的缺点是:网络IO多;响应时间长,导致QPS降低;频繁创建连接和关闭连接,浪费数据库资源,影响服务器性能。什么是数据库连接池?顾名思义,就是一个池子,里面放着数据库连接,应用服务需要的时候就去池子里面拿,用完之后归还给池子。数据库连接池负责分配...

weixin_36383052的博客 1121
上一篇: [原创]Java中,使用JDBC访问Oracle与SQL Server时的区别
下一篇: [原创]手把手配置Hibernate环境(JBuilderX版)
bluesky35
博客等级 码龄25年 13粉丝 19原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值