mysql - Getting SQL error 1078 Before start of result set in Java program -


i have java method supposed column values 1 mysql row , create string values. when run, generates sql error 1078 "before start of result set."

here the class in error occuring (problem in listposesinsection method:

/** class used access database */  import java.sql.*; import java.util.arraylist;  import javax.swing.joptionpane;  public class yogadatabaseaccess { string dburl = "jdbc:mysql://localhost/yoga"; private connection connection; private resultset rset; private resultsetmetadata rsmetadata; private statement statement; private preparedstatement pstatementall = null; private preparedstatement pstatementpartial = null;  // strings queries , updates string strlistposesnotprimary; string strinsertnewclass; string strinsertnewsection; string strinsertnewpose; string strupdateclass; string strupdatesection; string strupdatepose; string strarrangeposeorder;  private string[] posearray;  // constructor yogadatabaseaccess() {     connecttodatabase(); }  // method connects database private void connecttodatabase() {     try {         connection = drivermanager.getconnection(dburl, "kyle", "kullerstrand@2");         system.out.println("database connected");     }     catch(sqlexception e) {         system.out.println(e.getmessage());     } }  // query returns lists used combo boxes public string listforboxes(string listname) {     // list returned     string strlist = "";      // determine name of database table list     string listtablename;     if (listname == "pose")         listtablename = listname + "s";     else if (listname == "class")         listtablename = listname + "es";     else         listtablename = listname;      // determine database column name list     string listcolumnname = listname + "_name";      // run query     try {         statement = connection.createstatement();         rset = statement.executequery("select distinct " + listcolumnname + " " + listtablename +                 " order " + listcolumnname);         while (rset.next()){             strlist = strlist + rset.getstring(listcolumnname) + ", ";         }     } catch (sqlexception e) {         e.printstacktrace();     }     return strlist; }  // query returns list of primary poses section public string listprimaryposes(string sectionname) {     // list returned     string strlist = "";      // run query     try {         statement = connection.createstatement();         rset = statement.executequery("select distinct pose_name poses primarily_suitable_for = '" + sectionname +                  "' or primarily_suitable_for = 'anything' order pose_name");         while (rset.next()){             strlist = strlist + rset.getstring("pose_name") + ", ";         }     } catch (sqlexception e) {         e.printstacktrace();     }     return strlist; }  // query returns list of secondary poses section public string listsecondaryposes(string sectionname) {     // list returned     string strlist = "";      // run query     try {         statement = connection.createstatement();         rset = statement.executequery("select distinct pose_name poses sometimes_suitable_for = '" + sectionname + "' order pose_name");         while (rset.next()){             strlist = strlist + rset.getstring("pose_name") + ", ";         }     } catch (sqlexception e) {         e.printstacktrace();     }     return strlist; }  // query returns poses within specific section public string listposesinsection(string tablename, string sectionname) {     string strlist;     stringbuilder strbuilderlist  = new stringbuilder("");     // run query     try {         statement = connection.createstatement();         // query collect columns 1 specific row         rset = statement.executequery("select * " + tablename + " " + tablename + "_name = '" + sectionname + "'");         while (rset.next()) {             (int = 2; <= countcolumnsintable(tablename); i++) // first value (0) null, skip section name (1)                 if (rset.getstring(i) != null) // if column has value                     strbuilderlist.append(rset.getstring(i) + "\n");         }      } catch (sqlexception e) {         e.printstacktrace();     }     strlist = strbuilderlist.tostring();     return strlist.replaceall(", $",""); // strips off trailing comma }  // insert statement inserts new class classes table public void insertnewclass(string classname) {     /** string insert = "insert poses (pose_name, primarily_suitable_for, sometimes_suitable_for) values(?, ?, ?)";     system.out.println("about create prepared statement");     // run insert     try {         pstatement = connection.preparestatement(insert);         // statement.execute("insert ignore poses values ('" + posename + "', '" + suitablefor + "', '" + suitableforsometimes + "')");         pstatement.setstring(1, posename);         pstatement.setstring(2, suitablefor);         pstatement.setstring(3, suitableforsometimes);          system.out.println("created prepared statement");            // execute query, , return number of rows created         pstatement.executeupdate();     } catch (sqlexception e) {         e.printstacktrace();     } */ }  // insert statement inserts new pose poses table public void insertnewpose(string posename, string suitablefor, string suitableforsometimes) {     string insertall = "insert poses (pose_name, primarily_suitable_for, sometimes_suitable_for) values(?, ?, ?)";     string insertpartial = "insert poses (pose_name, primarily_suitable_for) values(?, ?)";     // run insert     try {         if (suitableforsometimes == "null") {  // insert statement contains null value suitable column             pstatementpartial = connection.preparestatement(insertpartial);             pstatementpartial.setstring(1, posename);             pstatementpartial.setstring(2, suitablefor);             pstatementpartial.executeupdate();         } else {  // insert statement contains values 3 columns             pstatementall = connection.preparestatement(insertall);             pstatementall.setstring(1, posename);             pstatementall.setstring(2, suitablefor);             pstatementall.setstring(3, suitableforsometimes);             pstatementall.executeupdate();         }     } catch (sqlexception e) {         system.err.println("sqlexception: " + e.getmessage() + ":" + e.getsqlstate());         joptionpane.showmessagedialog(null, "this pose exists.");     } {         sqlwarning w;         try {             (w = connection.getwarnings(); w != null; w = w.getnextwarning())                     system.err.println("warning: " + w.getmessage() + ":" + w.getsqlstate());         } catch (sqlexception e) {             e.printstacktrace();             joptionpane.showmessagedialog(null, "an unknown error in yoga design program has occurred.");         }     } }  // insert statement inserts new section warmup, work or restore sections  public void insertnewsection(string sectiontype, string sectionname, arraylist<string> poses) {     system.out.println("insertnewsection method called");     int maxcolumns = countcolumnsintable(sectiontype);     posearray = new string[poses.size()];     posearray = poses.toarray(posearray);     if (posearray.length == 0)         joptionpane.showmessagedialog(null, "there no poses in section. please add poses.");      // create list of columns of table insert statement     stringbuilder columns = new stringbuilder(sectiontype + "_name");     (int c = 1; c < maxcolumns; c++)          columns.append(", pose_" + c);      // create string list of poses, separated commas, array     stringbuilder values = new stringbuilder();     values.append("'" + posearray[0] + "'");     (int v = 1; v < posearray.length - 1; v++)         values.append(", '" + posearray[v] + "'");     // make sure query uses correct number of columns padding query null     (int = posearray.length; < maxcolumns; i++)          values.append(", null");     string posestoaddtosection = values.tostring();      // string containing entire insert statement     string insert = "insert " + sectiontype + " (" + columns + ") values ('" + sectionname + "', " + posestoaddtosection + ")";      // run insert     try {         statement = connection.createstatement();         statement.executeupdate(insert);     } catch (sqlexception e) {         system.err.println("sqlexception: " + e.getmessage() + ":" + e.getsqlstate());         joptionpane.showmessagedialog(null, "an error in yoga design program has occurred. sqlexception: " +                  e.getmessage() + ":" + e.getsqlstate());     } {         sqlwarning w;         try {             (w = connection.getwarnings(); w != null; w = w.getnextwarning())                     system.err.println("warning: " + w.getmessage() + ":" + w.getsqlstate());         } catch (sqlexception e) {             e.printstacktrace();             joptionpane.showmessagedialog(null, "an unknown error in yoga design program has occurred.");         }     } }      // statement deletes rows tables public void deleterow(string tablename, string columnname, string rowname) {      string delete = "delete " + tablename + " " + columnname + " = '" + rowname + "'";     // run insert     try {         statement = connection.createstatement();         statement.executeupdate(delete);         system.out.println("delete statement run on java's end.");     } catch (sqlexception e) {         system.err.println("sqlexception: " + e.getmessage() + ":" + e.getsqlstate());         joptionpane.showmessagedialog(null, "sorry, went wrong: sqlexception: " +          e.getmessage() + ":" + e.getsqlstate());     } {         sqlwarning w;         try {             (w = connection.getwarnings(); w != null; w = w.getnextwarning())                     system.err.println("warning: " + w.getmessage() + ":" + w.getsqlstate());         } catch (sqlexception e) {             e.printstacktrace();         }     } }  // method getting number of columns in table using metadata public int countcolumnsintable(string sectiontype) {     int count = 16;     try {         // system.out.println(sectiontype);         statement = connection.createstatement();         rset = statement.executequery("select * " + sectiontype);         rsmetadata = rset.getmetadata();         count = rsmetadata.getcolumncount();         // system.out.println("column count " + count);     } catch (sqlexception e) {         e.printstacktrace();     }     return count; }  // close database , release resources public void closedatabase() {     try {         connection.close();     } catch (sqlexception e) {         e.printstacktrace();     } } 

}

and here beginning of error list:

java.sql.sqlexception: before start of result set @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:1078) @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:989) @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:975) @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:920) @ com.mysql.jdbc.resultsetimpl.checkrowpos(resultsetimpl.java:855) @ com.mysql.jdbc.resultsetimpl.getstringinternal(resultsetimpl.java:5773) @ com.mysql.jdbc.resultsetimpl.getstring(resultsetimpl.java:5693) @ yogadatabaseaccess.listposesinsection(yogadatabaseaccess.java:125) @ yogasectiondesigner$5.actionperformed(yogasectiondesigner.java:229) 

may can check out:

resultset exception - before start of result set

had same problem. solved way.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -