300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Tomcat数据库连接池配置

Tomcat数据库连接池配置

时间:2023-02-10 08:36:34

相关推荐

Tomcat数据库连接池配置

数据库连接池需使用数据源(Data source)的形式获取连接,数据源对象往往是以JNDI(java Naming and Directory Interface,Java命名与目录接口)提供给程序员。

1.配置连接池资源

在tomcat安装目录下webapps/conf下找到sever.xml,在<host>标签里加入如下内容

<Context path="/sims" docBase="D:/Tomcat6/webapps/sims" privileged="true"><Resource name="jdbc/sims" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sims" password="1234" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://127.0.0.1:1433"/></Context>

若是mysql数据库driverClassName="com.mysql.jdbc.Driver"

url="jdbc:jtds:sqlserver://127.0.0.1:3306"

name:表示你的连接池的名称也就是你要访问连接池的地址

auth:是连接池管理权属性,Container表示容器管理

type:是对象的类型

driverClassName:是数据库驱动的名称

url:是数据库的地址

username:是登陆数据库的用户名

password:是登陆数据库的密码

maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连

接将被标记为不可用,然后被释放。设为0表示无限制。

MaxActive,连接池的最大数据库连接数。设为0表示无限制。

maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示

无限制。

一般把maxActive设置成可能的并发量就行了

maxActive、maxIdle和maxWait参数:

maxActive是最大激活连接数,这里取值为100,表示同时最多有100个数据库连

接。maxIdle是最大的空闲连接数,这里取值为30,表示即使没有数据库连接时依然可以保持30空闲的

连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,取值-1,表示无限等待,直到

超时为止,也可取值10000,表示10秒后超时。

2.通过连接池使用JDBC

package mon;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;public class DbConnect{private static DataSource pool = null;private static DataSource mpool = null;private static int curConnNum = 0;private volatile Connection con;public static void initPool(String jndiName){System.out.print(jndiName);Connection conTest = null;if (mpool != null) return; try{Context env = new InitialContext();mpool = (DataSource)env.lookup(jndiName);conTest = mpool.getConnection();if (conTest != null) {conTest.close();}} catch (Exception e) {System.out.println("[" + Format.getDateTime() + "] db link error:");e.printStackTrace();}System.out.print("-----------over--------");}public Connection getConnection(){try{if ((this.con == null) || (this.con.isClosed())) {this.con = mpool.getConnection();this.con.setAutoCommit(true);curConnNum += 1;log.debug("dbGet con=[" + curConnNum + "]" + this.con);System.out.println("dbGet con=[" + curConnNum + "]" + this.con);}} catch (SQLException e) {this.con = null;log.error("Can not connect to database:" + e.getMessage());}return this.con;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。