java - How to use user input as parameter for query? -


so i'm new java , sql , first programming languages. trying work jdbc. want allow user input id , return query based on variable. if @ least point me in right direction... here code i'm starting with. mind crude trying working piece of code can better implement in main class.

 scanner input = new scanner(system.in);     class.forname("org.sqlite.jdbc");     connection conn =             drivermanager.getconnection("jdbc:sqlite:c:\\users\\derek\\documents\\databases\\example.sqlite");     statement stat = conn.createstatement();     preparedstatement prep1 = conn.preparestatement(             "insert medtype values (?, ?);");     preparedstatement prep2 = conn.preparestatement(             "insert media values (?, ?,?, ?,?, ?);");      system.out.print("please choose database(medtype or media): ");     string db=input.next();      if(db.equalsignorecase("medtype"))     {     system.out.print("enter in id: ");     string answer1 = input.next();      system.out.print("");     string answer2 = input.nextline();      system.out.print("enter in description: ");     string answer3 = input.nextline();      prep1.setstring(1, answer1);//add values cell     prep1.setstring(2, answer3);     prep1.addbatch();//add columns have been entered      } conn.setautocommit(false);     prep1.executebatch();     prep2.executebatch();     conn.setautocommit(true);         system.out.print("please enter query(one or all): ");     string q=input.next();       resultset rs= stat.executequery("select * medtype;");       if(q.equalsignorecase("all")){     while (rs.next()) {         system.out.print("all id = " + rs.getstring("id") + " ");         system.out.println("all description = " + rs.getstring("description"));}     }    if(q.equalsignorecase("one")){          system.out.print("enter id: ");      }    int idnum=input.nextint();     resultset oners = stat.executequery("select * medtype where"+ (rs.getstring("id")+"="+idnum));     if(q.equalsignorecase("one")){           while (oners.next()) {             system.out.print("id = " + oners.getstring("id") + " ");             system.out.println("description = " + oners.getstring("description"));         }     }      rs.close();     oners.close();     conn.close();  } }  resultset oners = stat.executequery("select * medtype where"+    (rs.getstring("id")+"="+idnum)); 

this i'm having trouble. creating statement says return table if id equal user input. error

exception in thread "main" java.sql.sqlexception: [sqlite_error] sql error or missing database (near "=": syntax error)

in query trying access single row passing id.. in sql query using access single row passing information. select * medtype id=3 query return result set containing row or rows id equals 3. in code query should select * medtype id="+idnum+" if in db id column int. , keep query in if block i.e

 if(q.equalsignorecase("one")) {          system.out.print("enter id: ");          int idnum=input.nextint();     resultset oners = stat.executequery("select * medtype id="+idnum+" ");     // if id column in db int if string use id='"+idnum+"'                                                      while (oners.next())        {             system.out.print("id = " + oners.getstring("id") + " ");             system.out.println("description = " + oners.getstring("description"));         }  } 

Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -