Java Mysql query database with connection -


thanks in advance help. creating database - client application using java in eclipse. using mysql 5.6 database. have method create , return connection object use querying database, , method return of rows in table json array. problem comes in query method when trying call connection method.

at: try{ con.getdbconnection(); telling me there error getdbconnection(); , suggestions gives add cast 'con'.

and can't query method compile main method.

package binaparts.dao;  import java.sql.connection; import java.sql.preparedstatement; import java.sql.*; import org.json.jsonarray;  import binaparts.util.tojson;  public class returnallparts extends dbconnect{      public jsonarray queryreturnallparts() throws exception{          preparedstatement query = null;         connection con = null;          tojson converter = new tojson();         jsonarray json = new jsonarray();          try{             con.getdbconnection();             query = con.preparestatement("select * " + "from `parts list`" );              resultset rs = query.executequery();              json = converter.tojsonarray(rs);             query.close();         }catch(sqlexception sqlex){                 sqlex.printstacktrace();         }catch(exception ex){             ex.printstacktrace();         }finally{             if(con != null){                 con.close();             }         }         return json;     } } 

dao package code below:

package binaparts.dao;  import java.sql.connection; import java.sql.databasemetadata; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.util.properties;  import javax.naming.context; import javax.naming.initialcontext; import javax.sql.datasource;  import com.mysql.jdbc.preparedstatement;  public class dbconnect {      private statement st = null;     private resultset rs = null;     private connection con = null;       private preparedstatement pst = null;      private string servername = "localhost";     private string portnumber = "3306";     private string dbms = "mysql";     private object username = "dwilson";     private object password = "abc";      public connection getdbconnection() throws sqlexception {          properties connectionprops = new properties();         connectionprops.put("user", this.username);         connectionprops.put("password", this.password);              try{                 con = drivermanager.getconnection("jdbc:" + this.dbms + "://" + this.servername + ":" + this.portnumber + "/", connectionprops);             }catch(exception ex){                 ex.printstacktrace();                 con = null;             }finally{                 if(con != null){                      system.out.println("connected database");                 }             }         return con;     }     public string getuser(){         try{             databasemetadata dmd = con.getmetadata();             string username = dmd.getusername();             //system.out.println("current user: "+username);             return username;         }catch(exception ex){             system.out.println(ex);             ex.printstacktrace();             return null;         }     } } 

main method below:

public class main{      public static void main(string[] args){          dbconnect con = new dbconnect();         try {             con.getdbconnection();             system.out.println(con.getuser());             system.out.println(con.queryreturnallparts());         } catch (sqlexception e) {             // todo auto-generated catch block             e.printstacktrace();         }          //login logingui = new login();         //mainframes m = new mainframes();         //m.displaygui();     } } 

the system.out.println(con.getuser()); work

in returnallparts#queryreturnallparts method, change

con.getdbconnection(); 

by

con = getdbconnection(); 

the problem con variable java.sql.connection , doesn't have getdbconnection method. since current returnallparts class extends dbconnect class, can access public connection getdbconnection method no problems.

the system.out.println(con.getuser()); work

this because in main#main class, have declared dbconnect con. not confuse variable con variable declared in other methods.


not directly related problem, suggest improvements current code/design:

  • change name of returnallparts class more meaningful future readers (even in days or weeks become in future reader of code). reading code, looks class should renamed partlist.
  • use database connection pool instead of manually connections. there libraries handle bonecp
  • probably you're new programming, better start in right way , develop application in layers (further reading: multitier architecture). basis, can dao (or data service, depends how name it) should contain methods access , retrieve data in way other clients consume want/need, better returning list<partlist> object , layer in application (probably closest presentation) apply transformation objects json string.
  • for design point of view, way better if database access objects uses dbconnect object instead of extending it. in way, have single dbconnect object per database connection configuration associated related daos.

Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

php - MySQLi multi_query results for later use -