首先配置:META-INF/context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" reloadable="true" crossContext="true">
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/db_name" />
</Context>
再配置:WEB-INF/web.xml:在web-app元素下
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
程序:
InitialContext ctx = new InitialContext()
Context envContext = (Context) ctx.lookup("java:comp/env")
DataSource ds = (DataSource) envContext.lookup("jdbc/TestDB")
Connection conn = ds.getConnection()
Statement stmt = conn.createStatement()
stmt.execute(“执行的SQL语句”)
stmt.close()
conn.close()
至少9个。dataSource: 要连接的 datasource (通常我们不会定义在 server.xml)
defaultAutoCommit: 对于事务是否 autoCommit, 默认值为 true
defaultReadOnly: 对于数据库是否只能读取, 默认值为 false
driverClassName:连接数据库所用的 JDBC Driver Class,
maxActive: 可以从对象池中取出的对象最大个数,为0则表示没有限制,默认为8
maxIdle: 最大等待连接中的数量,设 0 为没有限制 (对象池中对象最大个数)
minIdle:对象池中对象最小个数
maxWait: 最大等待秒数, 单位为 ms, 超过时间会丢出错误信息,-1为无限制
password: 登陆数据库所用的密码
Tomcat7.0配置连接池的步骤:
第一步:在Tomcat的配置文件Tomcat7.0\conf\context.xml中添加信息:
<Context>
<Resource
name="jdbc/drp"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="5000"
username="drp"
password="drp"
url="jdbc:oracle:thin:@localhost:1521:bjpowernode"
maxActive="4"/>
</Context>
第二步:把配置文件context.xml剪切到webRoot/META-INF中。(若是只有一个项目使用连接池的话,则剪切到使用连接池项目webRoot/META-INF中。若是多个项目都使用连接池,则不进行 *** 作第二步。)
第三步:则在程序中获得连接:
//new DBcP pool
Context ctx=new InitialContext()
//通过JNDI查找DataSource
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/drp")
conn=ds.getConnection()
其中第一步中的上下文context.xml中的参数的解析如下:
其中的name属性是数据源名称,通常采取jdbc/**.
type属性是数据源方式。
driverClassName属性是驱动程序名称。(此文中是oracle驱动程序)
username,password,数据库名称和密码
url:访问的数据库路径。其中url的内容组成解析上篇博客中已经分析——Oracle安装以及测试Oracle数据库
maxActive属性是并发连接的最大数。设置为0则无限制。
maxWait属性是等待连接的最大连接的时间。
maxIdle属性是连接池中空闲的连接的个数。
上文中的设置的 maxActive="4"说明可以最大连接的个数为4个,再建立连接,则出现异常。
而maxIdle="2"说明当关闭数据库时(不是真正的断开连接,而是归还连接池中)连接池中最大可以有空闲的连接数为2个。
若是再有建立连接,此时若连接池中没有空闲的连接,但是又没有达到maxActive并发的最大连接数,则在连接池中建立连接。
ps:有些教材Tomcat配置连接池,需要在Tomcat/lib中加入驱动包ojbc14.jar.但是自己在Tomcat7.0下配置连接池时,没有加入驱动jar包依然运行正常。
1、安装mysql,并创建数据库和数据表,并插入用户名和密码。
2、然后安装tomcat。
3、修改默认端口号为8010。
4、数据库驱动放到目录:D:\Program Files\Apache Software Foundation\Tomcat 8.0\lib。
5、修改文件tomcat-users.xmlD:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\tomcat-users.xml。
6、浏览器中输入:http://localhost:8010/testjdbc.jsp,验证tomcat能否连接mysql,testjdbc.jsp的信息如下所示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)