基于SSM架构的超市管理系统设计

基于SSM架构的超市管理系统设计

目录

    • 基于SSM架构的超市管理系统设计
  • 1 环境及工具
    • 1.1 IDEA软件安装
    • 1.2 JDK环境配置
    • 1.3 MySQL数据库安装
      • 1.3.1常规情况
      • 1.3.2非常规情况
    • 1.4 Tomcat安装
  • 2 部署与设计
    • 2.1 数据库信息创建
    • 2.2项目创建与部署
  • 3 相关说明
  • 4 功能操作说明
    • 4.1 管理员操作
    • 4.2员工操作
    • 4.3 消费者操作
    • 4.4 测试情况
    • 4.5 部分程序代码
  • 5 视频教程
  • 6 源文件

注:因服务器目前维护停止对项目访问,所以通过域名暂时无法访问,设计开发的有相应的APP安卓程序,Mac电脑版应用程序,项目部署经历了6次小的更新与修改,拓展性手机验证码找回密码等安全性验证功能属于下一步设计方向。

设计目标方向:

要实现用户、员工和管理员分类登录模块,商品按供货商分类模块,员工销售商品统计模块,员工考勤模块、管理员对员工信息管理模块。

以下是本篇文章正文内容,下面案例仅供参考

1 环境及工具

软件:IDEA2020.3.3、JDK1.8.0、Tomcat8.0.49、MySQL8.0.17
平台:系统已部署服务器兼容IE7及Chromium等内核的浏览器
访问链接:~~https://www.manmanmeixi.top(维护中暂不支持访问)
参考文档:JDK_API_1_8、HTML5

1.1 IDEA软件安装

(1)IDEA软件是收费性软件,学生可凭借教育邮箱使用,企业单位人员可根据公司正版授权使用。软件的下载链接如下:IntelliJ IDEA: IDEA软件下载
(2)双击软件进行安装,点击Next进行下一步,建议安装到非系统安装盘,以防人为误操作导致系统运行出现故障,如图1-1所示。

在这里插入图片描述
(3)为了方便后期使用和文件的关联,建议创建应用图标和勾选文件关联,如图1-2所示。
在这里插入图片描述
(4)点击下一步进行安装,直到显示安装成功,然后点击Finish按钮,打开软件接受协议,如下图所示。
在这里插入图片描述
在这里插入图片描述
(5)接下来,双击软件输入许可账号密码,建议使用正版授权。浏览器输入账号密码,然后进行提交,直至出现该界面。然后点击激活按钮“Activate”进行激活操作。
(6)激活完成后跳转到如下界面,点击“Close”按钮进行关闭,然后设置背景颜色。
(7)将背景颜色调为亮色,如图1-5所示。
在这里插入图片描述

1.2 JDK环境配置

(1)双击软件,进行安装,点击下一步,如图1-6所示。
在这里插入图片描述

(2)然后选择安装位置,建议更改到非系统盘,然后点击下一步,如图1-7所示。
在这里插入图片描述

(3)确定后,点击下一步进行安装,如下图1-8所示。
在这里插入图片描述

(4)然后点击更改选择新建文件夹,如图1-9所示。
在这里插入图片描述

(5)确定后,点击下一步进行安装,直至安装完成,如图1-10所示。
在这里插入图片描述

(6)安装完成后为了后期操作方便,需要配置环境变量,环境变量配置如下图1-11所示:

在这里插入图片描述

(7)选择再系统变量里面新建,需要创建项如下图所示:
在这里插入图片描述

(8)接下来创建Classpath路径,如下图所示:
在这里插入图片描述

(9)然后在Path路径里面指明jre的位置,如下图所示:
在这里插入图片描述

(10)添加完成后依次点击确定按钮,直至关闭系统环境变量。然后打开cmd命令终端,当输入java -version和javac -version显示如下界面,表示安装成功。
在这里插入图片描述

1.3 MySQL数据库安装

1.3.1常规情况

(1)5.7及其之前版本,正常情况下下载mySQL压缩包,进行解压。
(2)启动服务,登录初始密码为空,可回车成功登录。
操作步骤:
①解压软件解压。
②配置环境变量。

