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)
Comments
Post a Comment