jdbc连接sql数据库访问数据超慢!!!急求帮助 1.采用最新的SQL Server的JDBC驱动。2.测试一下是连接慢,还是查询慢,用System.currentTimeMillis(). 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我测试了一下,是连接慢!Connection conn= DriverManager.getConnection(url,user,password); 这一句 怎么没高手回应呢 ?Connection conn= DriverManager.getConnection(url,user,password); 这句需要9s 不知怎么回事啊 Connection conn = DriverManager.getConnection(url,user,password); 每次连接都是4500毫秒左右~~ 这是什么原因呢~~ // 原因很多,硬件、网络、SQL服务器设置等package sql2005;import java.sql.*; public class Main{ public static void main ( String[] args ) { // 创建一个SQL2005的连接字符创. String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=MyDB;user=user1;password=123456"; // 初始化JDBC驱动. Connection con = null; Statement stmt = null; ResultSet rs = null; try { //设置类. Class.forName ( "com.microsoft.sqlserver.jdbc.SQLServerDriver" ); con = DriverManager.getConnection ( connectionUrl ); // 设置SQL命令 String SQL = "select * from \"case\""; // stmt = con.createStatement (); stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // 如果存在 last 或者 first 方法则使用 rs = stmt.executeQuery ( SQL ); // 遍历结果 while (rs.next ()) { System.out.println ( rs.getString ( 1 ) + " " + rs.getString ( 2 ) ); } } catch (Exception e) { e.printStackTrace (); } finally { if ( rs != null ) { try { rs.close (); } catch (Exception e) { } } if ( stmt != null ) { try { stmt.close (); } catch (Exception e) { } } if ( con != null ) { try { con.close (); } catch (Exception e) { } } } }} 用连接池吧你的CONN可以用 单例的吧。 改用连接池,可以提高速度的 proxpool 原来用这个,好像叫这个名字,忘了,配置很简单,并且管理方便,楼主可以google一下 应该是网速,防火墙或驱动的问题你ping服务器看看反应时间,最好下一个数据库浏览的工具看速度怎样,如果也慢就是网络问题,否则就是驱动或你程序问题 我也出现过同样的问题,同样是在Connection conn = DriverManager.getConnection(url,user,password); 时连接了9s,试了很多种方法,连接池也解决不掉,因为连接池也需要连接。代码改成这样,突破了9s瓶颈///////////////////////////////package util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class DbUtil { String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=stu"; static { try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block System.out.println("驱动加载出错"+e.toString()); } } public Connection getConn() throws Exception { try { return DriverManager.getConnection(url,"sa",""); } catch (Exception e) { System.out.println("getConn出错"+e.toString()); throw e; } } public void close(ResultSet rs,Statement stmt ,Connection conn) { try { if(rs!=null)rs.close(); if(stmt!=null)stmt.close(); if(conn!=null)conn.close(); } catch (Exception e) { System.out.println("close 出错"+e.toString()); } } public static void main(String[] args) throws Exception { DbUtil db = new DbUtil(); System.out.println(" db"+ db.getConn()); } }///////////////////////////////////////////// 希望对你有帮助 这个问题 多年以前就遇到过了,建议换成成开源驱动 jtds 采用数据库连接池啊,你使用什么web服务器啊?可以在web服务器里配置连接池的。 我以前也遇到过类似问题,莫名其妙的某个连接就很慢。后来把jdk版本从1.5改到1.6就好了。你也可以升级jdbc那个jar包的版本看看。 聊天窗口怎么布局啊 eclipse中添加了struts和hibernate 但是在写配置文件时没有标签提示?? MySQL update 严重问题 struts.xml配置的代码,谁能帮忙分析一下 请教各位大虾:java.lang.NoSuchMethodError: connDB.OpertingDB.shutdown()V 有谁用过ireport ?帮看看这个问题. 数据库插入问题 jsp实现登录界面最小化 表的字段过长,如何实现连续打印? 向数据库中插入一个时间记录,要求从年精确到秒,什么格式? 求jsp中文的chm格式帮助文档 spring mvc 中页面跳转的问题
Connection conn= DriverManager.getConnection(url,user,password);
这句需要9s
不知怎么回事啊
每次连接都是4500毫秒左右~~
这是什么原因呢~~
{ public static void main ( String[] args )
{
// 创建一个SQL2005的连接字符创.
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=MyDB;user=user1;password=123456"; // 初始化JDBC驱动.
Connection con = null;
Statement stmt = null;
ResultSet rs = null; try
{
//设置类.
Class.forName ( "com.microsoft.sqlserver.jdbc.SQLServerDriver" );
con = DriverManager.getConnection ( connectionUrl ); // 设置SQL命令
String SQL = "select * from \"case\"";
// stmt = con.createStatement ();
stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // 如果存在 last 或者 first 方法则使用
rs = stmt.executeQuery ( SQL ); // 遍历结果 while (rs.next ())
{
System.out.println ( rs.getString ( 1 ) + " " + rs.getString ( 2 ) );
}
}
catch (Exception e)
{
e.printStackTrace ();
}
finally
{
if ( rs != null )
{
try
{
rs.close ();
}
catch (Exception e)
{
}
}
if ( stmt != null )
{
try
{
stmt.close ();
}
catch (Exception e)
{
}
}
if ( con != null )
{
try
{
con.close ();
}
catch (Exception e)
{
}
}
}
}
}
如果也慢就是网络问题,否则就是驱动或你程序问题
Connection conn = DriverManager.getConnection(url,user,password);
时连接了9s,试了很多种方法,连接池也解决不掉,因为连接池也需要连接。
代码改成这样,突破了9s瓶颈
///////////////////////////////
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class DbUtil {
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=stu";
static {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("驱动加载出错"+e.toString());
}
}
public Connection getConn() throws Exception
{
try {
return DriverManager.getConnection(url,"sa","");
} catch (Exception e) {
System.out.println("getConn出错"+e.toString());
throw e;
}
}
public void close(ResultSet rs,Statement stmt ,Connection conn)
{
try {
if(rs!=null)rs.close();
if(stmt!=null)stmt.close();
if(conn!=null)conn.close();
} catch (Exception e) {
System.out.println("close 出错"+e.toString());
}
}
public static void main(String[] args) throws Exception {
DbUtil db = new DbUtil();
System.out.println(" db"+ db.getConn());
}
}
/////////////////////////////////////////////
希望对你有帮助
后来把jdk版本从1.5改到1.6就好了。
你也可以升级jdbc那个jar包的版本看看。