`

05_用户模块及角色模块的单表和多表操作

 
阅读更多
1 Restful风格的参数接收
/{id}  与 参数id对应,这个{id} 获取来自页面的值
@PathVariable(比如这种url:someUrl/12)用来获取url里面的值。Restful风格的使用这个,
如果名称一致,就下面图片的写法,如果名称不一致,还需要指定一个名称。
@RequestParam (比如这种url:someUrl?id=12),普通的写法使用这个,注意这个与上面的区别。


2 相同名称数据的提交可以使用数组接收或者list接收。
3  其实增删改成在mapper.xml 文件里面都可以使用<select></select> 标签
4  针对mybatis传递的参数不是对象的时候,而是直接传递的参数需要使用map的方式:
// UserbeanMapper.java
//注意着两个参数 uid 、rid 的写法,必须的使用如下的方式,否则不能够传入到xml文件
//而且名称要与xml文件中的名称一致 对应values(#{uid},#{rid})
void insertUidAndRid(@Param("uid") Integer userid,@Param("rid") Integer rid);

//这里的传入参数不是实体对象,而是使用map
//这里面的名称要与上面接口中的参数名称一致,如:userid roleid 对应 @Param("uid") @Param("rid")
<insert id="insertUidAndRid" parameterType="map">
     insert into t_user_role(userid,roleid)
     values(#{uid},#{rid})
  </insert>  

5 mysql的主键为自增的时候,mabatis如何在插入数据的时候就能返回主键值给实体对象?

方式1:通过如下的方式来实现:如下代码:useGeneratedKeys="true" keyProperty="userid"
例如:
<insert id="insertSelective" useGeneratedKeys="true" keyProperty="userid"   parameterType="cn.hd.model.Userbean" >
    insert into t_user
  </insert>

方式2:


6 修改用户角色数据回填的写法:
//首先引入一个标签
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!-- 
fn:contains(user.rids,r.roleid)
user.rids :所有的权限
r.roleid :当前的权限

在所有的权限里面看是否包含当前的权限,如果包含返回true
-->
  <c:forEach items="${rolelist }" var="r">
          <input type="checkbox" name="rids" value="${r.roleid }"  ${fn:contains(user.rids,r.roleid) ? 'checked':'' } >${r.rolename }
        </c:forEach>


7 在删除用户的时候对权限的删除实现的方法:
1 通过业务逻辑的实现:首先删除中间表的数,然后删除用户的数据
2 也可以通过数据库的级联删除,删除了用户数据,级联删除角色数据,这个需要数据库设计的时候有级联删除的设置。

8 加上事物相关,注意这个REQUIRED是面试重点
<!-- 事务的配置 -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
   <!-- 拦截器方式配置事物 -->
    <tx:advice id="transactionAdvice" transaction-manager="txManager">
        <tx:attributes>
            <!-- 以如下关键字开头的方法使用事物 -->
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED"/>
            <tx:method name="modify*" propagation="REQUIRED"/>
            <tx:method name="edit*" propagation="REQUIRED"/>
            <tx:method name="delete*" propagation="REQUIRED"/>
            <tx:method name="remove*" propagation="REQUIRED"/>
            <tx:method name="buyfood" propagation="REQUIRED"/>
            <tx:method name="order" propagation="REQUIRED"/>
            <!-- 以如下关键字开头的方法不使用事物 -->
            <tx:method name="get*" read-only="true"/>
            <tx:method name="find*" read-only="true" />
            <tx:method name="load*"  read-only="true" />
            <tx:method name="query*"  read-only="true" />
         
            <!-- 其他方法不使用事物 -->
            <tx:method name="*" propagation="SUPPORTS" />
        </tx:attributes>
    </tx:advice>
   
    <!-- 切面,将事物用在哪些对象上 -->
    <aop:config>
        <aop:pointcut id="transactionPointcut" expression="execution(* cn.hd.service.impl.*Impl.*(..))" />
        <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
    </aop:config>
分享到:
评论

相关推荐

    04_用户模块及角色模块的单表操作(通过一个vo实现条件查询并且带分页)pm

    标题中的“04_用户模块及角色模块的单表操作(通过一个VO实现条件查询并且带分页)pm”指的是一个关于Web开发中用户管理和角色管理的教程或代码示例,其中涉及到了单表操作、条件查询以及分页功能。这里的“VO”是...

    用户角色权限管理模块

    在IT系统设计中,用户角色权限管理模块是一个至关重要的组成部分,它主要负责维护系统的安全性和访问控制。这个模块确保了不同类型的用户只能访问他们被授权的功能和数据,从而保护了系统的完整性并提升了用户体验。...

    简单用户/角色管理模块

    在IT领域,用户和角色管理是系统安全及访问控制的核心组成部分。这个"简单用户/角色管理模块"是使用C#编程语言和SQL Server 2005数据库开发的一个基于浏览器/服务器(B/S)架构的应用。它允许管理员执行基本的用户和...

    指纹识别模块程序及原理图.rar_fingerprint_指纹_指纹模块_指纹模块程序_指纹识别模块

    此外,为了实现用户友好的交互,可能还需要设计合适的用户界面和状态指示,如LED灯或者LCD显示屏,来提示用户操作状态。在系统设计时,还要考虑功耗问题,特别是对于电池供电的设备,需要优化软件以降低能耗。 总的...

    RFID系统_RF180C_通信模块操作说明.rar

    RFID(Radio Frequency Identification)系统是一种无线通信技术,它通过电磁场来自动识别目标对象...通过详细阅读"RFID系统_RF180C_通信模块操作说明.pdf",用户可以深入理解这一技术,并有效地应用于实际工作场景中。

    三层结构用户,角色,功能管理模块

    在用户、角色、功能管理模块中,数据访问层通常会与数据库中的用户表、角色表和功能表进行交互,执行SQL查询来获取、保存或更新数据。例如,当用户被分配到某个角色时,数据访问层会更新相应的角色成员关系表。 在...

    zzb.rar_zzb2706分站模块_功率模块

    用户可以通过这个表了解到不同输入条件下,模块的输出行为,从而进行正确和安全的操作。 【标签】"zzb2706分站模块 功率模块"进一步强调了这个文件的主要内容,包括ZZB2706模块的相关信息以及其作为功率控制单元的...

    QFlash_V5.0_ec20烧录_EC20最新固件包_4G模块固件_移远SC20烧录_移远4G模块EC20烧录工具_

    在实际操作时,用户需要下载并安装"QFlash_V5.0"烧录工具,然后按照工具提供的指导,连接EC20模块至电脑,选择对应的"EC20最新固件包",进行固件的读取和写入操作。过程中要特别注意模块的电源状态和通信接口设置,...

    simulink模块库中文_simulink模块库中文_源码

    在Simulink中,模块库扮演着至关重要的角色,它包含了大量的预定义模型,可以被用户用来构建复杂的系统模型。"simulink模块库中文_simulink模块库中文_源码"这个资源显然提供了关于Simulink模块库的中文说明,这对于...

    Android__WIFI模块分析.ppt

    Wpa_supplicant 是 WIFI 模块的核心组件之一,负责读取配置文件,初始化配置参数,驱动函数,让驱动 scan 当前所有的 bssid,检查扫描的参数是否和用户设置的想否,如果相符,通知驱动进行权限认证操作,连上 AP。...

    cpm1a_ad_da模块使用说明.zip

    在工业自动化领域,CPM1A_AD_DA模块扮演着至关重要的角色,它是OMRON公司推出的用于数据采集和输出的模块,广泛应用于各种控制系统中。本文将深入探讨该模块的使用方法,帮助读者理解和掌握其核心功能。 一、CPM1A_...

    GPIO模块.zip_GPIO_KEY_GPIO模块_gpiolib组件_gpio模块是什么_智能车

    GPIO模块在嵌入式系统和物联网(IoT)设备中扮演着至关重要的角色,它允许开发者控制硬件设备的输入和输出。"GPIO_KEY_GPIO模块_gpiolib组件_gpio模块是什么_智能车"这个标题揭示了几个关键概念:GPIO、GPIO_KEY、...

    用户表角色权限表的设计

    设计时,会涉及到复杂的关联关系,通常需要建立多个关联表来处理多对多关系,如用户权限表、用户角色表、角色权限表、组权限表、组角色表和用户组关联表等。这些表的结构设计直接影响到权限管理的效率和灵活性。 ...

    asp.net完整权限管理系统,一个权限管理系统,可以进行角色添加、用户添加、模块添加,App_Data下面为Sql数据库文件。

    8. 数据库设计:权限管理系统的数据库通常包含用户表、角色表、角色-权限关联表和模块表等。用户表记录用户信息,角色表存储角色信息,角色-权限关联表定义角色可访问的模块,模块表则保存了应用程序的模块定义。 ...

    框架myframe_含数据库_new.rar_9UU_my _frame模块_pb框架_框架

    由于框架已包含了基本的数据库操作支持,开发者可以快速实现数据的增删改查功能,并且利用角色和权限模块来构建安全的用户访问控制系统。 总的来说,"框架myframe"是一个强大且实用的数据库管理框架,它整合了用户...

    雷电_模拟器操作模块_v1.9.2.0.rar

    本文将深入探讨雷电模拟器的操作模块及其与E语言的结合使用,帮助读者理解如何通过E语言来控制和自动化雷电模拟器的各项功能。 首先,让我们了解E语言。E语言是一种轻量级的脚本语言,设计用于快速开发和执行控制...

    ASP.NET_论坛模块

    ASP.NET 提供了内置的身份验证和角色管理机制,例如Forms Authentication和Role Provider,用于控制用户访问权限。用户注册和登录功能可以通过这些机制实现,确保只有经过验证的用户才能参与论坛活动。 接下来是...

    05_模块使用说明_COM恒润科技协议栈COM模块

    在AUTOSAR架构下,通信服务是系统设计的关键,COM模块则扮演了中间件的角色,使得软件组件能够按照定义的接口和协议进行数据交换,确保系统的高效运行和兼容性。 恒润的COM模块遵循AUTOSAR的标准,这使得它能与采用...

    TI ZIGBEE 配置工具.zip_factorxdi_rocket3gp_sZ05_tizigbee模块_zigbee s

    TI Zigbee配置工具是一款专为Zigbee模块sz05设计的应用程序,它允许用户对Zigbee模块进行详细的配置,以满足特定的无线通信需求。Zigbee是一种基于IEEE 802.15.4标准的低功耗、短距离、自组织的无线网络技术,广泛...

Global site tag (gtag.js) - Google Analytics