java连接db2数据库 慢
问题:如截图所示,连接DB2需要11秒左右,请问为啥呢?具体代码如下:importjava.sql.*;importjavax.swing.JOptionPane;pub...
问题:如截图所示,连接DB2 需要11秒左右,请问为啥呢?
具体代码如下:
import java.sql.*;
import javax.swing.JOptionPane;
public class DB2Connect { public static void main(String[] args) { DBConnect sqlu = new DBConnect(); try { System.out.println( "开始连接数据库时的时间:"+new java.util.Date().toString()); sqlu.getConnection();//加载驱动,连接数据库 System.out.println( "连接成功开始查询时的时间:"+new java.util.Date().toString()); sqlu.sqlselect(DB2Lan.sel_user);//执行数据库查询语句 ResultSet rsu = sqlu.revalue; if(rsu.next()) { System.out.println( "查到数据拉。"); } } catch (SQLException e) { e.printStackTrace(); } sqlu.connclose(); System.out.println( "查询结束断开连接后的时间:"+new java.util.Date().toString()); }}//连接数据库class DBConnect { static final String URL = "jdbc:db2://192.168.100.100:50000/SJBC"; static final String USER = "db2admin"; static final String PASSWORD = "123456"; private Connection conn = null; // 建立数据库连接 private PreparedStatement pstmt = null; ResultSet revalue; static { try { Class.forName("com.ibm.db2.jcc.DB2Driver"); } catch (Exception e) { JOptionPane.showMessageDialog(null, "数据库驱动加载出问题,请联系管理员。"); } }
// 建立连接 public Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); }
// 关闭连接 public static void free(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } } } // 查询: public ResultSet sqlselect(String sql, Object[] args) { try { conn = getConnection(); pstmt = conn.prepareStatement(sql); for (int i = 0; i < args.length; i++) { pstmt.setObject(i + 1, args[i]); } revalue = pstmt.executeQuery(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "查询错误:网络不通。"); } return revalue;
}} 展开
具体代码如下:
import java.sql.*;
import javax.swing.JOptionPane;
public class DB2Connect { public static void main(String[] args) { DBConnect sqlu = new DBConnect(); try { System.out.println( "开始连接数据库时的时间:"+new java.util.Date().toString()); sqlu.getConnection();//加载驱动,连接数据库 System.out.println( "连接成功开始查询时的时间:"+new java.util.Date().toString()); sqlu.sqlselect(DB2Lan.sel_user);//执行数据库查询语句 ResultSet rsu = sqlu.revalue; if(rsu.next()) { System.out.println( "查到数据拉。"); } } catch (SQLException e) { e.printStackTrace(); } sqlu.connclose(); System.out.println( "查询结束断开连接后的时间:"+new java.util.Date().toString()); }}//连接数据库class DBConnect { static final String URL = "jdbc:db2://192.168.100.100:50000/SJBC"; static final String USER = "db2admin"; static final String PASSWORD = "123456"; private Connection conn = null; // 建立数据库连接 private PreparedStatement pstmt = null; ResultSet revalue; static { try { Class.forName("com.ibm.db2.jcc.DB2Driver"); } catch (Exception e) { JOptionPane.showMessageDialog(null, "数据库驱动加载出问题,请联系管理员。"); } }
// 建立连接 public Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); }
// 关闭连接 public static void free(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } } } // 查询: public ResultSet sqlselect(String sql, Object[] args) { try { conn = getConnection(); pstmt = conn.prepareStatement(sql); for (int i = 0; i < args.length; i++) { pstmt.setObject(i + 1, args[i]); } revalue = pstmt.executeQuery(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "查询错误:网络不通。"); } return revalue;
}} 展开
若以下回答无法解决问题,邀请你更新回答
2个回答
展开全部
程序是没什么问题,不过要优化的地方有很多.尽量不要用静态方法.或静态变量.等等.......
希望可以帮助到你.
希望可以帮助到你.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码没错误。一看就是初学者。
可能是电脑硬件的原因。发个电脑配置出来看看?
可能是电脑硬件的原因。发个电脑配置出来看看?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询