Mac怎么搭建网站开发环境怎么做网站二维码

news/2025/9/23 19:30:08/文章来源:
Mac怎么搭建网站开发环境,怎么做网站二维码,网页设计实训报告心得体会,淄博营销网站建设用户与角色之间的关系 我们在做用户模块的时候#xff0c;漏掉了最后一个功能。在新增功能中是可以选择角色的。 用户与角色之间的关系也是多对多 一个用户对应多个角色一个角色可以被多个用户使用。现在呢#xff0c;我们的用户表已经是写的了。我们最好就不要修改原有的用户… 用户与角色之间的关系 我们在做用户模块的时候漏掉了最后一个功能。在新增功能中是可以选择角色的。 用户与角色之间的关系也是多对多 一个用户对应多个角色一个角色可以被多个用户使用。 现在呢我们的用户表已经是写的了。我们最好就不要修改原有的用户表数据。那我们在不修改用户表代码的情况下又怎么来实现多对多呢 跟角色与权限是一样的。使用中间表来维护它们的关系就行了。 用户user用户id,名称...1 用户12 用户2用户角色user_role用户id,角色id1 11 22 2角色role角色Id,名称1 管理员2 一般用户 设计中间表 public class UserRole implements Serializable {private UserRoleId userRoleId;public UserRoleId getUserRoleId() {return userRoleId;}public void setUserRoleId(UserRoleId userRoleId) {this.userRoleId userRoleId;} }主键表 public class UserRoleId implements Serializable {private String user_id;//在使用的时候Role相关的数据会用得特别多。为了方便使用了Role对象。而user就不需要使用User对象了。private Role role;Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;UserRoleId that (UserRoleId) o;if (user_id ! null ? !user_id.equals(that.user_id) : that.user_id ! null) return false;return role ! null ? role.equals(that.role) : that.role null;}Overridepublic int hashCode() {int result user_id ! null ? user_id.hashCode() : 0;result 31 * result (role ! null ? role.hashCode() : 0);return result;}public String getUser_id() {return user_id;}public void setUser_id(String user_id) {this.user_id user_id;}public Role getRole() {return role;}public void setRole(Role role) {this.role role;} } 映射文件 ?xml version1.0 encodingutf-8?!DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//ENhttp://hibernate.sourceforge.net/hibernate-mapping-3.0.dtdhibernate-mappingclass namezhongfucheng.user.entity.UserRole tableuser_rolecomposite-id nameuserRoleId classzhongfucheng.user.entity.UserRoleId!--manytoone可以生成外键字段。--key-many-to-one namerole classzhongfucheng.role.entity.Role columnrole_id lazyfalse/key-property nameuser_id columnuser_id typejava.lang.String//composite-id/class/hibernate-mapping增加模块 在跳转到JSP页面的前把所有的角色找出来。放到request域对象中让JSP页面显示出来。 public String addUI() {//把所有的角色查询出来带过去给JSP页面显示ActionContext.getContext().getContextMap().put(roleList, roleServiceImpl.findObjects());return addUI;} %--list是集合对象name是要带给服务器端的字符串数组。listkey 是集合元素对象的idlistValue 是集合元素对象的名字--%s:checkboxlist list#roleList nameuserRoleIds listKeyroleId listValuename/ 编辑模块 编辑回显数据 在编辑模块中需要将该用户所拥有的角色查询出来。然后把查询出来的id值放到数组中。 public String editUI() {//把所有的角色查询出来带过去给JSP页面显示ActionContext.getContext().getContextMap().put(roleList, roleServiceImpl.findObjects());//外边已经传了id过来了我们要找到id对应的Userif (user ! null user.getId() ! null ) {//直接获取出来后面JSP会根据User有getter就能读取对应的信息user userServiceImpl.findObjectById(user.getId());//通过用户的id得到所拥有UserRoleListUserRole roles userServiceImpl.findRoleById(user.getId());//把用户拥有角色的id填充到数组中数组最后回显到JSP页面int i0;userRoleIds new String[roles.size()];for (UserRole role : roles) {userRoleIds[i] role.getUserRoleId().getRole().getRoleId();}}return editUI;} JSP通过checkboxlist进行回显指定了name值就能够自动判定我们的用户拥有的角色是什么了。 s:checkboxlist list#roleList nameuserRoleIds listKeyroleId listValuename/s:checkboxlist处理编辑操作 在更新之前首先删除用户与角色之间的关系【历史遗留问题】如果不删除那么用户所拥有的角色就一直保留着。无论你在JSP页面有没有勾选。 public String edit() throws IOException {//Struts2会自动把JSP带过来的数据封装到User对象上if (user.getId() ! null user ! null) {if (headImg ! null) {//得到要把头像上传到服务器的路径javax.servlet.ServletContext servletContext ServletActionContext.getServletContext();String realPath servletContext.getRealPath(upload/user);//由于用户上传的名字可能会相同如果相同就被覆盖掉因此我们要修改上传文件的名字【独一无二】headImgFileName UUID.randomUUID().toString() headImgFileName.substring(headImgFileName.lastIndexOf(.));FileUtils.copyFile(headImg, new File(realPath, headImgFileName));//设置图片与用户的关系user.setHeadImg(headImgFileName);}if (userRoleIds ! null) {//删除用户与角色之间的关系【历史遗留问题】userServiceImpl.deleteUserRoleById(userRoleIds);//保存用户与角色。userServiceImpl.saveUserAndRole(user,userRoleIds);}}return list;} 调用保存用户与角色的关系。如果id不是为空的那么就执行更新如果id为空就执行保存。 Overridepublic void saveUserAndRole(User user, String... userRoleIds) {//保存或更新用户if (user.getId() ! null) {userDaoImpl.update(user);} else {userDaoImpl.save(user);}//判断有没有把id带过来if (userRoleIds ! null) {for (String userRoleId : userRoleIds) {System.out.println(userRoleId);userDaoImpl.saveUserRole(new UserRole(new UserRoleId(user.getId(), new Role(userRoleId))));}}} 转载于:https://www.cnblogs.com/zhong-fucheng/p/7202917.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信官方网站公众平台什么叫网站降权

