java关于jdbc的insert语句问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java关于jdbc的insert语句问题?相关的知识,希望对你有一定的参考价值。
public void test()
conn = jdbcnet.getConn();
try
prep1 = conn.prepareStatement("INSERT INTO `list` (`user`,`01`,`02`,`03`,`汪建华`,`方旖旎`,`吴金霞`,`李影`,`朱丹`,`王一婷`,`蔡佳慧`,`熊美玲`,`程梦瑶`,`王爱华`,`查小奇`,`程滟`,`程建蓉`,`高玲玲`,`蔡美珍`,`孙玉婷`,`陈丹`) VALUES ('kk',1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)");
prep1.executeUpdate();
prep1.close();
conn.close();
catch (Exception e)
e.printStackTrace();
请问我这样写有什么错,同样的sql直接在数据库里可以执行,但放在代码里总是报错
Unknown column '???' in 'field list'
因为你代码中包含中文,在编译时因为编码不匹配,乱码了。
需要编译时指定编码,或者重设代码的编码。
如果有帮助到你,请点击采纳。 参考技术B Java jdbc编程中PreparedSatement类通过“? ”占位符完成预处理sql语句的参数预编译处理
语法如下:
1 sqllString = "insert into 表名 ( 字段名称1,字段名称2,字段名称3,...) values( ?,?,?...);"
2 实例化预处理对象
PreparedSatement pstmt = conn.prepareStatement(sqllString);
3 对占位符设置参数,序号从1开始
pstmt.setString(1, 第一个参数的值);
pstmt.setString(2, 第二个参数的值);
4 你的编程语句的插入语句的字段的值不能直接插入,只能填写?通过
对于的字段参数赋值方法完成
ps.setString(1,"user");
ps.setString(2,"01");
ps.setString(3,"02");
...
你明白了吗? 参考技术C
你肯定还没看java的异常捕获吧。
这个很简单,只要catch一下异常就行了。
插入失败是会报错的,你捕获这个错误,返回给你,即可。
示例代码:
trystat.executeUpdate(sql);
catch (SQLException e)
out.println("<p style=\\"font-size:20px;color:red\\">"+"出错啦,请联系管理员!<br>"+"错误信息:"+e.toString()+""+"</p>");
JDBC用函数执行INSERT语句
【中文标题】JDBC用函数执行INSERT语句【英文标题】:JDBC execute INSERT statement with a function 【发布时间】:2014-03-02 12:10:35 【问题描述】:如何使用JDBC执行INSERT
语句,该语句在VALUES
子句中有用户定义的PL/SQL函数?
INSERT INTO table_name VALUES (plsql_func_name('?'),?,?,?);
应该使用prepareStatement()
还是callablestatement()
?
【问题讨论】:
您应该使用prepareStatement()
,但不能将?
括在括号中。所以应该是VALUES (plsql_func_name(?),?,?,?)
而不是... plsql_func_name('?') ...
谢谢,我会试试的。
@a_horse_with_no_name 这应该是一个答案。
【参考方案1】:
参数周围的撇号是您的撤消。试试这个方法:
INSERT INTO table_name VALUES (plsql_func_name(?),?,?,?);
请记住,撇号由预处理语句处理,因为这是它的主要工作之一(因为它还必须防止潜在的 SQL 注入)。
【讨论】:
以上是关于java关于jdbc的insert语句问题?的主要内容,如果未能解决你的问题,请参考以下文章
INSERT 语句上的 Spring JDBC NullPointerException [重复]
使用 Postgresql JDBC 时,将导致插入 0 行的 INSERT 语句
获取 mysql(innodb) AUTO_INCREMENT Column、JDBC/getGeneratedKeys()/last_insert_id (in OkPacket) 和 LAST_I