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