在新增数据(执行插入语句)时MySQL自增长字段的处理

很多时候,我们设计的数据中会有自增长字段,比如序号。
然而,自增长字段在插入数据时该怎么处理呢??

1.若不做处理(爆错)

public boolean addUser(User user) {
		// TODO Auto-generated method stub 
		String sql = "insert into user values(?,?,?,?,?,?,?,?,?)";
		Object[] params = {user.getName(),user.getPassword(),user.getSex(),user.getBirthday(),user.getEmail(),user.getHobby(),
				user.getIntro(),user.getVoice(),user.getDiary()};
		return DBUtil.executeUpdate(sql,params);
	}

插入的 user 表中一共有10个字段,其中第一个便是自增长字段 id,上述语句中有9个占位符,插入的数据也是9个数据,对应9个占位符。

则出现如下错误:

Column count doesn't match value count at row 1

2.正确处理:

public boolean addUser(User user) {
		// TODO Auto-generated method stub 
		//在自增长字段 id 处添加 NULL/DEFAULT 均可行
		String sql = "insert into user values(NULL,?,?,?,?,?,?,?,?,?)";
		Object[] params = {user.getName(),user.getPassword(),user.getSex(),user.getBirthday(),user.getEmail(),user.getHobby(),
				user.getIntro(),user.getVoice(),user.getDiary()};
		return DBUtil.executeUpdate(sql,params);
	}

如上,在插入语句 sql 中, id (自增长字段)对应位置处 添加 了 NULL(添加 DEFAULT 同样可行),而插入的数据依旧是9个占位符对应的9个字段数据(每当插入一个记录,id 就会对应自增长)。

这样,就可以在包含自增长字段的表中插入数据啦!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值