mybatis插入数据之后获得主键值
2016-03-03 18:54
260 查看
之前在网上搜了很多教程示例,但是实现起来都没有成功,弄了一下午终于给弄好了。
首先是DAO里,声明方法,注意我传入的参数是自定义的类型。还有注意我这儿方法返回类型是void。int也行,返回的是数据库改变行的行数。
public void addAtlas(@Param("atlas")Atlas atlas);
接着是mapper文件里。
这里keyProperty="atlas.id"这句话很重要,由于我传入的是atlas,所以要这样写才对,意思是将返回的ID值设置到atlas这个对象的id属性上,如果直接写成“id”,将一直报错。Parameter 'id' not found. Available parameters are [param1, atlas]] with root cause。Parameter 'id' not found. Available parameters are [param1, atlas]
然后在biz类里,进行处理。
System.out.println(atlasDao.addAtlas(atlas));
System.out.println(111111111);
System.out.println(atlas.getId());
然后由于在mapper文件里设置了atlas.id,所以用getId()方法就可以正确取到主键的值了。还有貌似实体类和数据库字段起名不一样,也要先配置下resultMap,好像是这样。
首先是DAO里,声明方法,注意我传入的参数是自定义的类型。还有注意我这儿方法返回类型是void。int也行,返回的是数据库改变行的行数。
public void addAtlas(@Param("atlas")Atlas atlas);
接着是mapper文件里。
<insert id="addAtlas" parameterType="Atlas" useGeneratedKeys="true" keyProperty="atlas.id" keyColumn="图册ID" > insert into 矿权图册 ( 用户ID, 图册名称, 年度, 图册类型, 是否发布 <if test="atlas.atlasDescription!=null">,描述信息</if> ) values( #{atlas.userId}, #{atlas.atlasName}, #{atlas.atlasYear}, #{atlas.atlasType}, #{atlas.published} <if test="atlas.atlasDescription!=null">,#{atlas.atlasDescription}</if> ) </insert>
这里keyProperty="atlas.id"这句话很重要,由于我传入的是atlas,所以要这样写才对,意思是将返回的ID值设置到atlas这个对象的id属性上,如果直接写成“id”,将一直报错。Parameter 'id' not found. Available parameters are [param1, atlas]] with root cause。Parameter 'id' not found. Available parameters are [param1, atlas]
然后在biz类里,进行处理。
System.out.println(atlasDao.addAtlas(atlas));
System.out.println(111111111);
System.out.println(atlas.getId());
然后由于在mapper文件里设置了atlas.id,所以用getId()方法就可以正确取到主键的值了。还有貌似实体类和数据库字段起名不一样,也要先配置下resultMap,好像是这样。
相关文章推荐
- 可编辑的div元素去除粘贴复制带来的额外样式,实现纯文本粘贴
- Factstone Benchmark
- 出差(九)
- max6sdk
- onEnter和init
- Android截图的两种方法
- matlab GUI新手入门——基本概念
- Xcode - 必不可少的插件
- linux shell 编程笔记 - 常用的find和xargs
- [JAVA · 初级]:5.以我微观看变量
- 算法代码实现之二分法查找,C/C++实现
- android: UriMatcher的用法
- Iptables配置心得
- java基础之一java环境的搭建
- 构建内网的MySQL的yum源
- 历届试题 错误票据
- bzoj1091 切割多边形 枚举&计算几何
- Zigbee单播、组播、广播网络通信
- 《C#高级编程》读书笔记
- Android Cordova 插件开发之自定义插件生成安装包