ResultSet Already closed error
- by javatraniee
why am i getting an error of resultset already closed error
public class Server implements Runnable
{
private static int port=1600, maxConnections=0;
public static Connection connnew=null;
public static Connection connnew1=null;
public static Statement stnew,stnew1,stnew2,stnew3,stnew4;
public void getConnection() {
try{
Class.forName("org.gjt.mm.mysql.Driver");
connnew= DriverManager.getConnection("jdbc:mysql://localhost/db_alldata","root","flashkit");
connnew1= DriverManager.getConnection("jdbc:mysql://localhost/db_main","root","flashkit");
stnew=connnew.createStatement();
stnew1=connnew.createStatement();
stnew2=connnew1.createStatement();
stnew3=connnew1.createStatement();
stnew4=connnew1.createStatement();
}catch (Exception e) {
System.out.print("Get Connection Exception---"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"----- "+e);
}
}
public void closeConnection() {
try{
if(!(connnew.isClosed()))
{
stnew.close();
stnew1.close();
connnew.close();
}
if(!(connnew1.isClosed()))
{
stnew2.close();
stnew3.close();
stnew4.close();
connnew1.close();
}
}catch (Exception e) {
System.out.print("Close Connection Closing Exception-----"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"-------"+e);
}
}
Server()
{
try{
}catch(Exception ee)
{
System.out.print("Server Exceptions in main connection--"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"------"+ee);
}
}
public static void main(String[] args) throws SQLException
{
int i=0;
Server STUD= new Server();
STUD.getConnection();
try
{
ServerSocket listener = new ServerSocket(port);
Socket server;
while((i++ < maxConnections) || (maxConnections == 0))
{
@SuppressWarnings("unused")
doComms connection;
server = listener.accept();
try{
ResultSet checkconnection=stnew4.executeQuery("select count(*) from t_studentdetails");
if(checkconnection.next())
{
//DO NOTHING IF EXCEPTION THEN CLOSE ALL CONNECTIONS AND OPEN NEW CONNECTIONS
}
}catch (Exception e) {
System.out.print("Db Connection Lost Closing And Re-Opning It--------"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"--------"+e);
STUD.closeConnection();
STUD.getConnection();
}
doComms conn_c= new doComms(server,stnew,stnew1,stnew2,stnew3);
Thread t = new Thread(conn_c);
t.start();
}
}catch (IOException ioe)
{
System.out.println("Main IOException on socket listen: " + ioe);
}
}
public void run()
{
}
}
class doComms implements Runnable
{
private Socket server;
private String input;
static Connection conn=null;
static Connection conn1=null;
static Statement st,st1,st2,st3;
doComms(Socket server, Statement st,Statement st1,Statement st2,Statement st3 )
{
this.server=server;
doComms.st=st;
doComms.st1=st1;
doComms.st2=st2;
doComms.st3=st3;
}
@SuppressWarnings("deprecation")
public void run ()
{
input="";
//char ch;
try
{
DataInputStream in = new DataInputStream (server.getInputStream());
OutputStreamWriter outgoing=new OutputStreamWriter(server.getOutputStream());
while(!(null==(input=in.readLine())))
{
savetodatabase(input,server.getPort(),outgoing);
}
//server.close();
} catch (IOException ioe)
{
System.out.println("RUN IOException on socket listen:-------"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"----- " + ioe);
ioe.printStackTrace();
}
}
public void savetodatabase(String line, int port1, OutputStreamWriter outgoing)
{
try
{
String Rollno="-",name="-",div="-",storeddate="-",storedtime="-",mailfrom="";
String newline=line;
String unitid="-";
storeddate=new SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
storedtime=new SimpleDateFormat("HH:mm:ss").format(new java.util.Date());
String sql2="delete from t_currentport where PortNumber='"+port1+"''";
st2.executeUpdate(sql2);
sql2="insert into t_currentport (unitid, portnumber,thedate,thetime) values ('"+unitid+"','"+port1+"','"+storeddate+"','"+storedtime+"')";
st2.executeUpdate(sql2);
String tablename=GetTable();
String sql="select * from t_studentdetails where Unitid='"+unitid+"'";
ResultSet rst=st2.executeQuery(sql);
if(rst.next())
{
Rollno=rst.getString("Rollno");
name=rst.getString("name");
div=rst.getString("div");
}
String sql1="insert into studentInfo StoredDate,StoredTime,Subject,UnitId,Body,Status,Rollno,div,VehId,MailDate,MailTime,MailFrom,MailTo,Header,UnProcessedStamps) values('"+storeddate+"','"+storedtime+"','"+unitid+"','"+unitid+"','"+newline+"','Pending','"+Rollno+"','"+div+"','"+name+"','"+storeddate+"','"+storedtime+"','"+mailfrom+"','"+mailfrom+"','-','-')";
st1.executeUpdate(sql1);
}catch(Exception e)
{
System.out.print("Save to db Connection Exception--"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"-->"+e);
}
}
}