package?com.itjob.bookstore.dao;
import?java.beans.Statement;
import?java.sql.Connection;
import?java.sql.DriverManager;
import?java.sql.PreparedStatement;
import?java.sql.ResultSet;
import?java.sql.SQLException;
import?com.itjob.bookstore.vo.User;
public?class?UserDao?{
public?void?registerUser(User?user)?{
String?driver="oracle.jdbc.driver.OracleDriver";
String?url="jdbc:oracle:thin:@192.168.0.1:1521:orcl";
String?username="panyu";
String?userpwd="panyu329";
Connection?conn=null;
Statement?stm=null;
ResultSet?rs=null;
try?{
Class.forName(driver);
conn?=?DriverManager.getConnection(url,?username,?userpwd);
StringBuffer?sql=new?StringBuffer();
sql.append("insert?into?users(user_account,user_password,user_name,user_sex,user_birth,");
sql.append("user_tel,user_phone,user_address,user_post,user_email,user_tag)?values?(");
sql.append("sql_bookstore.nextval,");
sql.append(user.getUser_account());
sql.append(",");
sql.append(user.getUser_password());
sql.append(",");
sql.append(user.getUser_name());
sql.append(",");
sql.append(user.getUser_sex());
sql.append(",");
sql.append(user.getUser_birth());
sql.append(",");
sql.append(user.getUser_tel());
sql.append(",");
sql.append(user.getUser_phone());
sql.append(",");
sql.append(user.getUser_address());
sql.append(",");
sql.append(user.getUser_post());
sql.append(",");
sql.append(user.getUser_email());
sql.append(",");
sql.append(user.getUser_tag());
sql.append("?)");
System.out.println(sql.toString());
PreparedStatement?ps=conn.prepareStatement(sql.toString());
ps.executeUpdate();
}?catch?(Exception?e)?{
e.printStackTrace();
}finally{
if(conn!=null)
try{
conn.close();
}catch(SQLException?e){
e.printStackTrace();
}
}
}
}
这个是我写的一个连接数据库的程序,可是在运行的时候提示的却是,如下信息:
insert?into?users(user_account,user_password,user_name,user_sex,user_birth,user_tel,user_phone,user_address,user_post,user_email,user_tag)?values?(sql_book.nextval,33,33,33,1,33,33,33,null,33,33,1?)
java.sql.SQLException:?ORA-00913:?值过多
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:573)
at?oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at?oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
at?oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
at?oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
at?oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
at?oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at?com.itjob.bookstore.dao.UserDao.registerUser(UserDao.java:56)
at?com.itjob.bookstore.bo.UserBo.registerUser(UserBo.java:14)
at?com.itjob.bookstore.servlet.RegisterServlet.doPost(RegisterServlet.java:91)
at?javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at?javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at?org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at?org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at?org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at?org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at?org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at?org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at?org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at?org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at?org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at?org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at?org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at?org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at?org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at?java.lang.Thread.run(Thread.java:595)
上面这个是上面意思呢?是不是在插入数据的时候,要按照数据库定义的顺序插入呢?