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

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -