天天看点

SqlServer数据库tomcat连接池连接

[b]一、安装JDBC Driver[/b]

将[b]数据库的驱动jar文件[/b]放至[b]{Tomcat_install}\common\lib[/b]目录下

[b]二、配置Connection Pool[/b]

[b]1.配置全局的连接池,Tomcat里的任何Web应用都能使用该配置的连接池。[/b]

在Tomcat的[b]server.xml[/b]文件中的GlobalNamingResources结点下面添加,连接池设置

<Resource

[b]name[/b]="jdbc/MSSQLDS"

[b]auth[/b]="Container"

[b]type[/b]="javax.sql.DataSource"

[b]factory[/b]="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"

[b]maxActive[/b]="100"

[b]maxIdle[/b]="30"

[b]maxWait[/b]="10000"

[b]username[/b]="sa"

[b]password[/b]="sa"

[b]driverClassName[/b]="net.sourceforge.jtds.jdbc.Driver"

[b]url[/b]="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=pubs" />

[b]注意:name为连接池的全局JNDI全称[/b]

[color=darkred][b]下面两个xml配置文件,不进行设置仍然可以连接数据源![/b][/color]

[color=red][b]在$TOMCAT_HOME$/conf目录下:[/b][/color]

[b]在context.xml里面设置全局访问的名称:[/b]

<ResourceLink

[b]global[/b]="jdbc/MSSQLDS"

[b]name[/b]="jdbc/MSSQLDS"

[b]type[/b]="javax.sql.DataSource"/>

[b]在web.xml里面设置全局参考数据源:[/b]

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/MSSQLDS</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

[b] 2.配置局部的连接池[color=darkred](推荐)[/color][/b]

[b]在$TOMCAT_HOME$/conf/Catalina/localhost/目录下新建一个xml文件,该xml文 件要与你发布的Web应用目录名称相同,假如为[color=darkred]webappname.xml[/color],加入以下内容(配置Tomcat的外部虚拟目录也是在这里搞定的,哈!)[/b]

<?xml version='1.0' encoding='utf-8'?>

<Context path="/webappname" docBase="webappname" debug="0"

reloadable="true" crossContext="true">

<Resource

name="jdbc/MSSQLDS"

auth="Container"

type="javax.sql.DataSource"

factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"

maxActive="100"

maxIdle="30"

maxWait="10000"

username="sa"

password="sa"

driverClassName="net.sourceforge.jtds.jdbc.Driver"

url="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=pubs"/>

<ResourceLink global="jdbc/MSSQLDS" name="jdbc/MSSQLDS"

type="javax.sql.DataSource"/>

</Context>

[b]配置Tomcat\webapps\webappname\WEB-INF\web.xml,设置参考数据源[/b]

<resource-ref>

<description>my DB Connection</description>

<res-ref-name>jdbc/MSSQLDS</res-ref-name> the same as server.xml

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

[b]配置\Tomcat\webapps\webappname\META-INF\context.xml,设置数据源连接 如下:[/b]

<?xml version='1.0' encoding='utf-8'?>

<Context path="/webappname" docBase="webappname" debug="5"

reloadable="true" crossContext="true">

<ResourceLink name="jdbc/MSSQLDS" global="jdbc/MSSQLDS"

type="javax.sql.DataSource"/>

</Context>

[b]Context ctx= (Context) new InitialContext().lookup("java:comp/env");

DataSource ds = (DataSource)ctx.lookup("jdbc/MSSQLDS);

Connection conn = ds.getConnection();

conn.close();[/b]

别忘了对Connection对象调用close()方法,[b]注意:[/b]这里不会关闭这个

Connection,而是将这个Connection放回数据库连接池。

------------------------------------------------------------------------------------

还可以用注入方式来调用连接池,即在Hibernate的配置文件[b]hibernate.cfg.xm[/b]l中调用,在JSP容器中配置好连接池以后,再在Hibernate的配置文件中调用系统的连接池设置,关键代码摘录如下:

<session-factory>

<!--

<property name="jndi.class"></property>

<property name="jndi.url"></property>

-->

[b]<property name="connection.datasource">java:comp/env/jdbc/MSSQLDS</property>[/b]

<property name="show_sql">false</property>

<property name="dialect">org.hibernate.dialect.SybaseDialect</property>

</session-factory>

Hibernate的具体使用方法,请查阅相关详细资料。