对ORACLE数据库插入时出现的问题

jungle_sj 2004-05-08 08:45:06
以下是数据库选增删改的数据库操作bean
package dbbean;

/**
* Title: select insert update and delete
* Description: select insert update and delete
* Copyright: Copyright (c) 2004
* @author shenjun
* @version 1.0
*/
import java.io.Serializable;
import java.sql.*;

public class SqlBean implements Serializable {
private String query_statement; /*定义sql语句*/
private String param[]; /*查询条件,或者是新的记录*/
private ResultSet result = null;
private Connection conn;

public void setParam(String[] param) {
this.param = param;
}

public void setQuerystatement(String query_statement) {
this.query_statement = query_statement;
}

public void setConnection(String driverName, String jdbcURL, String username,
String passwd) throws Exception {
Connection conn1;
Class.forName(driverName);
conn1 = DriverManager.getConnection(jdbcURL, username, passwd);
if (conn1==null)
throw new SQLException("No Connection be Set!");
conn1.setAutoCommit(false);
this.conn = conn1;
}

/*获取查询结果*/
public ResultSet getResult() {
try {
PreparedStatement select_stm = conn.prepareStatement(query_statement,
java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_READ_ONLY);
if (param != null) {
for (int i = 0; i < param.length; i++) {
select_stm.setString(i + 1, param[i]);
}
}
result = select_stm.executeQuery();
//select_stm.close();
}
catch (Exception e) {
e.printStackTrace();
}
return result;
}

/*对数据库进行增加记录操作*/
public void insertRecord() throws SQLException,
java.io.UnsupportedEncodingException {
try {
PreparedStatement insert_stm = conn.prepareStatement(query_statement);
if (param != null) {
for (int i = 0; i < param.length; i++) {
insert_stm.setString(i + 1, param[i]);
}
}
insert_stm.executeUpdate();
insert_stm.close();
conn.commit();
}
catch (Exception e) {
e.printStackTrace();
conn.rollback();
}
}

/*对数据记录进行更改操作*/
public void updateRecord() throws SQLException,
java.io.UnsupportedEncodingException {
try {
PreparedStatement update_stm = conn.prepareStatement(query_statement);
if (param != null) {
for (int i = 0; i < param.length; i++) {
update_stm.setString(i + 1, param[i]);
}
}
update_stm.executeUpdate();
update_stm.close();
conn.commit();
}
catch (Exception e) {
e.printStackTrace();
conn.rollback();
}
}

/*删除数据记录*/
public void deleteRecord() throws SQLException,
java.io.UnsupportedEncodingException {
try {
PreparedStatement delete_stm = conn.prepareStatement(query_statement);
if (param != null) {
for (int i = 0; i < param.length; i++) {
delete_stm.setString(i + 1, param[i]);
}
}
delete_stm.executeUpdate();
delete_stm.close();
conn.commit();
}
catch (Exception e) {
e.printStackTrace();
conn.rollback();
}
}
}

以下是我在程序中调用数据库bean以进行增加记录的操作

String[] param1 = {};
querybean.setQuerystatement(
"insert into ads_info (ads_id,ads_nm,ads_dn_dir,ads_dn_file,ads_dir,ads_file,ads_type,ads_status,last_upd_opr_id,last_upd_tm) values ('111111','jjjjjj','fgfsdg','sdfgsfd','fgsdfg','fgdg','00','00',' ','20040508200852')");
querybean.setParam(param1);
querybean.insertRecord();

但是老是插不进去,报错:
java.sql.SQLException: ORA-01861: literal does not match format string


at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)

at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)

at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)

at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)

at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)

at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132)

at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2877)

at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:608)

at dbbean.SqlBean.insertRecord(SqlBean.java:68)

at com.fft.console.adsmanage.adsinfomanage.AdsinfoAction.execute(AdsinfoAction.java:68)

at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)

at java.lang.Thread.run(Thread.java:534)

不知道是为什么,另外就是我用相同的方法来进行数据库的选择和更新操作都是成功,而且如果单独把insert语句拷贝出来直接运行的话也是可以的,真的不知道为什么了,请大家帮帮忙吧

英文域名 数据类型 缺省值 可空
ads_id char(6) NO
ads_nm varchar(20) NO
ads_dn_dir varchar(100) NO
ads_dn_file varchar(50) NO
ads_dir varchar(50) NO
ads_file Varchar(50) NO
ads_type char(2) NO
ads_status char(2) NO
Last_upd_opr_id char(8) YES
Last_upd_tm char(14) YES

...全文
96 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