在这里插入图片描述
(3)设置完环境变量之后,要求在管理员权限下执行mysqld --install 命令,将MySQL配到服务启动项中,然后管理员权限下net start mysql 启动数据库服务。如下图所示。
在这里插入图片描述
(4)数据库正常启动后,mysql -u root -p 输入密码,默认密码为空(回车),即可成功登录。
在这里插入图片描述

1.3.2非常规情况

问题一:8.0及其以后版本,解压后环境变量配置,服务启动加载后,数据库无法启动。
解决方案:管理员身份运行,输入命令 mysqld -initialize(回车),mysqld --initialized–insecure(回车);可成功解决数据库服务无法启动问题。
问题二:数据库初始密码不知道,导致登陆失败。
在这里插入图片描述
解决方案:
(1)控制台授权跳过密码检测来重新设置密码。(可以先将密码置空,然后再设置密码)
(2)停止MYSQL服务:net stop mysql
(3)管理员身份运行,输入:mysqld -console --skip-grant-tables --shared-memory
在这里插入图片描述
(4)然后继续输入命令:mysqld --console --skip-grant-tables --shared-memory(不要关闭窗口),再次打开一个终端,然后输入mysql -u root -p(回车,回车)即可登录。
在这里插入图片描述
(5)将密码置为空,操作命令为:update user set authentication_string=‘’ where user=‘root’;
在这里插入图片描述
(6)关闭所有终端,管理员权限输入 net start mysql 服务即可启动,此时登录时密码为空。
问题三:加密规则更改,报caching_password错误。
解决方案:更改加密规则,命令如下:
(1)修改账户密码加密规则并更新用户密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘XXXX’ PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘XXXXX’; #更新一下用户的密码,注:XXXX表示你要设置的密码。
(2) FLUSH PRIVILEGES; #刷新权限,即可解决上述问题。

1.4 Tomcat安装

(1)Tomcat默认是绿色版的,可以下载后解压,然后设置环境变量进行使用。推荐使用8.0的版本,因版本更新后底层的方法有变化,可能会出现其他问题。下载链接如下:Tomcat下载
在这里插入图片描述
(2)下载完成后进行解压操作,如下图所示。解压完成后配置环境变量,环境变量的配置如下:
在这里插入图片描述
(3)接下来设置Classpath变量。
在这里插入图片描述
(4)然后设置Path变量,指明bin目录和lib目录。
在这里插入图片描述
(5)依次点击确定按钮,关闭系统环境变量选项框。cmd命令终端输入startup.bat和shutdown.bat,出现以下界面表示配置成功。
在这里插入图片描述

2 部署与设计

2.1 数据库信息创建

(1)数据库启动成功后,命令终端输入mysql -u root -p然后回车,输入设置的密码,登陆成功后如下所示:
在这里插入图片描述
(2)然后create database market命令,创建market数据库,然后使用market数据库创建相关的表信息。

在这里插入图片描述
可以查看到数据库创建成功,数据库的表信息及相关字段可以查看market.sql相关数据库文件。

2.2项目创建与部署

(1)首先确定项目的导包方式,因考虑到jar包的更新底层会有一些变化,以防出现不兼容的情况,这里不采用自动导包远程下载的方式,改为手动导包的方式。
(2)打开IDEA,创建一个JAVA项目,确定好项目名称和要存放的项目位置。
在这里插入图片描述
(3)创建完成后,首先需要根据数据库表的信息,生成相应的方法和类。这里通过mybatis工具,结合编写好的配置文件,通过命令 java -jar mybatis-generator-core-1.4.0-mysql-page.jar -configfile generatorConfig.xml -overwrite生成相应的方法和xml配置文件。
(4)接下来创建config目录,加载Spring配置文件和数据库调用配置文件,如下所示。
在这里插入图片描述
(5)接下来创建web配置文件,需要点击File----》Project Structure—》Facets----》Web。
在这里插入图片描述
(6)打开相应的类文件发现抱错,原因是相应的jar包没有导入,这里可以事先创建存放所需jar包的文件,以便导入。
在这里插入图片描述
(7)IDEA需要指明所使用的Tomcat版本及相应的端口,配置参数为-Dfile.encoding=UTF-8,配置如下:
在这里插入图片描述
(8)接下来点击File—》Project Structure ----》Modules-----》market,点击加号添加相关jar包。首先点击Library添加Tomcat,如下所示。
在这里插入图片描述
(9)点击加号添加jars文件,选择实现存放好的jar文件夹导入jar文件,如下所示。
在这里插入图片描述
(10)添加完成后,在Project Settings设置页面点击Libraries添加Library。添加完后更新Project dependent里面的文件。
在这里插入图片描述
(11)然后再Project setting设置界面下,Modules里面加载Spring配置文件,如下图所示。
在这里插入图片描述
(12)接下来在Project setting界面下点击Artifacts,点击web应用,默认选择导入方式为空。
在这里插入图片描述
(13)配置完成后点击OK,点击运行按钮,即可运行出开始界面。
在这里插入图片描述

