Java web之mysql数据源

来源:互联网 发布:网络风靡的性感骚彤彤 编辑:程序博客网 时间:2024/05/27 18:17

配置这类事,有了框架之后就简单多了。一直用hibernate,再“返璞归真”,又要重温一下。

顺便记录,供日后用到之际再做参考。

有两种方案:

一、局部数据源(在web应用中配置)

在Web应用META-INF目录下,建立context.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?><Context reloadable = "true"><Resource      name="jdbc/sampleDB"      type="javax.sql.DataSource"      maxActive="40"      maxIdle="2"      username="root"      maxWait="5000"      driverClassName="com.mysql.jdbc.Driver"      password="111111"      url="jdbc:mysql://localhost:3306/bookstore"/></Context>

个别参数稍作说明:maxActive数据库连接池中维护的connection连接数;

    maxIdle即空闲连接数,与网站的并发量有关,如果网站并发量峰值为100,建议该参数设置>100;

    maxWait允许的等待连接数,与网站的负载有关,如某刻并发量为1000,连接池仅存100的连接数,将会有900的待连接,此时根据网站需求以及服务器的承载情况适当的调节。

//在业务逻辑代码中,使用jee框架提供的jndi技术,访问数据源。

使用javax.naming.Context接口的lookup()方法查找JNDI数据源 
Context context = new InitialContext();DataSource ds = (DataSource)context.lookup(      "java:comp/env/jdbc/sampleDS"); 
lookup()方法的参数是数据源名字符串,加上“java:comp/env”固定前缀。
得到了DataSource对象的引用后,就可以通过它的getConnection()方法获得数据库连接对象Connection:Connection conn=ds.getConnection();

二、全局数据源(在tomcat中配置)

全局数据源可被所有应用程序使用,在<CATALINA_HOME>/conf/server.xml文件的<GlobalNamingResources>中标签定义,定义后就可在任何的应用程序中使用。
假设我们要配置一个名为jdbc/bookstore的数据源,应该按下列步骤操作:

(1)首先在server.xml文件的<GlobalNamingResources>标签内增加下面代码:

<Resource      name="jdbc/bookstore"      type="javax.sql.DataSource"      maxActive="40"      maxIdle="2"      username="bookstore"      maxWait="5000"      driverClassName="org.postgresql.Driver"      password="bookstore"      url="jdbc:postgresql://localhost:5432/bookstore"/>

(2)在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?><Context reloadable="true">  <ResourceLink    global = "jdbc/bookstore"    name = "jdbc/sampleDS"    type = "javax.sql.DataSource"/>  <WatchedResource>WEB-INF/web.xml</WatchedResource></Context>

引用方式与方案一相同。

0 0
原创粉丝点击