一、搭建开发环境 搭建环境可以从这里开始: 微信小程序从零开始开发步骤(一)搭建开发环境 - 简书 二、程序示例 1、AppleMusic https://download.csdn.net/download/m0_54925305/89977187 2、仿B站首页 https://download.csdn.net/downlo…

太原网站开发团队公司申请邮箱怎么申请

Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。Input 输入有多组…

怀化市建设局门户网站保定有哪些做网站的地方

springboot配置swagger Swagger 是什么Swagger配置springboot代码展示总结 Swagger 是什么 Swagger 是一个用于构建、文档和调用 RESTful Web 服务的强大工具。它提供了以下几方面的好处: 自动生成 API 文档: Swagger 可以自动生成 API 文档,包括接口的…

北京网站定制流程网页版微信登录入口官网

AI 对话【人工智能】 前言版权开源推荐AI 对话v0版本:基础v1版本:对话数据表tag.jsTagController v2版本:回复中textarea.jsChatController v3版本:流式输出chatLast.jsChatController v4版本:多轮对话QianfanUtilChat…

个人对软件工程的理解

我认为,软件工程的概念可以拆分为以下六个方面: 1. 系统化开发 系统化开发强调在软件开发过程中采用科学的方法和结构化流程,而不是随意编写代码。它要求开发团队按照从需求分析到设计、实现、测试、部署和维护的完…

9/23

今天进行了工程实训,学习了与机械臂,3D打印有关的计算机相关知识。

数组入门:从零基础到排序算法 - 教程

数组入门:从零基础到排序算法 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

国家摄影网站广州谷歌推广

欢迎来到MindGraph,这是一个概念验证、开源的、以API为先的基于图形的项目,旨在通过自然语言的交互(输入和输出)来构建和定制CRM解决方案。该原型旨在便于集成和扩展。以下是关于X的公告,提供更多背景信息。开始之前&a…

