java中往Access数据库里插入记录的问题

时间:2022-10-27 21:45:43
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:shop","user","");
Statement stm=conn.createStatement();
String sqlCommand="insert into output(代码,数量) values(\'11111\',\'sunrg\')";
stm.executeUpdate(sqlCommand);
编译后没有任何错误提示,检查Access数据库时,数据库提示有不安全的东西,是否打开,点击打开,记录并没有插进去,怎么办?

11 个解决方案

#1


String   sqlCommand="insert   into   output(代码,数量)   values(\'11111\',\'sunrg\')"; 
什么乱七八糟的,\哪儿来的

#2


INSERT INTO output VALUES('1111','sunrg');
试试

#3


你的数据库连接没问题吧。。。
我是这样连access数据库的:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioin connection = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=E:\\pagination\\mdf\\pagination.mdb","", "");
Statement stmt=conn.createStatement() ;

#4


不好意思,上面那个变量写错了。。
最后一句应该是这样:
Statement stmt=connection.createStatement();

#5


我估计连接没问题,我也按照楼上说的试验了,不过执行时说没有数据源,我发现按照我那种方式弄,在执行后没有任何提示,只不过数据库旁有多了个*.ldb这么个文件,好像是数据库被锁上了,不知该怎么解决。请帮帮我!!

#6


用我连接数据库的那种方式可以执行stm.executeQuery("select * from output")这条语句,并且可以打印出里面的记录,就是不能插入记录,怎么办?

#7


刚才又试验了一下,如果插入与查询一起做,就能成功,怎么回事呢?
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:shop","sz","sz");
Statement stm=conn.createStatement();

stm.executeUpdate("insert into input(代码,数量) values(\'1111\',\'2222\')");
ResultSet rs=stm.executeQuery("select * from input");
rs.next();
for(int i=0;i<rs.getRow();i++)
{
System.out.println(rs.getString("代码"));
rs.next();
}

#8


你每次更新数据库后有没有先关闭数据库的连接?

Connectioin   connection   =null;
try{
   connection=...
   ...
}catch(Exception ex){
     ...
}finally{
  try{connection.close(0);}catch(Exception ex){}
}

#9


没有关闭数据库,在我印象中好像是到最后不用时才关闭,插入与查询一起做就可以,这时也没关闭数据库。

#10


你好像提示不安全那个没有事是因为你数据库连接后没有关闭连接。
我觉得是不是楼主的插入时的类型写错了因为“代码,数量”中好像有数字类型的。
楼主可以用查询器看看方法是打开数据库然后选择查询那一项然后双击“在设计视图中创建查询”那一项然后将“显示表”窗口关闭在“选择查询”那个窗口中点击右键选择“SQL特定查询”然后再右侧的菜单中选择“联合”然后输入你想要查询的语句点“!”就可以执行了你试试看看好不好用!如果是语句错误就修改一下

#11


谢谢各位,问题解决了,分数不多,小小心意

#1


String   sqlCommand="insert   into   output(代码,数量)   values(\'11111\',\'sunrg\')"; 
什么乱七八糟的,\哪儿来的

#2


INSERT INTO output VALUES('1111','sunrg');
试试

#3


你的数据库连接没问题吧。。。
我是这样连access数据库的:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connectioin connection = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=E:\\pagination\\mdf\\pagination.mdb","", "");
Statement stmt=conn.createStatement() ;

#4


不好意思,上面那个变量写错了。。
最后一句应该是这样:
Statement stmt=connection.createStatement();

#5


我估计连接没问题,我也按照楼上说的试验了,不过执行时说没有数据源,我发现按照我那种方式弄,在执行后没有任何提示,只不过数据库旁有多了个*.ldb这么个文件,好像是数据库被锁上了,不知该怎么解决。请帮帮我!!

#6


用我连接数据库的那种方式可以执行stm.executeQuery("select * from output")这条语句,并且可以打印出里面的记录,就是不能插入记录,怎么办?

#7


刚才又试验了一下,如果插入与查询一起做,就能成功,怎么回事呢?
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:shop","sz","sz");
Statement stm=conn.createStatement();

stm.executeUpdate("insert into input(代码,数量) values(\'1111\',\'2222\')");
ResultSet rs=stm.executeQuery("select * from input");
rs.next();
for(int i=0;i<rs.getRow();i++)
{
System.out.println(rs.getString("代码"));
rs.next();
}

#8


你每次更新数据库后有没有先关闭数据库的连接?

Connectioin   connection   =null;
try{
   connection=...
   ...
}catch(Exception ex){
     ...
}finally{
  try{connection.close(0);}catch(Exception ex){}
}

#9


没有关闭数据库,在我印象中好像是到最后不用时才关闭,插入与查询一起做就可以,这时也没关闭数据库。

#10


你好像提示不安全那个没有事是因为你数据库连接后没有关闭连接。
我觉得是不是楼主的插入时的类型写错了因为“代码,数量”中好像有数字类型的。
楼主可以用查询器看看方法是打开数据库然后选择查询那一项然后双击“在设计视图中创建查询”那一项然后将“显示表”窗口关闭在“选择查询”那个窗口中点击右键选择“SQL特定查询”然后再右侧的菜单中选择“联合”然后输入你想要查询的语句点“!”就可以执行了你试试看看好不好用!如果是语句错误就修改一下

#11


谢谢各位,问题解决了,分数不多,小小心意