大牛们,帮看一下呗!java中数据库插入信息遇到了一个问题

dancheng_work 2016-11-05 06:46:01

static void create() throws SQLException{
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
st = (Statement) conn.createStatement();

String sql = "insert into user(name, birthday, money) value('name1', '1978-02-01', 400)";

int i = st.executeUpdate(sql);
System.out.println("i = " + i);
} finally {
JdbcUtils.free(rs, st, conn);
}
}


提示错误是:
Exception in thread "main" java.sql.SQLException: Field 'id' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1605)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524)
at cn.itcast.jdbc.Crud.create(Crud.java:23)
at cn.itcast.jdbc.Crud.main(Crud.java:11)



明明我的id已经设置成主键了,为什么还让我自己复制
...全文
134 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dancheng_work 2016-11-05
  • 打赏
  • 举报
回复
嗯,换成自动增长的就好了,谢谢!
喵爱旺 2016-11-05
  • 打赏
  • 举报
回复
如果是MYSQL,id仅仅是设置成主键还不够,还要设成自动增长(Auto Increase)
DonaldGhk 2016-11-05
  • 打赏
  • 举报
回复
直白点,在mysql console里直接执行 insert into user(name, birthday, money) value('name1', '1978-02-01', 400) 可以么?
嵩园 2016-11-05
  • 打赏
  • 举报
回复
你有没有设置AUTO_INCREMENT,没有的话肯定要传入id的值啊
DonaldGhk 2016-11-05
  • 打赏
  • 举报
回复
表结构有么?给一个

62,624

社区成员

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

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