当前位置: 技术问答>java相关
请教用jdbc驱动连接sql server数据库的配置和使用办法!谢谢
来源: 互联网 发布时间:2015-06-30
本文导语: 请教用jdbc驱动连接sql server数据库的配置和使用办法!谢谢 | 首先把sql server的驱动程序包含到classpath里 使用可以是这样的 String driverClass = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String...
请教用jdbc驱动连接sql server数据库的配置和使用办法!谢谢
|
首先把sql server的驱动程序包含到classpath里
使用可以是这样的
String driverClass = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String connectUrl = "jdbc:microsoft:sqlserver://localhost:1433";
String userName = "sa";
String userPass = "sql";
Class.forName(driverClass);
Connection conn = DriverManager.getConnection(connectUrl,userName,userPass);
conn.setCatalog("dbName");
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = null;
String sqlStr = "select ..... ";
rs = st.executeQuery(sqlStr);
while ( rs.next() ) {
//do something
}
rs.close();
st.close();
使用可以是这样的
String driverClass = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String connectUrl = "jdbc:microsoft:sqlserver://localhost:1433";
String userName = "sa";
String userPass = "sql";
Class.forName(driverClass);
Connection conn = DriverManager.getConnection(connectUrl,userName,userPass);
conn.setCatalog("dbName");
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = null;
String sqlStr = "select ..... ";
rs = st.executeQuery(sqlStr);
while ( rs.next() ) {
//do something
}
rs.close();
st.close();
|
配置JBoss使用JDBC驱动程序
关于配置JBoss使用你的JDBC驱动程序的指导取决于你使用的JBoss版本,请选择适合你的版本的方法。
配置JBoss 2.4
遵照配置JBoss2.1和2.2的指导,但是将org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
替换为org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl。
配置JBoss2.1和2.2
告诉JBoss新的JDBC驱动程序
在安装好MS SQL Server JDBC驱动程序后,你需要告诉JBoss你要使用该驱动程序。将该驱动程序添加
到JBoss启动时加载的JDBC清单中。该清单存放在jboss.jcml文件中。该文件可在
%JBOSS_HOME%/conf/中找到。对于标准的JBoss发行版本,是default而
JBoss-Jetty版本则是jetty。该入口应该是一行用逗号分隔开的JDBC驱动程序名列表。
打开文件,找到以下面的mbean标记开始的入口:
驱动程序列表放在名为Drivers的子标记中。按如下所示将你的JDBC驱动程序添加到列表
中。
$ 添加Sun JDBC-ODBC桥驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,sun.jdbc.odbc.JdbcOdbcDriver
$ 添加FreeTDS驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.internetcds.jdbc.tds.Driver
$ 添加Merant DataDirect Connect JDBC驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.merant.datadirect.jdbc.sqlserver.SQLServerDriver
$ 添加i-net OPTA 2000 JDBC驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.inet.tds.TdsDriver
$ 添加WebLogic jDriver for Microsoft SQL Server
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,weblogic.jdbc.mssqlserver4.Driver
创建DB连接池
到目前为止,你已经告诉JBoss你的驱动程序。现在建立一个你的EJBBean能够连接的连接池。在本教程中,你将创建
一个名为SQLServerPool的连接池。要创建连接池,先在jboss.jcml文件中定位已下列行开始的mbean入口:
在你刚在定位的mbean项下面加入如下所给的mbean项。注意这些必须加在结束标记后面!!!
$ Sun JDBC-ODBC桥驱动程序连接池声明
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:odbc:jboss_odbc
dbusername
dbpassword
etc...
$ Merant DataDirect Connect JDBC驱动程序连接池声明
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:sqlserver://servername:1433
DatabaseName=DatabaseName
dbusername
dbpassword
etc...
$ i-net OPTA 2000 JDBC驱动程序连接池声明(采用INET数据源)
com.inet.tds.XDataSource
SQLServerPool
host=ServerName; database=DatabaseName
dbusername
dbpassword
etc...
$ i-net OPTA 2000 JDBC驱动程序连接池声明(采用JBoss数据源)
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:inetdae7:HostName
dbusername
dbpassword
etc...
$ WebLogic jDriver for Microsoft SQL Server连接池声明
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:weblogic:mssqlserver4:DatabaseName@ServerName:1433
user=dbusername; password=dbpassword
etc...
检验DB连接池
启动JBoss确保JDBC驱动程序找到并且创建了连接池,如果成功加载JDBC驱动程序将有如下所示的输出
[Transaction manager] Initializing
[Transaction manager] Loaded JDBC-driver:org.hsql.jdbcDriver
[Transaction manager] Loaded JDBC-driver:org.enhydra.instantdb.jdbc.idbDriver
[Transaction manager] Loaded JDBC-driver:sun.jdbc.odbc.JdbcOdbcDriver
[Transaction manager] Loaded JDBC-driver:com.merant.datadirect.jdbc.sqlserver.SQLServerDriver
[Transaction manager] Loaded JDBC-driver:com.inet.tds.TdsDriver
[Transaction manager] Loaded JDBC-driver:weblogic.jdbc.mssqlserver4.Driver
[Transaction manager] Initialized
稍等片刻...连接池的输出
[SQLServerPool] Starting
[SQLServerPool] XA Connection pool SQLServerPool bound to java:/SQLServerPool
[SQLServerPool] Started
配置CMP数据类型映射
配置JBoss使用MS SQL Server连接池作为缺省的数据源,你可以选择下列方法之一:
$ 在你的应用程序的META-INF目录下创建jaws.xml文件重载standardjaws.xml中如下所示的缺省设置
示例 jaws.xml(MS SQL Server CMP数据类型映射)
java:/SQLServerPool
MS SQLSERVER
false
MS SQLSERVER
$ 改变%JBOSS_HOME%/conf目录下的standardjaws.xml文件中的缺省设置
要改变缺省的数据源和数据类型映射,请对standardjaws.xml文件作如下修改
java:/SQLServerPool
MS SQLSERVER
*注: 除了MS SQLSERVER 2000,其它版本都使用MS SQLSERVER。如果你使用的是SQL Server2000, 将
上面的MS SQLSERVER改为MS SQLSERVER2000。
疑难解答
JDBC未装载错误
在启动时显示如下错误:
[JDBC] Could not load driver:sun.jdbc.odbc.JdbcOdbcDrivers
这种错误可能在下列情况出现:
1. jboss.jcml配置文件中的JDBC驱动名称拼写错误。在如上的例子中应该是
sun.jdbc.odbc.JdbcOdbcDriver
2. JDBC驱动程序没有正确的安装 - 它的类文件或.jar文件不在CLASSPATH中。
在启动连接池时JBoss悬停
当JBoss启动时,一系列的信息显示在控制台上。关于连接池的最后信息应该如下所示:
[Hypersonic] Press [Ctrl]+[C] to abort
[InstantDB] Started
[DefaultDS] Starting
[DefaultDS] XA Connection pool DefaultDS bound to java:/DefaultDS
[DefaultDS] Started
[SQLServerPool] Starting
[SQLServerPool] XA Connection pool SQLServerPool bound to java:/SQLServerPool
首先检查JDBC驱动程序是否正确加载。如果没有正确加载请察看前面的"JDBC未装载错误"部分。如果驱动
正确加载,该错误意味着JBoss不能和你的数据库服务器通讯。该错误可能在以下情形出现:
1. 用于连接数据库的参数拼写错误或遗漏。请检查是否正确的指定了该连接池的主机名,数据库,用户
名,用户口令等。
关于配置JBoss使用你的JDBC驱动程序的指导取决于你使用的JBoss版本,请选择适合你的版本的方法。
配置JBoss 2.4
遵照配置JBoss2.1和2.2的指导,但是将org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
替换为org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl。
配置JBoss2.1和2.2
告诉JBoss新的JDBC驱动程序
在安装好MS SQL Server JDBC驱动程序后,你需要告诉JBoss你要使用该驱动程序。将该驱动程序添加
到JBoss启动时加载的JDBC清单中。该清单存放在jboss.jcml文件中。该文件可在
%JBOSS_HOME%/conf/中找到。对于标准的JBoss发行版本,是default而
JBoss-Jetty版本则是jetty。该入口应该是一行用逗号分隔开的JDBC驱动程序名列表。
打开文件,找到以下面的mbean标记开始的入口:
驱动程序列表放在名为Drivers的子标记中。按如下所示将你的JDBC驱动程序添加到列表
中。
$ 添加Sun JDBC-ODBC桥驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,sun.jdbc.odbc.JdbcOdbcDriver
$ 添加FreeTDS驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.internetcds.jdbc.tds.Driver
$ 添加Merant DataDirect Connect JDBC驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.merant.datadirect.jdbc.sqlserver.SQLServerDriver
$ 添加i-net OPTA 2000 JDBC驱动程序
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,com.inet.tds.TdsDriver
$ 添加WebLogic jDriver for Microsoft SQL Server
org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver,weblogic.jdbc.mssqlserver4.Driver
创建DB连接池
到目前为止,你已经告诉JBoss你的驱动程序。现在建立一个你的EJBBean能够连接的连接池。在本教程中,你将创建
一个名为SQLServerPool的连接池。要创建连接池,先在jboss.jcml文件中定位已下列行开始的mbean入口:
在你刚在定位的mbean项下面加入如下所给的mbean项。注意这些必须加在结束标记后面!!!
$ Sun JDBC-ODBC桥驱动程序连接池声明
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:odbc:jboss_odbc
dbusername
dbpassword
etc...
$ Merant DataDirect Connect JDBC驱动程序连接池声明
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:sqlserver://servername:1433
DatabaseName=DatabaseName
dbusername
dbpassword
etc...
$ i-net OPTA 2000 JDBC驱动程序连接池声明(采用INET数据源)
com.inet.tds.XDataSource
SQLServerPool
host=ServerName; database=DatabaseName
dbusername
dbpassword
etc...
$ i-net OPTA 2000 JDBC驱动程序连接池声明(采用JBoss数据源)
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:inetdae7:HostName
dbusername
dbpassword
etc...
$ WebLogic jDriver for Microsoft SQL Server连接池声明
org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
SQLServerPool
jdbc:weblogic:mssqlserver4:DatabaseName@ServerName:1433
user=dbusername; password=dbpassword
etc...
检验DB连接池
启动JBoss确保JDBC驱动程序找到并且创建了连接池,如果成功加载JDBC驱动程序将有如下所示的输出
[Transaction manager] Initializing
[Transaction manager] Loaded JDBC-driver:org.hsql.jdbcDriver
[Transaction manager] Loaded JDBC-driver:org.enhydra.instantdb.jdbc.idbDriver
[Transaction manager] Loaded JDBC-driver:sun.jdbc.odbc.JdbcOdbcDriver
[Transaction manager] Loaded JDBC-driver:com.merant.datadirect.jdbc.sqlserver.SQLServerDriver
[Transaction manager] Loaded JDBC-driver:com.inet.tds.TdsDriver
[Transaction manager] Loaded JDBC-driver:weblogic.jdbc.mssqlserver4.Driver
[Transaction manager] Initialized
稍等片刻...连接池的输出
[SQLServerPool] Starting
[SQLServerPool] XA Connection pool SQLServerPool bound to java:/SQLServerPool
[SQLServerPool] Started
配置CMP数据类型映射
配置JBoss使用MS SQL Server连接池作为缺省的数据源,你可以选择下列方法之一:
$ 在你的应用程序的META-INF目录下创建jaws.xml文件重载standardjaws.xml中如下所示的缺省设置
示例 jaws.xml(MS SQL Server CMP数据类型映射)
java:/SQLServerPool
MS SQLSERVER
false
MS SQLSERVER
$ 改变%JBOSS_HOME%/conf目录下的standardjaws.xml文件中的缺省设置
要改变缺省的数据源和数据类型映射,请对standardjaws.xml文件作如下修改
java:/SQLServerPool
MS SQLSERVER
*注: 除了MS SQLSERVER 2000,其它版本都使用MS SQLSERVER。如果你使用的是SQL Server2000, 将
上面的MS SQLSERVER改为MS SQLSERVER2000。
疑难解答
JDBC未装载错误
在启动时显示如下错误:
[JDBC] Could not load driver:sun.jdbc.odbc.JdbcOdbcDrivers
这种错误可能在下列情况出现:
1. jboss.jcml配置文件中的JDBC驱动名称拼写错误。在如上的例子中应该是
sun.jdbc.odbc.JdbcOdbcDriver
2. JDBC驱动程序没有正确的安装 - 它的类文件或.jar文件不在CLASSPATH中。
在启动连接池时JBoss悬停
当JBoss启动时,一系列的信息显示在控制台上。关于连接池的最后信息应该如下所示:
[Hypersonic] Press [Ctrl]+[C] to abort
[InstantDB] Started
[DefaultDS] Starting
[DefaultDS] XA Connection pool DefaultDS bound to java:/DefaultDS
[DefaultDS] Started
[SQLServerPool] Starting
[SQLServerPool] XA Connection pool SQLServerPool bound to java:/SQLServerPool
首先检查JDBC驱动程序是否正确加载。如果没有正确加载请察看前面的"JDBC未装载错误"部分。如果驱动
正确加载,该错误意味着JBoss不能和你的数据库服务器通讯。该错误可能在以下情形出现:
1. 用于连接数据库的参数拼写错误或遗漏。请检查是否正确的指定了该连接池的主机名,数据库,用户
名,用户口令等。
|
学习~~~