文档章节

使用druid配置jndi

Iverson58
 Iverson58
发布于 2015/12/19 17:26
字数 245
阅读 118
收藏 1


1.druid.jar、mysql.jar放到%tomcat_home%\lib下

2.%tomcat_home%\conf下配置context.xml配置如下

<Context>

<Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />


<Resource 

         name="jdbc/MysqlDataSource"

         factory="com.alibaba.druid.pool.DruidDataSourceFactory"

         auth="Container"

       type="javax.sql.DataSource"

       driverClassName="com.mysql.jdbc.Driver"

      url="jdbc:mysql://localhost:3306/basicpool?useUnicode=true&amp;characterEncoding=utf-8"

        username="root"

     password="root"

        maxActive="50"

      maxWait="10000"

         removeabandoned="true"

       removeabandonedtimeout="60"

        logabandoned="false"

filters="stat"/>


</Context>


如果是jdbc获取jndi数据源

/**

 * @ClassName: JdbcUtil

 * @Description: Jdbc连接工具类

 * @author  Iverson

 *

 */

public class JdbcUtil {


    private static final String MYSQL_DB_JNDINAME="java:comp/env/jdbc/MysqlDataSource";

private static DruidDataSource dsMysql;

static {

   try {

                //1.初始化名称查找上下文

       Context ctx= new InitialContext();

           //2.通过JNDI名称知道到DataSource

       dsMysql=(DruidDataSource) ctx.lookup(MYSQL_DB_JNDINAME);

       

        } catch (Exception e) {

        e.printStackTrace();

        }

}


/**

* 获取connection

* @return 

* @throws Exception

*/

public static Connection getConnection()throws Exception{

   return dsMysql.getConnection();

}

}



如果是spring配置

<!-- 引入外部文件 -->

<context:property-placeholder location="classpath:jdbc.properties" />

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName" value="${jndiName}"/>

</bean>

<!-- 事务 -->

<bean id="transactionManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"/>

</bean>

<!-- 开启事务注解 -->

<tx:annotation-driven transaction-manager="transactionManager"/>


jdbc.properties

jndiName=java:comp/env/jdbc/MysqlDataSource




© 著作权归作者所有

Iverson58
粉丝 2
博文 47
码字总数 56146
作品 0
天津
私信 提问
说说如何通过 JNDI 让 Tomcat 使用 Druid 连接池

JNDI(Java Naming and Directory Interface,Java 命名和目录接口 ) 是 SUN 公司提供的一种标准的 Java 命名系统接口, 它提供了统一的客户端 API ,通过不同的访问者来实现 JNDI 服务供应接口...

deniro
07/21
0
0
elastic-job-lite频繁报主键重复错误

今天公司其他项目组使用elastic-job-lite时,发现一只报主键重复。根据错误信息发现是执行JobEventRdbStorage类的insertJobExecutionEventWhenSuccess方法报错。 具体错误信息如下: com.my...

开源中国总书记
2017/12/27
725
5
使用Druid但jndi报错

@wenshao 你好,想跟你请教个问题: 现在我使用springmvc配置数据源用的是mybatis但配置之后有异常,这个是配置文件 com.hailang.service.* 报[org.springframework.jndi.JndiLocatorDelega...

hailang2013
2013/10/21
3.1K
0
主流Java数据库连接池比较及前瞻

本文转载自微信公众号「工匠小猪猪的技术世界」 主流数据库连接池 常用的主流开源数据库连接池有C3P0、DBCP、Tomcat Jdbc Pool、BoneCP、Druid等 C3p0: 开源的JDBC连接池,实现了数据源和JND...

渣渣(Charles)
2018/04/30
0
0
使用Druid解决Oracle Thin驱动中文乱码

问题 使用Oracle Thin驱动比较麻烦的一个问题是容易出现中文乱码,且Thin驱动不像MySQL驱动那样能在链接字符串中指定编码。 2. 思路 最直接的解决方案是对所有数据库中读出的字符串进行编解码...

joshuazhan
2013/03/16
4K
4

没有更多内容

加载失败,请刷新页面

加载更多

面试官,Java8 JVM内存结构变了,永久代到元空间

在文章《JVM之内存结构详解》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试...

程序新视界
25分钟前
15
0
读书笔记:深入理解ES6 (八)

第八章 迭代器(Iterator)与生成器(Generator) 第1节 循环语句的问题   在循环、多重循环中,通过变量来跟踪数组索引的行为容易导致程序出错。迭代器的出现旨在消除这种复杂性,并减少循...

张森ZS
25分钟前
13
0
Elasticsearch 实战(一) - 简介

官腔 Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 基本等于没说,咱们慢慢看 1 概述 百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜...

JavaEdge
29分钟前
13
0
【jQuery基础学习】11 jQuery性能简单优化

本文转载于:专业的前端网站➦【jQuery基础学习】11 jQuery性能简单优化 关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的。如果这样不能直接找到,也可以用find方法继...

前端老手
38分钟前
12
0
重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

导读:2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Open Application Model (OAM...

阿里云官方博客
41分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部