server2008 做网站最牛的科技网站建设

我们在使用电脑浏览网页的时候有可能会想截取整篇网页,由于页面在电脑上显示不全,阅读的时候都需要滚动条来看,直接截屏根本截不全整个网页,这时候就需要截取网页的长截图了,那么怎么使用浏览器截长图呢? 1、以Edge浏…

河南网站seo推广湖南网站建设方案优化

PHP版本的AI电话机器人系统具有以下优势: 提升客户体验:AI电话机器人能够为客户提供724小时的服务,无论何时客户有疑问或需要帮助,都可以得到及时响应1。 提高工作效率和客户满意度:AI电话机器人系统具有智能回答问题…

织梦网站模板套用做铝板的网站

在做性能测试过程中有一件很重要的事情需要去完成,那就是分析性能指标数据,可以这样说做性能测试的整个过程都跟指标数据息息相关,下面来说一下常见的一些性能指标数据: 1.吞吐量 2.并发数 3.思考时间 4.响应时间 5.点击数 …

h5 响应式手机网站网络推广应该怎么做啊

全套笔记资料代码移步&#xff1a; 前往gitee仓库查看 感兴趣的小伙伴可以自取哦&#xff0c;欢迎大家点赞转发~ 全套教程部分目录&#xff1a; 部分文件图片&#xff1a; 认识Vue3 1. Vue3组合式API体验 通过 Counter 案例 体验Vue3新引入的组合式API vue <script> ex…

网站建设案例渠道微信推广营销

调度约束 Kubernetes 是通过 List-Watch **** 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面建立 Pod 和 Container。…

汉源网站建设网站的经典推广方法

1、oracle导出dmp文件的时候&#xff0c;经常会出现一些空表&#xff0c;没有一并被导出的情况。 执行sql select alter table ||table_name|| allocate extent; from user_tables where num_rows0 or num_rows is null; 新建一个sql窗口&#xff0c;把查询结果的sql&#…

用C/C++重构PowerShell:全面绕过安全机制的技术解析

本文详细介绍了如何通过C/C++原生代码实例化完整的PowerShell控制台,并系统性地绕过AMSI、脚本日志记录、转录功能、执行策略和约束语言模式等安全机制。文章包含具体的技术实现代码和内存补丁方法,展示了从CLR初始化…

珠江网站建设学风网站建设

目录 盒子模型块级盒子内联级盒子内联块级盒子弹性盒子display 改变模型区域划分text 内容区padding 填充区border 边框区margin 外边距直接设置盒子大小 布局横向布局方法一 float 浮起来方法二 内联块级元素实现方法三 弹性盒子模型 盒子模型 块级盒子 独占一行&#xff0c…

Optuna v4.5新特性深度解析:GPSampler实现约束多目标优化

Optuna在8月18日发布了最近的 v4.5版,加入了GPSampler的约束多目标优化功能,我们来看看这个新的功能。 基于高斯过程的贝叶斯优化(GPBO)最近几年在材料科学、机器学习等领域应用很广。GPSampler最初设计时就想做一…

题解:P4769 [NOI2018] 冒泡排序

题意:定义一个排列是好的,当且仅当可以通过 \(\frac 1 2\sum_{i=1}^n|i-p_i|\) 次对相邻两个数的交换使得整个排列变成 \(1,2,\cdots n\)。给出一个排列 \(q\),求有多少个排列 \(p\) 满足他是好的且字典序大于 \(q\…

电商网站零售客户丰县建设局规划局网站

目录 安装Pyecharts 安装对应的地图拓展&#xff1a; 准备数据 使用 pyecharts 模块中的 Geo 函数&#xff1a; 使用 pyecharts 模块中的 map 函数&#xff1a; 把一些地域性比较明显的数据显示在一张地图上&#xff0c;远比给别人一个 Excel 文件好得多。 Matplotlib 中…