java中执行access数据库插入错误!!!急!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中执行access数据库插入错误!!!急!!!相关的知识,希望对你有一定的参考价值。
数据库连接是没问题的,执行查询可以成功的插入语句为
private static final String INSERT_SQL = "INSERT INTO USER(USER_NAME,USER_PWD,"
+ "USER_TYPE,USER_NIC_NAME,SEX,ADD,TEL,E-Mail,USER_ID) VALUES(?,?,?,?,?,?,?,?)";
public void insert(User user) throws Exception
Connection con = DbConnection.getConnection();
PreparedStatement ps = null;
try
ps = con.prepareStatement(INSERT_SQL);
ps.setString(1, user.getUserName());
ps.setString(2, user.getUserPassword());
ps.setShort(3, user.getType());
ps.setString(4, user.getNickname());
ps.setString(5, user.isSex());
ps.setString(6, user.getAddress());
ps.setString(7, user.getPhoneNumber());
ps.setString(8, user.getEmail());
// ps.toString();
// System.out.println();
ps.executeUpdate();
catch (SQLException e)
e.printStackTrace();
System.out.println(e.getSQLState());
throw new DaoException("插入用户失败!");
finally
DBUtil.close(ps, con);
下面是打印的异常信息:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(Unknown Source)
at com.zj.cpms.daoimpl.UserDaoImpl.insert(UserDaoImpl.java:40)
at com.zj.cpms.daoimpl.UserDaoImpl.main(UserDaoImpl.java:246)
有熟悉access的高手帮帮忙
insert的最后一个参数USER_ID去掉结果是一样的,同样的异常信息
下面的两方法试了.不行!!!!
找到答案了,E-Mail字段可能是ACCESS内置的,改为其它的就好了
private static final String INSERT_SQL = "INSERT INTO `USER`(USER_NAME,USER_PWD,"
+ "USER_TYPE,USER_NIC_NAME,SEX,ADD,TEL,E-Mail,USER_ID) VALUES(?,?,?,?,?,?,?,?)";
如果不行用单引号试试 参考技术A insert里面字段有9个参数,但是后面只有8个“?”
===============================================
INSERT INTO USER改成INSERT INTO [USER] 参考技术B 换一个表名,重新连接一下JDBC-ODBC再试试,,,,
[急急急]mysql不允许插入'(单引号)??
一个asp页,目的是 向目标列插入值
目标列的类型为text
但是如果插入字符串中含有' 也就是单引号
就会报错(原来用asp插入Access数据库的时候一切正常)
ADODB.Connection.1 (0x80004005)
SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
插入其他东西,比如asdfsdfsdaer或者双引号、问好都没问题
只是不能含有单引号
出错原因,个人感觉应该是程序误把单引号当作asp文件中的字符串结束符
如:
strSQL = "Insert Into mdb_movie(mdb_type) Values('"&request.Form("a1")&"')"
如果其中误把a1中的内容的单引号当作了命令符,整个语句就会多余一个单引号。所以肯定会出错
就是不知道要怎么修改,才能使插入单引号不报错
谢谢
例如插入~本身就应该表示成~~
你看看不知道是不是有帮助!
以上是关于java中执行access数据库插入错误!!!急!!!的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Access 和 Java JDBC-ODBC 错误