3 相关说明

在这里插入图片描述
前端:前端页面大部分页面使用HUI框架,前端使用jsp结合jquery,js,ajax,css展示页面和跟后端进行交互,
后端:后台使用SpringMvc+spring+mybatis框架,使用服务器session对当前登录用户进行缓存,使用spring-schdule做定时任务处理,上传文件通过将文件复制到tomcat路径下,然后使用url进行访问实现,数据库使用mysql存储数据
数据流说明:当用户使用链接访问页面时,实际是先访问控制器(即controller的接口),控制器通过定义@RequestMapping定义链接路径,如图3-1所示。

在这里插入图片描述
上图的访问路径是:http://ip:端口/login/admin_login,结果返回”admin_login”,实际是指向:admin_login.jsp页面,系统配置前缀(例如:/WEB-INF/views),后缀(.jsp),所以返回”admin_login”
Controller中带有: @ResponseBody的接口返回的是对象,前端通常使用ajax请求请求此类接口:如图3-2所示。
在这里插入图片描述
在这里插入图片描述
Controller一般通过调用service层的方法做一些业务处理,间接对数据库进行增删改查,service层再调用dao层的接口直接对数据库进行增删改查。

4 功能操作说明

4.1 管理员操作

管理员可以进行底层数据库的管理设置,默认交给管理员的初始账号是admin,密码是123。管理员输入正确的账号密码并且通过验证后会进入管理员界面。
(1)登陆成功后首先员工管理界面,在该界面下可以查询员工共信息,修改员工信息,添加员工,如图4-1所示。
在这里插入图片描述
(2)为了保护用户隐私,管理员可以查询消费者的信息。
在这里插入图片描述
(3)管理员可以进行商品的分类管理操作。
在这里插入图片描述
(4)管理员对于商品信息不仅可以通过下载模板批量导入,也可以单个设置商品的数量状态等信息。
在这里插入图片描述
(5)管理员可以查看订单状态和员工共商品卖出情况。
在这里插入图片描述
(6)管理员也可以对供应商进行管理。
在这里插入图片描述
(7)管理员同样可以通过考勤管理,查看员工的考勤状态。
在这里插入图片描述
(8)管理员可以对当前账户的密码进行修改。
在这里插入图片描述

4.2员工操作

(1)员工输入账号密码登录成功后,默认打开的是个人信息页面。
在这里插入图片描述
(2)员工同样可以查询消费者的相关信息。
在这里插入图片描述
(3)员工只拥有对商品查询的权限,没有修改的权限。
在这里插入图片描述
(4)员工可以对订单信息进行添加,订单信息记录了商品,商品数量和消费者。
在这里插入图片描述
(5)员工需要进行考勤操作,默认每天上班只能打卡一次,再次点击会显示已经打卡过了,下班需要进行签退操作。
在这里插入图片描述

4.3 消费者操作

(1)消费者初次使用需要先进行注册,注册时手机号进行了正则校验,注册成功后才能进行登录。如果第一次已经注册成功,再次注册会显示该账号已注册,请重新登录。
在这里插入图片描述
(2)消费者登录成功后可以查看个人订单,个人信息以及修改密码,消费者查看商品如下所示。
在这里插入图片描述

4.4 测试情况

功能名称测试用例预期结果实际结果是否通过
注册功能用户名:kali密码:kali信息注册成功注册成功可以正常登录通过
登录功能用户名:admin密码:123456登录成功,跳转到功能界面成功进入管理员功能界面通过
员工管理删除t1员工数据删除成功该员工信息不存在通过
消费者管理删除kali用户该用户无法登录信息不存在,该消费者无法登录通过
商品管理下架商品牛奶无法购买暂不支持购买通过
考勤管理查询某个员工记录所有考勤记录显示显示打卡日期状态等信息通过
员工考勤T1员工上下班打卡考勤成功,显示考勤状态上班迟到,签退早退通过
修改密码管理员密码改为732916再次输入新密码登录成功输入旧密码提示密码不对,新密码登录成功通过
系统退出员工界面下注销系统跳转到登录界面系统功能界面退出通过

