JAVA连接SQLServer基础,以及5分钟之内读+写20万条数据(40万条操作),遇到的问题(二)

2015-07-24 10:16:17 · 作者: · 浏览: 4
eption e) { // TODO Auto-generated catch block e.printStackTrace(); } } public ResultSet select(String sql) { ResultSet rs= null; try { PreparedStatement partnames=conn.prepareStatement(sql); rs=partnames.executeQuery(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return rs; } public void update(String sql) { try { Statement partnames=conn.createStatement(); partnames.executeUpdate(sql); System.out.println("update success!"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { Connection conn = DataSourceFactory.getInstance().getConnection(); PreparedStatement partnames=conn.prepareStatement("SELECT * FROM dbo.MS_CHK_ALL WHERE id=1"); ResultSet rs=partnames.executeQuery(); while(rs.next()) { String Data=rs.getString("chk_code"); System.out.println(Data); } } catch ( Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
这次又出现了新的问题,运行一小会以后,

?

[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

我估计还是老问题,资源未释放

忍无可忍,笨方法: 每处理100条以后,断开连接,重连数据库。sleep 100ms 再继续进行

?

if(i%100==0)
		{
			serverLink.closeLink();
			serverLink.link();
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}


?