mysql jndi配置_Tomcat JNDI连接池配置

对于线上应用,我们通常将数据库连接交给容器,比如tomcat容器,那么开发者只需要通过JNDI的方式获取dataSource即可,不需要再关注数据库地址、密码等敏感信息,这样我们就可以简单做到配置隔离。

1)在tomcat的context.xml中增加如下配置:

factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

auth="Container"

type="javax.sql.DataSource"

username="root"

password="root"

driverClassName="com.mysql.jdbc.Driver"

description="JNID MySQL database."

url="jdbc:mysql://localhost:3306/test?socketTimeout=30000&charsetEncoding=utf-8"

maxTotal="256"

maxIdle="10"

removeAbandoned="true"

validationQuery="SELECT 1"

maxWaitMillis="30000"

removeAbandonedTimeout="300"

testOnBorrow="true"

testOnReturn="true"

defaultAutoCommit="true" />

2)增加jar

因为tomcat下或许没有相关的JDBC Connector的jar,比如mysql,此时我们需要将mysql Driver的jar复制到tomcat的lib目录下。

3)在spring中使用JNDI引用方式:

java:comp/env/jdbc/localDB

对于tomcat容器而言,我们倾向于使用tomcat-jdbc-pool,官方宣称性能相对于其他pool而言更加优秀,而且它与dbcp的参数配置几乎一样,非常便于配置。不过我们可能需要将jdbc链接jar也copy到tomcat的lib目录下,否则将无法启动。

对于jdbc的url中配置,需要注意,需要将";"使用“&”转义,否则将无法正常启动;我也遇到了一个非常奇怪的错误“The reference to entity "characterEncoding" must end with the ';' delimiter”,这个错误的解决办法就是“characterEncoding=UTF-8”参数作为url的最后一个参数即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值