4.5 部分程序代码

注册程序代码:

<div class="login_form"><div><div class="form-group"><label  class="t">登录名</label><input id="name" name="name" type="text" placeholder="请输入登录名"  class="form-control x319 in "></div><div class="form-group"><label  class="t">密码</label><input id="password" name="password" type="password" placeholder="请输入密码"  class="form-control x319 in "></div><div class="form-group"><label class="t">姓名</label><input id="realName" name="realName" type="text" placeholder="请输入姓名"  class="form-control x319 in "></div><div class="form-group"><label  class="t">联系电话</label><input id="celPhone" name="celPhone" type="text"  placeholder="请输入中国大陆手机号" onblur="celPhone()" class="form-control x319 in " ></div><div class="form-group"><label class="t">验证码:</label><input id="imgCode" name="imgCode" type="text" class="form-control x164 in"><img id="codeImg1" name="codeImg"  alt="点击更换" title="点击更换" class="m"></div>
<div class="form-group space">
<label class="t"></label><input name="" type="button" onclick="submitForm()" id="submitBtn" class="btn btn-primary btn-lg" value="消费者-注册"> 

登录程序代码:

<div class="form-group">
<label class="t">登录角色</label><input name="loginType" type="radio" value="1" id="loginType1" style="margin-left:10px;"/>
<label style="color:black" for="loginType1">管理员</label><input name="loginType" type="radio" value="2" id="loginType2" style="margin-left:10px;"/>
<label style="color:black" for="loginType2">员工</label><input name="loginType" type="radio" value="3" id="loginType3" style="margin-left:10px;"/>
<label style="color:black" for="loginType3">消费者</label>
</div><div class="form-group space"><label class="t"></label>
<input name="" type="button" onclick="submitForm()" id="submitBtn" class="btn btn-primary btn-lg" value="系统登录">
<a style="" href="${pageContext.request.contextPath}/regist/user_info_regist" onclick="" class="btn btn-default btn-lg">注册消费者</a><script type="text/javascript" src="${pageContext.request.contextPath}/static/common/jquery-1.11.1.min.js"></script>
<scriptsrc="${pageContext.request.contextPath}/static/common/utils/listutils.js?v=26573"></script><script>$(document).ready(function(e) {changeCode();$("#codeImg1").bind("click",changeCode);});function genTimestamp(){var time = new Date();return time.getTime();}function changeCode(){$("img[name='codeImg']").attr("src","${pageContext.request.contextPath}/validCode/code?t="+genTimestamp());}function submitForm(){$.ajax({type: 'post',url: '${pageContext.request.contextPath}/login/sysSubmit',data: {'imgCode':$('#imgCode').val(),'name':$("#name").val(),'password':$("#password").val(),'loginType':getCheckBoxVal('loginType')},success: function(result) {if(result.code==1){var lt = getCheckBoxVal('loginType');if(lt=='1'){window.location.href="${pageContext.request.contextPath}/admin/index";}if(lt=='2'){window.location.href="${pageContext.request.contextPath}/staff/index";}if(lt=='3'){window.location.href="${pageContext.request.contextPath}/index";}}else{alert(result.msg);}}});}$(function(){})
</script> 

修改密码程序代码:

<div class="page-container"><div class="row cl"  id="nameParentDiv" style="margin-top:20px;margin-left:20px;" > 	<label class="form-label col-xs-4 col-sm-2">旧密码
</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="password" class="input-text"  placeholder="请输入旧密码" id="password1" name="password1">
</div>
</div><div class="row cl"  id="nameParentDiv" style="margin-top:20px;margin-left:20px;" > 	<label class="form-label col-xs-4 col-sm-2">新密码</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="password" class="input-text"  placeholder="请输入新密码" id="password2" name="password2"></div>
</div><div class="row cl"  id="nameParentDiv" style="margin-top:20px;margin-left:20px;" > 	<label class="form-label col-xs-4 col-sm-2">新密码
</label>
<div class="formControls col-xs-8 col-sm-9">
<input type="password" class="input-text"  placeholder="请再次输入新密码" id="password3" name="password3"></div>
</div>
</div>

