利用JDBC访问远程SQLSERVER速度慢,这个事情让我难受好久了,今天终于上网查找到解决方案了(当然这段代码还是执行存储过程的方法之一)
import java.sql.*;
public class DBTestProcedure {
DBTestProcedure() {
}
public static void main(String args[]) {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
long startTime = System.currentTimeMillis();
// String url="jdbc:odbc:20SQL"; //20SQL是在172.18.10.134上建的连接172.18.0.20的DSN
String url="jdbc:microsoft:sqlserver://172.18.0.20:1433;DatabaseName=StuCourse";
String user = "***";
String password = "*****";
Connection dbConn = DriverManager.getConnection(url, user, password);
CallableStatement proc=dbConn.prepareCall("{?=call selectcourse(?,?)}"); //执行存储过程
proc.registerOutParameter(1, java.sql.Types.INTEGER);//返回值
proc.setString(2, "200802345"); //准备参数1
proc.setString(3, "7");//准备参数2
proc.execute();
int result=proc.getInt(1);
//if(result==1)
//{
System.out.println(result);
//}
long endTime = System.currentTimeMillis();
System.out.println("****cost time:"+((endTime-startTime))+"ms***");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
上面这个代码,连接本地计算机的SQLSERVER很快<30ms,或者通过ODBC连接远程也很快<30ms,可直接用指定IP的方式访问远程计算慢得不得了,>6000ms,后来上网查到原因了,原来是
原来server_name(本例子中是172.18.0.20)的问题,程序访问172.18.0.20时,把它当成里机器名称进行解析,长时间没结果最后才访问了IP为172.18.0.20。 (我是在172.18.10.134上跑的这个程序)
解决方法是:在WEB服务器的C:\WINDOWS\system32\drivers\etc\HOSTs表中添加一条
172.18.0.20 172.18.0.20
这下快多了,<60ms,搞不明白,除了hosts文件还有其它方法没有,万一服务器不是我的怎么办?
-- 创建存储过程
alter PROCEDURE SelectCourse
(
@Sno [char](10),
@Cno [char](4)
)
AS
DECLARE @ReturnValue int -- 返回操作结果
SET @ReturnValue = 81
begin
begin tran
insert into sc(Sno,Cno) values(@Sno,@Cno)
Update Course Set num=num-1 where Cno=@Cno
if @@ERROR=0
begin
commit
set @ReturnValue=1
end
else
begin
rollback
set @ReturnValue=0
end
select @ReturnValue
Return @ReturnValue
原文出自:http://anyuecq25.blog.163.com/blog/static/13864827320104353425613/
分享到:
相关推荐
### JDBC连接SQL Server 2008问题解析与解决方案 #### 一、SQL Server JDBC连接问题概述 在尝试使用Java Database Connectivity (JDBC)来连接SQL Server 2000/2005/2008时,可能会遇到各种连接失败的问题。这些...
通过上述步骤,你可以成功地通过Eclipse或Myeclipse使用JDBC连接到SQL Server 2008数据库,并解决常见的sa用户登录失败问题。这些步骤适用于大多数Java初学者在学习过程中遇到的问题,有助于他们更快地上手实际的...
由于给定的文件信息中存在大量的无关内容,本回答将仅专注于文件中与Microsoft SQL Server Express、JDBC-ODBC桥和JDBC远程连接相关的部分,并生成相关知识点。 Microsoft SQL Server Express是微软公司推出的一个...
### JDBC连接SQL Server 2005 解决办法详解 #### 一、下载与安装驱动程序 为了确保能够成功地通过Java Database Connectivity (JDBC) 连接到SQL Server 2005数据库,首要步骤是下载合适的驱动程序。根据描述中的...
连接字符串格式通常为:“jdbc:jtds:sqlserver://DbComputerNameOrIPAddr:1433/DatabaseName”。其中,“DbComputerNameOrIPAddr”是SQL Server的计算机名或IP地址,“DatabaseName”是目标数据库的名称。 3. **执行...
### MyEclipse中使用JDBC连接SQL Server 2005 的详细步骤及知识点解析 #### 软件准备与安装 1. **Microsoft SQL Server 2005 Express Edition**: - 官方下载地址:...
### MyEclipse(Java)连接SQLServer 2008 R2 的详细步骤及常见问题解决方案 #### 一、背景介绍 在进行Java应用程序开发时,经常需要与数据库进行交互。MyEclipse作为一款功能强大的集成开发环境(IDE),支持多种...
jdbc:sqlserver://<服务器地址>:<端口>;databaseName=<数据库名>;user=<用户名>;password=<密码> ``` 6. **登录验证**:压缩包中的"jsp登录验证"可能是指一个示例项目,演示如何通过JSP页面进行用户登录验证。这...
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; try { Class.forName(...
String url = "jdbc:sqlserver://localhost:1433;databaseName=YourDatabaseName"; String user = "sa"; String password = "yourpassword"; Connection conn = DriverManager.getConnection(url, user, ...
这个场景在标题"Android连接sqlserver数据库"中被提及,描述指出代码将直接连接到SQL Server数据库,并将查询结果展示在应用的界面上。标签"sqlswe"可能代表SQL Server与Web开发相关的技能。接下来,我们将深入探讨...
《SQLJDBC4-4.0.jar:微软SQL Server与Java的桥梁》 在Java编程环境中,连接...当遇到“Cannot resolve com.microsoft.sqlserver:sqljdbc4:4.0”这样的问题时,应检查依赖管理配置和网络状况,确保驱动包的正确引入。
在Java编程中,连接SQL Server 2005数据库主要依赖于JDBC(Java Database Connectivity)驱动。以下是详细的知识点说明: 1. **JDBC驱动**: JDBC是Java平台上的标准接口,用于与各种数据库进行通信。对于SQL ...
本文将详细介绍如何解决64位系统下的SQL Server连接Oracle数据库时出现的中文乱码问题,并提供具体的配置步骤。 #### 一、背景介绍 当SQL Server尝试通过ODBC或JDBC等方式连接到Oracle数据库时,如果两个系统的...
《SQL Server 2000与jar文件:深入解析sqlserver.jar》 SQL Server 2000是一款由微软公司推出的、广泛应用于企业级数据库管理系统的数据库管理系统(DBMS)。在Java开发环境中,我们常常会遇到与SQL Server交互的...