第一、一对一:

<resultMap type="com.zktx.platform.entity.tb.Module" id="BaseResultMap">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="class_name" jdbcType="VARCHAR" property="class_name"/>
<result column="description" jdbcType="VARCHAR" property="description"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="priority" jdbcType="INTEGER" property="priority"/>
<result column="sn" jdbcType="VARCHAR" property="sn"/>
<result column="url" jdbcType="VARCHAR" property="url"/>
<result column="parent_id" jdbcType="INTEGER" property="parent_id"/>
<association column="parent_id" property="parent_Module" select="selectById"></association>
</resultMap> <select id="queryList" resultMap="BaseResultMap">
select * from tb_module m1 left join tb_module m2 on m1.parent_id =m2.id
</select>
<select id="selectById" parameterType="java.lang.Integer" resultType="com.zktx.platform.entity.tb.Module">
select * from tb_module where id=#{parent_id}
</select>

对应java的dao层代码:

List<Module> queryList();

第二、批量删除

<delete id="deleteByIds" parameterType="java.util.List">
delete from tb_module where id in
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item,jdbcType=INTEGER}
</foreach>
</delete>

对应的java的dao层代码:

void deleteByIds(List<Integer> ids);

 第三、批量增加

<insert id="insertBatch" parameterType="java.util.List">
insert into tb_role_permission (permission_id,role_id) VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.permission_id,jdbcType=INTEGER},#{item.role_id,jdbcType=INTEGER})
</foreach>
</insert>

对应的java代码:

void insertBatch(List<RolePermission> rolePermissions);

第四、插入数据,返回id

<insert id="insertSelective" parameterType="com.zktx.platform.entity.tb.Module" >
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() AS id
</selectKey>

insert into tb_module
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="class_name!=null">
class_name,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="class_name!=null">
#{class_name,jdbcType=VARCHAR},
</if>
</trim>
</insert>

java代码(返回的id在参数module中):

public void insertSelective(Module module) {
int id = moduleMapper.insertSelective(module);
if (id > 0) {
List<Permission> permissions = module.getPermissions();
if (null != permissions && permissions.size() > 0) {
for (Permission permission : permissions) {
permission.setModule_id(module.getId());
}
permissionMapper.insertBatch(permissions);
}
}
}

 第五、批量插入返回数据:

批量时,传入list,获取时类同单个,mybatis自动把自增的id装入list中的对象的id,mapper.xml写法如:

<insert id="insertBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
insert into tb_permission (name,sn,description,module_id) values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.name},#{item.sn},#{item.description},#{item.module_id})
</foreach>
</insert>

java代码:

// 添加对应权限
permissionMapper.insertBatch(permissions); // 为菜单权限增加角色
List<RolePermission> rolePermissions = new ArrayList<RolePermission>();
for (Permission permission : permissions) {
String[] roleidstr = roleids.split(",");
for (int i = 0; i < roleidstr.length; i++) {
RolePermission rolePermission = new RolePermission();
rolePermission.setPermission_id(permission.getId());
rolePermission.setRole_id(Integer.parseInt(roleidstr[i]));
rolePermissions.add(rolePermission);
} }

mybits 操作指南的更多相关文章

  1. 【项目管理】GitHub使用操作指南

    GitHub使用操作指南 作者:白宁超 2016年10月5日18:51:03> 摘要:GitHub的是版本控制和协作代码托管平台,它可以让你和其他人的项目从任何地方合作.相对于CVS和SVN的联 ...

  2. Tourist.js – 简单灵活的操作指南和导航插件

    Tourist.js 是一个基于 Backbone 和 jQuery 开发的轻量库,帮助你在应用程序创建简单易用的操作指南和导航功能.相比网站,它更适合用于复杂的,单页网站类型的应用程序.Touris ...

  3. HHKB MAC 配置指南 操作指南 快捷键

    1. 设备: mac电脑一台.hhkb键盘一个 2. 初级配置 (1)调节hhkb的模式为Macintosh模式:011001 (打开键盘侧边的滑盖,按照这个顺序调正) (2)Mac电脑安装官方驱动  ...

  4. 比较详细Python正则表达式操作指南(re使用)

    比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...

  5. WEBUS2.0 In Action - 索引操作指南(2)

    上一篇:WEBUS2.0 In Action - 索引操作指南(1) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(1) 3. 添加.删除.撤销删除和修改文档 在WEBUS中要将 ...

  6. WEBUS2.0 In Action - 搜索操作指南 - (1)

    上一篇:WEBUS2.0 In Action - 索引操作指南(2) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(2) 1. IQueriable中内置的搜索功能 在Webus ...

  7. WEBUS2.0 In Action - 搜索操作指南 - (2)

    上一篇:WEBUS2.0 In Action - 搜索操作指南(1) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(3) 2. 使用Query Query是所有查询的基类, 它一 ...

  8. WEBUS2.0 In Action - 搜索操作指南 - (3)

    上一篇:WEBUS2.0 In Action - 搜索操作指南(2) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(4) 3. 评分机制 (Webus.Search.IHitSc ...

  9. WEBUS2.0 In Action - 搜索操作指南 - (4)

    上一篇:WEBUS2.0 In Action - 搜索操作指南(3) 6. 搜索多个索引 为了提升性能, 我们可以从多个索引同时进行搜索, Webus.Search.MultiSearcher提供了相 ...

随机推荐

  1. C - Lucky Numbers (easy)

    Problem description Petya loves lucky numbers. Everybody knows that positive integers are lucky if t ...

  2. mysql数据库知识点总结

    一.数据库的基本操作 --------------------------------------------------------------数据库的安装以后更新----------------- ...

  3. Android开发笔记(11)——DialogFragment & 点击监听

    转载请注明:http://www.cnblogs.com/igoslly/p/6931519.html DialogFragment使用 & 点击监听 /* DialogFragment是用于 ...

  4. 实验8 标准模板库STL

    一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http:// ...

  5. webpack学习(三)

    前篇:webpack学习(二) jquery不需要在项目中自己下载,而是作为一个模块引入.jquery的存放路径是在 node_modules目录下.1.首先给项目安装jquery,npm insta ...

  6. H3C交换机配置常用命令(转)

    1.配置文件相关命令 [Quidway]display current-configuration //显示当前生效的配置 [Quidway]display saved-configuration / ...

  7. SharePoint Designer 2013 开启新式验证(Modern Authentication)

    首先安装office 2013全家桶 再安装SharePoint Designer 2013 安装完之后,去windows检查更新,并把所有需要更新的都更新了 (更新之后我还通过KMS激活了offic ...

  8. PAT_A1155#Heap Paths

    Source: PAT A1155 Heap Paths (30 分) Description: In computer science, a heap is a specialized tree-b ...

  9. [转载]Linux内存高,触发oom-killer问题解决

    最近遇到两起Linux的内存问题,其一是触发了oom-killer导致系统挂 首先确认该系统的版本是32位 #uname -a Linux alarm 2.6.9-67.ELsmp #1 SMP We ...

  10. CSS font-style中italic和Oblique有何区别 标签: css字体 2017-01-05 14:42 60人阅读 评论

    *要搞清楚这个问题,首先要明白字体是怎么回事.一种字体有粗体.斜体.下划线.删除线等诸多属性. 但是并不是所有字体都做了这些,一些不常用的字体,或许就只有个正常体,如果你用Italic,就没有效果了~ ...