5 视频教程

(1)管理员身份登录演示视频:
https://pan.baidu.com/s/12deH1WrsrnM4OAha1le8wg?pwd=3vau 提取码: 3vau
(2)员工身份登录演示视频:
https://pan.baidu.com/s/1k1gmU32wIXeeiAEcb0txVw?pwd=un4q 提取码: un4q
(3)消费者身份登录演示视频:
https://pan.baidu.com/s/1lhS-xLiNKrv91gC6wfs8HA?pwd=a668 提取码: a668

6 源文件

程序和数据库文件

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

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

相关文章

互联网加竞赛 python opencv 深度学习 指纹识别算法实现

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python opencv 深度学习 指纹识别算法实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;4分创新点&#xff1a;4分 该项目较为新颖…

SE考研真题总结(三)

继续更新&#xff0c;今天准备连出两期该系列~ SE考研真题总结&#xff08;二&#xff09;https://blog.csdn.net/jsl123x/article/details/134857052?spm1001.2014.3001.5501 目录 一.简答题 二.代码大题 一.简答题 1.工程和科学的区别 科学是关于事物的基本原理和事实的…

计算4*4*4空间中2点结构的分布

不考虑两点距离的情况下&#xff0c;3维空间中的两点最多只有7种位置关系。3条边&#xff0c;3条面对角线&#xff0c;1条体对角线。现在向4*4*4的3维空间中随机的扔2个石子&#xff0c;比较7种结构的占比。 得到表格为 1 96 0.0476 2 96 0.0476 3 288 0.1429 4 288 …

【ARM Trace32(劳特巴赫) 使用介绍 6 -- 通用寄存器查看与修改】

请阅读【Trace32 ARM 专栏导读】 文章目录 通用寄存器查看与修改Rester 命令语法Register.InitRegister.RELOAD高亮显示Register变化的值多核寄存器显示设置寄存器的值修改 通用寄存器查看与修改 在使用Trace32进行调试时&#xff0c;有时候需要查看并修改通用寄存器、PC指针、…

使用ffmpeg命令进行视频格式转换

1 ffmpeg介绍 FFmpeg 是一个非常强大和灵活的开源工具集&#xff0c;用于处理音频和视频文件。它提供了一系列的工具和库&#xff0c;可以用于录制、转换、流式传输和播放音频和视频。 FFmpeg 主要特点如下&#xff1a; 格式支持广泛&#xff1a;FFmpeg 支持几乎所有的音频和视…

ARM开发基础知识

1、ARM寄存器 概念&#xff1a;寄存器是处理器内部的存储器&#xff0c;没有地址 作用&#xff1a;一般用于暂时存储参与运算的数据和运算结果 分类&#xff1a;通用寄存器、专用寄存器、状态寄存器 注意&#xff1a;有标签&#xff08;带三角光标&#xff09;的是独有的寄存器…

Caché/M 数据库上面的那个 é 怎么打

Cach/M 数据库名字上的 e 有一撇&#xff0c;这个 e 是法语字符&#xff0c;通常英语键盘还不是那么好打。 因最近在研究这个数据库&#xff0c;所以这个字符会用得比较多&#xff0c;简单点的方法就是直接用 e 代替&#xff0c;并且后面加个斜杆 M 用于区分英文的 Cache。 拷…

几本学习中整理和面试的PDF,以及精选面试资料

今天和大家分享我在学习过程中整理的笔记&#xff0c;以及我在准备面试中&#xff0c;阅读的PDF&#xff0c;包括Spring Cloud学习手册、Docker学习手册、RabbitMQ学习手册、Spring 6手册、Maven手册、22w字面试手册等等&#xff0c;包括了大部分后端技术以及大部分高频面试题&…

计算机网络应用层(期末、考研)

计算机网络总复习链接&#x1f517; 目录 DNS域名服务器域名解析过程分类递归查询&#xff08;给根域名服务器造成的负载过大&#xff0c;实际中几乎不用&#xff09;迭代查询 域名缓存&#xff08;了解即可&#xff09;完整域名解析过程采用UDP服务 FTP控制连接与数据连接 电…

C# 从代码入门 Mysql 数据库事务

