Mybatis+Mysql 返回主键的值
2015-08-05 12:15
615 查看
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。
方法:在mapper中指定keyProperty属性,示例如下:
Xml代码
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>
如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。
User.java
Java代码
public class User {
private int userId;
private String userName;
private String password;
private String comment;
//setter and getter
}
UserDao.java
Java代码
public interface UserDao { public int insertAndGetId(User user); }
测试:
Java代码
User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能");
System.out.println("插入前主键为:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:"+user.getUserId());
输出:
Shell代码
插入前主键为:0
插入后主键为:15
查询数据库:
如上所示,刚刚插入的记录主键id为15
方法:在mapper中指定keyProperty属性,示例如下:
Xml代码
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> insert into user(userName,password,comment) values(#{userName},#{password},#{comment}) </insert>
如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。
User.java
Java代码
public class User {
private int userId;
private String userName;
private String password;
private String comment;
//setter and getter
}
public class User { private int userId; private String userName; private String password; private String comment; //setter and getter }
UserDao.java
Java代码
public interface UserDao { public int insertAndGetId(User user); }
public interface UserDao { public int insertAndGetId(User user); }
测试:
Java代码
User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能");
System.out.println("插入前主键为:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:"+user.getUserId());
User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:"+user.getUserId()); userDao.insertAndGetId(user);//插入操作 System.out.println("插入后主键为:"+user.getUserId());
输出:
Shell代码
插入前主键为:0
插入后主键为:15
插入前主键为:0 插入后主键为:15
查询数据库:
如上所示,刚刚插入的记录主键id为15
相关文章推荐
- MySQL服务器最大连接数的合理设置
- mysql event
- mysql 导出数据到csv文件的命令
- MySQL主从同步读写分离的集群配置
- mysql学习
- mysql连接字符集
- MySQL The password hash doesn't have the expected format.
- mysql 违反注入 问题
- [资料收集]MySQL在线DDL工具pt-online-schema-change
- MySQLAdmin的用法
- Lost connection to MySQL server at ‘reading initial communication packet错误解决
- MySQL数据库连接超时(wait_timeout)问题的处理
- mysql中binlog_format模式与配置详解
- Mybatis连接mysql数据库出现乱码
- 用make编译方法安装mysql 出现的问题
- mysql查询速度慢的原因[整理版]
- mysql数据库单表只有一个主键自增id字段,ibatis实现id自增
- MySQL 5.6 for Windows 解压缩版配置安装
- Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
- mysql时间的处理