1 java netbeans jdbc ucanaccess
我正在使用Windows 8 64位和NetBeans 8.1,Java 8
我知道在Java 8中删除了jdbc-odbc桥。我正在使用ucanaccess但有一个问题
我正在尝试使用此代码从MS Access读取数据
(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 * from db1");
while(re.next())
{
System.out.println(re.getString(1));
}
catch(ClassNotFoundException | SQLException e)
{
System.out.println(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经在msaccess中手动插入了数据,我们知道了
跑:
a
a
b
BUILD SUCCESSFUL (total time: 1 second)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用以下Java代码插入数据时
(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 into db1 values('a','a')");
System.out.println("inserted")
catch(ClassNotFoundException | SQLException e)
{
System.out.println(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.3.1 java.lang.NullPointerException java.lang.NullPointerException
BUILD SUCCESSFUL (total time: 0 seconds)
Run Code Online (Sandbox Code Playgroud)
经过第三种方式尝试
(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 into db1 values('"+ID+"','"+NAME+"'))";
st.executeQuery(q);
System.out.println("inserted")
catch(ClassNotFoundException | SQLException e)
{
System.out.println(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了许多不同的插入方式:
String q ="insert into db1 (ID,NAME) values('"+ID+"','"+NAME+"'))";
Run Code Online (Sandbox Code Playgroud)
当我评论已经通过上侧并尝试插入直接值时
String q ="insert into db1 (ID,NAME) values('a','b'))";
Run Code Online (Sandbox Code Playgroud)
但是得到这个错误
run:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.3.1 unexpected token: )
BUILD SUCCESSFUL (total time: 0 seconds)
Run Code Online (Sandbox Code Playgroud)
您试图用来executeQuery执行INSERT,但executeQuery仅用于SELECT查询。尝试executeUpdate改用。
String q = "INSERT INTO db1 ([ID], [NAME]) VALUES (?, ?)";
PreparedStatement st = cn.prepareStatement (q);
st.setString(1, "a");
st.setString(2, "b");
st.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4628 次 |
| 最近记录: |