在业务开发中&#xff0c;使用数据库事务是必不可少的。而开发中往往会使用各种 ORM 执行数据库操作&#xff0c;简化代码复杂度&#xff0c;不过&#xff0c;由于各种 ORM 的封装特性&#xff0c;开发者的使用方式也不一样&#xff0c;开发者想要了解 ORM 对事务做了什么处理是…

redis-学习笔记(Jedis 通用命令)

flushAll 清空全部的数据库数据 jedis.flushAll();set & get set 命令 get 命令 运行结果展示 exists 判断该 key 值是否存在 当 redis 中存在该键值对时, 返回 true 如果键值对不存在, 返回 false keys 获取所有的 key 值 参数是模式匹配 *代表匹配任意个字符 _代表匹配一…

WWW 指南-万维网联盟(World Wide Web)

WWW - 万维网联盟 WWW通常称为网络。 web是一个世界各地的计算机网络。 电脑在Web上使用标准语言沟通。 万维网联盟&#xff08;W3C&#xff09;制定了Web标准 什么是WWW&#xff1f; WWW 代表 World Wide Web(万维网)万维网常常被称为 网络网络是世界各地的计算机网络网络中…

windows 服务器 怎么部署python 程序

一、要在 Windows 服务器上部署 Python 程序&#xff0c;您需要遵循以下步骤&#xff1a; 安装 Python&#xff1a;首先&#xff0c;在 Windows 服务器上安装 Python。您可以从官方网站&#xff08;https://www.python.org/downloads/windows/&#xff09;下载最新的 Python 安…

小程序开发实战案例之三 | 小程序底部导航栏如何设置

小程序中最常见的功能就是底部导航栏了&#xff0c;今天就来看一下怎么设置一个好看的导航栏&#xff5e;这里我们使用的是支付宝官方小程序 IDE 做示范。 官方提供的底部导航栏 第一步&#xff1a;页面创建 一般的小程序会有四个 tab&#xff0c;我们这次也是配置四个 tab 的…

C语言结构体和位段

自定义类型&#xff1a;结构体及联合和枚举 一.结构体类型的声明1.1 结构体的概念1.2结构的声明1.3特殊的声明1.4结构体的自引用1.5可以使用typedef重命名 二.结构体变量的创建和初始化2.1结构体变量的初始化使用{}2.2初始化&#xff1a;定义变量的同时赋初值。2.3结构体嵌套及…

Java 基础学习(八)多态、接口、造型与内部类

1 多态 1.1 多态 1.1.1 多态的意义 一个类型的引用在指向不同的对象时会有不同的实现。依然借助前面案例中的 Person类、Student类和 Teacher 类举例&#xff0c;看如下的代码&#xff1a; Person p1 new Student(); Person p2 new Teacher(); p1.schedule(); p2.schedul…

BSN实名DID服务发布会在北京召开

12月12日&#xff0c;由国家信息中心、公安部第一研究所联合主办&#xff0c;中国移动通信集团有限公司、区块链服务网络&#xff08;BSN&#xff09;发展联盟、中关村安信网络身份认证产业联盟&#xff08;OIDAA&#xff09;承办的“BSN实名DID服务发布会”在北京召开&#xf…

【代码随想录算法训练营-第六天】【哈希表】242,349,202,1

242.有效的字母异位词 第一遍 思考 比较简单&#xff0c;用数组就能实现了 class Solution {public boolean isAnagram(String s, String t) {int[] checkListi new int[256];int[] checkListj new int[256];for (int i 0; i < s.length(); i) {char checkChar s.ch…

工作随记:oracle 19c客户端通过service访问PDB异常问题

文章目录 概要技术测试分析测试1&#xff1a;测试2&#xff1a;测试3&#xff1a;测试4&#xff1a; 解决方案&#xff1a;1、修改service2、修改pdb名称 总结 概要 应用端访问提示错误信息为&#xff1a;VersionHelper异常!未将对象引用设置到对象的实例&#xff01; 此问题…

【产品】Axure的基本使用(二)

文章目录 一、元件基本介绍1.1 概述1.2 元件操作1.3 热区的使用 二、表单型元件的使用2.1 文本框2.2 文本域2.3 下拉列表2.4 列表框2.5 单选按钮2.6 复选框2.7 菜单与表格元件的使用 三、实例3.1 登录2.2 个人简历 一、元件基本介绍 1.1 概述 在Axure RP中&#xff0c;元件是…