Tomcatc3p0配置jnid数据源2种实现方法解析

使用c3p0

导入c3p0jar包

<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
  <dependency>
   <groupId>com.mchange</groupId>
   <artifactId>c3p0</artifactId>
   <version>0.9.5.2</version>
  </dependency>

在tomcat的context.xml文件加入数据源配置

<Resource
    auth="Container"
    description="DB Connection"
    driverClass="com.mysql.jdbc.Driver"
    maxPoolSize="100" minPoolSize="2"
    acquireIncrement="2"
    name="jdbc/myDB"
    user="root"
    password="123456"
    factory="org.apache.naming.factory.BeanFactory"
    type="com.mchange.v2.c3p0.ComboPooledDataSource"
    jdbcUrl="jdbc:mysql://localhost:3306/attendance_system?characterEncoding=utf8&amp;serverTimezone=GMT%2B8" />

获取连接

protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    try {
      //创建上下文
      Context context=new InitialContext();
      //获取数据源
      ComboPooledDataSource comboPooledDataSource= (ComboPooledDataSource) context.lookup
          ("java:comp/env/jdbc/myDB");
      //获取数据库连接
      Connection connection=comboPooledDataSource.getConnection();

      if(!connection.isClosed()){
        System.out.println("已经连接成功");
      }
    } catch (NamingException e) {
      e.printStackTrace();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

使用druid

导入jar包

 <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
  <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.1.16</version>
  </dependency>

在tomcat的context.xml文件加入数据源配置

<Resource
  name="jdbc/MysqlDataSource"
  factory="com.alibaba.druid.pool.DruidDataSourceFactory"
  auth="Container"
  type="javax.sql.DataSource"
  driverClassName="com.mysql.cj.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/yl?characterEncoding=utf8&amp;serverTimezone=GMT%2B8"
  username="root"
  password="123456"
  maxActive="50"
  maxWait="10000"
  removeabandoned="true"
  removeabandonedtimeout="60"
  logabandoned="false"
  filters="stat"/>

获取连接

protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    try {
      //获取上下文对象
      Context context=new InitialContext();
      //获取数据源
      DataSource ds= (DataSource) context.lookup("java:comp/env/jdbc/MysqlDataSource");
      //获取Connection对象
      Connection connection=ds.getConnection();
​
      if(!connection.isClosed()){
        System.out.println("连接成功");
​
      }
    } catch (NamingException e) {
      e.printStackTrace();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • tomcat何时写回响应数据报的详析

    疑问的产生 这个疑问是我在写文件下载的时候产生的,我是用HttpServletResponse获取到Outputstream,然后利用OutputStream直接写数据的.当时我就想这个OutputStream是不是就是对应的Socket连接的OutputStream.即是不是的程序在用stream写的时候,数据也同时在发? Response的OutputStream把数据写到哪去? 于是我看了下HttpServletResponse的getOutputStream方法,看看它注释是怎么说的.

  • 解决Linux下Tomcat向MySQL插入数据中文乱码问题

    一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一 直接在linux上面使用insert语句插入中文,正常 2.尝试二 在tomcat配置文件server.xml中加入useBodyEncodingForURI="true",不行 3.尝试三 在tomcat配置文件server.xml中再加入URIEncoding="UTF-8",不行 4.尝

  • Nginx + Tomcat实现请求动态数据和请求静态资源的分离详解

    前言 上篇博客说明了Nginx在应用架构中的作用,以及负载均衡的思路.这篇实践一下其中的访问静态资源与访问动态资源的操作. 一.认识访问静态资源与访问动态资源的区别 静态资源:指存储在硬盘内的数据,固定的数据,不需要计算的数据. 如:图片.字体.js文件.css文件等等.在用户访问静态资源时,服务器会直接将这些资源返回到用户的计算机内. 动态资源:指需要服务器根据用户的操作所返回的数据,以及存储在数据库的数据,经过一系列逻辑计算后返回的数据. 如:请求明天的天气信息数据.请求查看账户余额. 二.

  • 在Tomcat服务器下使用连接池连接Oracle数据库

    下面介绍在Tomcat服务器下使用连接池来连接数据库的操作 一:修改web.xml文件: 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:

  • Tomcat 7-dbcp配置数据库连接池详解

    Tomcat 7-dbcp配置数据库连接池详解 原理 关于连接池,大家都晓得用来限定对数据库的连接.基本的原理是预先在缓冲池中放入一定的空闲连接,当程序需要和数据库来交互时,不是直接新建数据库连接而是在连接池中直接取,使用完成后再放回到连接池中.为什么要这样牺牲一个缓冲来存放这些原本就会使用的连接呢?在上面讲了一个好处就是可以限定连接数,这样不会造成N多的数据库连接最后宕机:额外有了这样一个连接池,也可以来监听这些连接和便于管理. 配置 1.拷贝相关的jar 要知道连接池不是用来直接操作数据库的

  • 基于Tomcat 数据源的原理、配置、使用介绍

    1.数据源的作用及操作原理 在程序代码中使用数据源是可以提升操作性能的,这种性能的提升依靠于运行的原理. 传统JDBC操作步骤 1.加载数据库驱动程序,数据库驱动程序通过CLASSPATH配置: 2.通过DriverManager类取得数据库连接对象: 3.通过Connection实例化PreparedStatement对象,编写SQL命令操作数据库: 4.数据库属于资源操作,操作完成后进行数据库的关闭以释放资源.如图所示: 对于不同的用户只有操作不同,但是对于1.2.4三个步骤很明显是一个重复

  • Android实现与Apache Tomcat服务器数据交互(MySql数据库)

    需求:Android客户端连接服务器端MySQL数据库中的内容 环境部署 服务器:apache-tomcat-8.5.9 语言版本:Java 1.8.0_101 编译环境:Eclipse android Studio 调用jar包:httpclient-4.2.5,httpcore-4.2.4 //HttpClient父类 mysql-connector-java-5.1.40-bin //用于连接mysql数据库 思路:涉及到服务器端mysql数据库安装.web应用部分开发和Android客户

  • 使用Get方式提交数据到Tomcat服务器的方法

    这篇文章将介绍向服务器发送数据,并且服务器将数据的处理结果返回给客户端,这次先介绍使用Get方式向服务器发送数据,下篇将介绍使用Post方式向服务器发送数据,需要的朋友参考下吧! 实现方式分为以下几步: 第一步:使用MyEclipse创建一个Web project,项目命名为WebProject->在src文件夹中新建一个包名为com.fyt.org的包 ->在包中新建一个Servlet,Servlet命名为LoginServlet,并在LoginServlet.Java中添加下面的代码 pa

  • 使用Post方式提交数据到Tomcat服务器的方法

    我在上一篇文章中介绍了 使用Get方式提交数据到Tomcat服务器,这篇将介绍使用Post方式提交数据到服务器,由于Post的方式和Get方式创建Web工程是一模一样的,只用几个地方的代码不同所以,我就直接介绍不同的地方,第一个不同点是,提交方式不同,所以修改LoginServlet.Java中的代码 package com.fyt.org; import java.io.IOException; import java.io.OutputStream; import java.io.Print

  • Tomcatc3p0配置jnid数据源2种实现方法解析

    使用c3p0 导入c3p0jar包 <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> 在tomcat

  • python3 反射的四种基本方法解析

    这篇文章主要介绍了python3 反射的四种基本方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 class Person(object): def __init__(self): pass def info(self): print('我是person类中的info方法') 1.getattr()方法 这个方法是根据字符串去某个模块中寻找方法 instantiation = reflect.Person()#先实例化 f = getat

  • JS图片预加载三种实现方法解析

    预加载基本概念:当页面打开图片提前加载,并且缓存在用户本地,需要用到时直接进行渲染:在浏览图片较多的网页(百度图库,淘宝京东等),可以有更好的用户体验: 一张图片的预加载 var img=new Image(); img.addEventListener("load",loadHandler); img.src="./img/1.jpg"; document.body.appendChild(img); console.log(img.width): functio

  • Java执行cmd命令两种实现方法解析

    一般java在执行CMD命令时,通常是使用Runtime.getRuntime.exec(command)来执行的,这个方法有两种细节要注意: 1.一般执行方法,代码如下,这种方法有时执行exe时会卡在那里. //一般的执行方法,有时执行exe会卡在那 stmt要执行的命令 public static void executive(String stmt) throws IOException, InterruptedException { Runtime runtime = Runtime.g

  • Linux添加静态路由两种实现方法解析

    添加路由的命令: 1.route add route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 #添加一条静态路由 route add default gw 192.168.0.1 #添加默认路由 route del -net 192.168.1.0 /24 gw 192.168.0.1 #删除一条路由 route -n #查看路由表 2.ip ro add ip ro add 192.56.76.0 /24 dev 192.168.

  • JQuery绑定事件四种实现方法解析

    jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都有哪些. jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off.在开始看他们之前 一:bind(type,[data],function(eventObject)) bind是使用频率较高的一

  • JavaScript 预解析的4种实现方法解析

    预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在内存中安排好.然后从上至下解析js语句.而且function的声明优先于var声明. 不多说,,直接上代码 正规写法: var num=10; fun(); function fun(){ console.log(num);//undefined var num=20; } 预解析里:先将变量和函数提前,如下: var num; function fun(){ var num; console.lo

  • PHP二维数组分页2种实现方法解析

    方法一: <?php $arr_click = array( array( 'clicks' => 3, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 2, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 3, 'clickDate' =>'2010-10-09' ), array( 'clicks' => 1, 'clickDate' =>'2010

  • VS中C#读取app.config数据库配置字符串的三种方法

    关于VS2008或VS2005中数据库配置字符串的三种取法 VS2008建立Form程序时,如果添加数据源会在配置文件 app.config中自动写入连接字符串,这个字符串将会在你利用DataSet,SqlDataAparter,SqlConnection等控件时如影随行地提示你让去选择,或者是新建字符串.如果要用代码的方式取得这个字符串则有三种方式: app.config内容: <?xml version="1.0" encoding="utf-8" ?&g

  • SpringBoot整合MyBatisPlus配置动态数据源的方法

    MybatisPlus特性 •无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 •损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 •强大的 CRUD 操作:内置通用 Mapper.通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 •支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 •支持多种数据库:支持 MySQL.MariaDB.Ora

随机推荐