mybatis3.2.3向数据库sql server 2005插入数据(insert)时返回主键值为空(null)或者1,
2013-11-14 19:17
375 查看
返回主键的三种种方式:
1:SET NOCOUNT ON SELECT @@IDENTITY AS ID
2:SELECT SCOPE_IDENTITY()
注意:insert语句必须写到<selectKey>标签里面,不然获取不到主键值,返回空值null。
3:配置:useGeneratedKeys="true" keyProperty="id"
注意:这种方式需要数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server) 。首先推荐使用这种方式。
通过以上三种方式,mybatis会自动把主键值存入传过来的参数User对象里面。在后台就可以用get方法获取id了。如下所示:
int rows = userDao.insert(user); //调用insert接口,返回影响的记录总数
int id = user.getId(); //得到主键值
1:SET NOCOUNT ON SELECT @@IDENTITY AS ID
<insert id="insert" parameterType="com.montnets.luoy.entity.User" > <selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" > SET NOCOUNT ON SELECT @@IDENTITY AS ID </selectKey> insert into tb_user (username, password, sex, email, age) values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{sex,jdbcType=TINYINT}, #{email,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}) </insert>
2:SELECT SCOPE_IDENTITY()
<insert id="insert" parameterType="com.montnets.luoy.entity.User" > <selectKey resultType="java.lang.Integer" keyProperty="id" > insert into tb_user (username, password, sex, email, age) values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{sex,jdbcType=TINYINT}, #{email,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}) SELECT SCOPE_IDENTITY() </selectKey> </insert>
注意:insert语句必须写到<selectKey>标签里面,不然获取不到主键值,返回空值null。
3:配置:useGeneratedKeys="true" keyProperty="id"
<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.montnets.luoy.entity.User"> insert into tb_user (username, password, sex, email, age) values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{sex,jdbcType=TINYINT}, #{email,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}) </insert>
注意:这种方式需要数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server) 。首先推荐使用这种方式。
通过以上三种方式,mybatis会自动把主键值存入传过来的参数User对象里面。在后台就可以用get方法获取id了。如下所示:
int rows = userDao.insert(user); //调用insert接口,返回影响的记录总数
int id = user.getId(); //得到主键值
相关文章推荐
- mybatis 插入数据并返回主键值
- mybatis 做 insert操作的时候返回插入的那条数据的id
- mybatis的insert语句插入数据时的返回值
- mybatis向mysql插入数据后返回插入的主键值
- mybatis 做 insert操作的时候返回插入的那条数据的id
- 使用Mybatis插入数据时返回唯一主键值
- mybatis insert 插入数据成功后返回值为 null
- mybatis做insert操作的时候 怎么才能返回插入的那条数据的id?
- mybatis 做 insert操作的时候返回插入的那条数据的id
- Mybatis插入操作 主键自增 返回成功 但是数据库没有数据
- mybatis做insert操作的时候 怎么才能返回插入的那条数据的id?
- mybatis insert操作 返回插入的那条数据的id
- 如何使用myBatis在数据库中插入数据并返回主键
- Mybatis 插入数据后返回主键值
- MyBatis进行insert操作时不能将数据插入到数据库
- Java mybatis insert语句返回插入数据ID
- SQL Server 2005返回刚刚插入的数据条目id值
- C# 把一个DT内的数据 批量插入到数据库里(SQL server 2005)
- SQL Server 2005 导出包含(insert into)数据的SQL脚本 (使用存储过程) 分类: 数据库
- mybatis 在dao层插入数据, 返回了影响的行数, 但是数据库里面有看到数据