Tomcat7配置DataSource数据源

在用Mahout做推荐引擎,用到数据库连接池,在eclipse下,遇到配置问题,其实很简单,但花了不少时间,做个笔记

 

配置连接池

将以下内容保存(相应位置做相应修改)为context.xml(自己新建),放在web项目下的META-INF文件夹下:

<?xml version="1.0" encoding="UTF-8"?>

<Context>
    <Resource name="jdbc/movie" auth="Container" type="javax.sql.DataSource"
        username="root" password="123456" driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/Recommend" maxActive="15" maxIdle="7"
        defaultTransactionIsolation="READ_COMMITTED" validationQuery="Select 1" />
</Context> 

 

name     指定Resource的JNDI名字
auth     指定管理Resource的Manager,它有两个可选值:Container、Application
type     指定Resource所属的Java类名
username     指定连接数据库的用户名
password     指定连接数据库的口令
driverClassName     指定连接数据库的JDBC驱动程序
url              指定连接数据库的URL
maxActive     指定数据库连接池中处于活动状态的最大连接数目,0表示不受限制
maxIdle     指定数据库连接池中处于空闲状态的最大连接数目,0表示不受限制
defaultTransactionIsolation 连接池创建的连接的默认的TransactionIsolation状态
validationQuery    SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录

 

 代码中引用连接池:

public class DBUtil {

    private static DataSource ds;

    public static void createDataSource() throws Exception {
        try {
            Context context = new InitialContext();
            ds = (DataSource) context.lookup("java:comp/env/jdbc/movie");
       if (ds == null) { System.out.println(ds.toString()); Thread.sleep(2000); ds = (DataSource) context.lookup("java:comp/env/jdbc/movie"); if (ds == null) { throw new Exception("get datasource failed!"); } } } catch (NamingException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }

 

 

 

posted @ 2015-04-20 11:54  tinylcy  阅读(822)  评论(0编辑  收藏  举报