如何连接SQL Server数据库(Java版)【转】
??? auth="Container"
??? type="javax.sql.DataSource"
??? maxActive="100"
??? maxIdle="30"
??? maxWait="10000"
??? username="sa"
??? password="password"
??? driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
??? url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
注意:name为连接池的全局JNDI全称,username为password为数据库的连接用户名和密码,driverClassName是数据库驱动名称,url是数据库连接字符串。请按照你的实际配置进行修改。
配置到这里还没有算完成,下面要在context.xml里面设置全局访问的名称,设置如下:
找到</Context>,并在这一行的前面插入如下代码:
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
2. 局部配置:在$TOMCAT_HOME$/conf/Catalina/localhost/目录下新建一个xml文件,该xml文件要与你发布的Web应用目录名称相同,假如为webappname.xml,加入以下内容(配置Tomcat的外部虚拟目录也是在这里搞掂的,哈!)
<Context path="/webappname" docBase="d:/webappname" debug="0" reloadable="true" crossContext="true">
<Resource
??? name="jdbc/poolName"
??? auth="Container"
??? type="javax.sql.DataSource"
??? maxActive="100"
??? maxIdle="30"
??? maxWait="10000"
??? username="sa"
??? password="password"
??? driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
??? url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
</Context>
对于前面两种方法,调用连接池代码如下:(其中com.yeno.util.Debug的Debug.log()方法主要用于打印调试信息,可以用System.out.println()代替)
import java.sql.*;
import javax.sql.DataSource;
import javax.naming.*;
import com.yeno.util.Debug;
/**
* <p>数据库操作管理类,只实现数据库的连接,关闭和事务处理</p>
* @Aurhor Yeno.hhr
* Create Date 2005-12-9
*/
public class DataPool {
public DataPool(){}
/**
???? * <p>通过Tomcat连接池取得数据库连接</p>
???? * @param no
???? * @return Connection 数据库连接
???? * @exception NamingException,SQLException,Exception
???? */
public Connection getConnect()
{
?? Connection conn = null;
?? try
?? {
??? Context intitCtx = new InitialContext();
??? Context envCtx = (Context)intitCtx.lookup("java:comp/env");
??? DataSource ds = (DataSource)envCtx.lookup("jdbc/poolName");
??? conn = ds.getConnection();
?? }
?? catch(NamingException nex)
?? {
??? Debug.log(this,"getConnect()","No correct environment!");
?? }
?? catch(SQLException sqlex)
?? {
??? Debug.log(this,"getConnect()","Can't get connection!");
?? }
?? return conn;
}
}
在使用上述代码之前,必须保证JDBC驱动的相关JAR文件(Microsoft为mssqlserver.jar、msutil.jar和msbase.jar,JTDS为jtds-1.2.jar)已正确配置,可以将相关JAR文件拷贝到$TOMCAT_HOME$/common/lib/目录下,也可以拷贝到$WEB_ROOT$/WEB-INF/lib/目录下
还可以用注入方式来调用连接池,即在Hibernate的配置文件hibernate.cfg.xml中调用,在JSP容器中配置好连接池以后,再在Hibernate的配置文件中调用系统的连接池设置,关键代码摘录如下:
<session-factory>
<!--
<property name="jndi.class"></property>
<property name="jndi.url"></property>
-->
<property name="connection.datasource">java:comp/env/jdbc/poolName</property>
<property name="show_sql">false</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
</session-factory>
Hibernate的具体使用方法,请查阅相关详细资料。
?