• mybits 操作指南


    第一、一对一:

    <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);
                            }
    
                        }
  • 相关阅读:
    document.getElementById(“id”)与$("#id")的区别
    sqlserver 无法打开备份文件a.bak
    xnconvert 图片转换工具
    基于jQuery的 h5移动端抽奖页面插件
    nodeJS 简单启动express服务器
    jquery 按钮切换插件
    微信判断手机有没有APP,有则打开,没有则跳到应用商城
    jQuery 文字向上轮播
    Node.js制作爬取简书内容的爬虫
    jquery手机端轮播图,点击放大手动轮播
  • 原文地址:https://www.cnblogs.com/hy928302776/p/mybits.html
Copyright © 2020-2023  润新知