java - How to INSERT rows using UCanAccess? -
i using windows 8 64 bit , netbeans 8.1, java 8
i know in java 8 jdbc-odbc bridge removed. using ucanaccess have 1 problem
i trying read data ms access using code
(1)
package javaapplication1; /** * * @author jay */ import java.sql.*; public class javaapplication1 { public static void main(string[] args) { connection cn; statement st; resultset re; try{ class.forname("net.ucanaccess.jdbc.ucanaccessdriver"); cn=drivermanager.getconnection("jdbc:ucanaccess://d://j//db//database.accdb"); st = cn.createstatement(); re=st.executequery("select * db1"); while(re.next()) { system.out.println(re.getstring(1)); } catch(classnotfoundexception | sqlexception e) { system.out.println(e); } } }
i have inserted data manually in msaccess got out
run:
a b build successful (total time: 1 second)
but when try insert data using following java code
(2)
package javaapplication1; /** * * @author jay */ import java.sql.*; public class javaapplication1 { public static void main(string[] args) { connection cn; statement st; resultset re; try{ class.forname("net.ucanaccess.jdbc.ucanaccessdriver"); cn=drivermanager.getconnection("jdbc:ucanaccess://d://j//db//database.accdb"); st = cn.createstatement(); re=st.executequery("insert db1 values('a','a')"); system.out.println("inserted") catch(classnotfoundexception | sqlexception e) { system.out.println(e); } } }
i got error:
net.ucanaccess.jdbc.ucanaccesssqlexception: ucaexc:::3.0.3.1 java.lang.nullpointerexception java.lang.nullpointerexception build successful (total time: 0 seconds)
after 3rd way try
(3)
/** * * @author jay */ import java.sql.*; public class javaapplication1 { public static void main(string[] args) { connection cn; statement st; resultset re; string id ="username"; string name="password"; try{ class.forname("net.ucanaccess.jdbc.ucanaccessdriver"); cn=drivermanager.getconnection("jdbc:ucanaccess://d://j//db//database.accdb"); st = cn.createstatement(); string q ="insert db1 values('"+id+"','"+name+"'))"; st.executequery(q); system.out.println("inserted") catch(classnotfoundexception | sqlexception e) { system.out.println(e); } } }
i tried many different ways of inserting:
string q ="insert db1 (id,name) values('"+id+"','"+name+"'))";
when comment passed upper side , try direct values inserted
string q ="insert db1 (id,name) values('a','b'))";
but got error
run: net.ucanaccess.jdbc.ucanaccesssqlexception: ucaexc:::3.0.3.1 unexpected token: ) build successful (total time: 0 seconds)
you trying use executequery
perform insert, executequery
select queries. try using executeupdate
instead.
string q = "insert db1 ([id], [name]) values (?, ?)"; preparedstatement st = cn.preparestatement (q); st.setstring(1, "a"); st.setstring(2, "b"); st.executeupdate();
Comments
Post a Comment