INSERT INTO user(name,pass,role,realName,gender,age,phone,email,address,registerTime)VALUES(?,?,?,?,?,?,?,?,?,?)
java.sql.SQLException: Field 'id' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
at com.bsw.user.UserDAO.insertUser(UserDAO.java:161)
at com.bsw.servlet.common.RegisterControl.doPost(RegisterControl.java:108)
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:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
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(Unknown Source) 用户注册或者信息的id应该怎么设置成自动生成的???
java.sql.SQLException: Field 'id' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
at com.bsw.user.UserDAO.insertUser(UserDAO.java:161)
at com.bsw.servlet.common.RegisterControl.doPost(RegisterControl.java:108)
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:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
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(Unknown Source) 用户注册或者信息的id应该怎么设置成自动生成的???
解决方案 »
- spring security 如何自定义验证方法
- java与c#的运行效率
- Begin event threw exception
- 求在JSP中显示树形结构(在线等)。。。。。
- 求助!谢谢各位好心人
- 关于业务逻辑设计的问题
- 如何使用超连接下载txt文件
- (急急急)请教:关于hibernate的问题 :Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]将
- 小问题
- 模态窗口父窗口向子窗口传值显示在select中的option选项中
- web开发学的很差怎么办?
- 后台发一数据到jsp然后展示出来,但不能修改,提交后要同时把给数据传到后台
@Id
@GeneratedValue(generator = "generator")
@Column(name = "USERID", unique = true, nullable = false, length = 32)
public String getUserid() {
return this.userid;
} public void setUserid(String userid) {
this.userid = userid;
}
个人认为这个问题是id没有设置默认值并增长的值,但是我不晓得怎么解决这个问题··
-- Create sequence
create sequence SEQ_PROBE
minvalue 1
maxvalue 9999999999999999999999999999
start with 2000
increment by 1
cache 20;
create table user(
id int(4) not null AUTO_INCREMENT,
name varchar(20) not null,
pass varchar(20) not null,
role int(1) not null,
realName varchar(20),
gender varchar(2),
age int(3) ,
phone varchar(11),
email varchar(32),
address varchar(32),
postcode varchar(6),
registerTime varchar(20),
primary key(id)
)ENGINE=InnoDB DEFAULT CHARSET=gb2312;
但是现在又出现另一个问题·
insert into user(name,pass,role,realName,gender,age,phone,email,address,registerTime)VALUES(?,?,?,?,?,?,?,?,?,?)
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'name' cannot be null
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1036)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
at com.bsw.user.UserDAO.insertUser(UserDAO.java:164)
at com.bsw.servlet.common.RegisterControl.doPost(RegisterControl.java:108)
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:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
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(Unknown Source)
com.bsw.user.User@fffa61
sqlState.append("insert into user(name,pass,role,");
//sqlState.append("insert into user(name,pass,role,");
sqlState.append("realName,gender,age,phone,email,address,registerTime");
sqlState.append(")VALUES(?,?,?,?,?,?,?,?,?,?)");
//sqlState.append(")VALUES(?,?,?,?,?,?,?,?,?,?,?)");
System.out.println(sqlState);
try { preState = connection.prepareStatement(sqlState.toString()); // 采用预处理方式 preState.setString(1, user.getName()); // 设置每个要插入的的属性
preState.setString(2, user.getPass());
preState.setInt(3, user.getRole());
preState.setString(4, user.getRealName());
preState.setString(5, user.getGender());
preState.setInt(6, user.getAge());
preState.setString(7, user.getPhone());
preState.setString(8, user.getEmail());
preState.setString(9, user.getAddress());
preState.setDate(10, user.getRegisterTime());
// preState.execute("begin"); // 事务开始
preState.executeUpdate();
// preState.execute("commit"); // 提交插入操作
return true;
} catch (SQLException e) { /*try {
preState.execute("rollback"); // 回滚
} catch (SQLException e1) {
e1.printStackTrace();
}*/
e.printStackTrace();
return false;
} finally {
DBManager.closeAll(connection, preState, resultSet);
}
}
控制台就出现这种
insert into user(name,pass,role,realName,gender,age,phone,email,address,registerTime)VALUES(?,?,?,?,?,?,?,?,?,?)
null
个人认为是页面传值的问题
取不到注册的值?
是啥子原因安?
create table user(
id int(4) not null AUTO_INCREMENT,
name varchar(20) ,
pass varchar(20) ,
role int(1) ,
realName varchar(20),
gender varchar(2),
age int(3) ,
phone varchar(11),
email varchar(32),
address varchar(32),
postcode varchar(6),
registerTime varchar(20),
primary key(id)
)ENGINE=InnoDB DEFAULT CHARSET=gb2312;好了,你把上面这句话在数据库中执行一下。
如果你是用的servlet的话,取request.getParameter("username");
这里最好你在控制台输出一下,看是否有取到值.