网站公司建立软件工程考研学校推荐
2025/12/28 21:57:20 网站建设 项目流程
网站公司建立,软件工程考研学校推荐,建设信用卡中心网站,wordpress卖产品文章目录 系列文章目录目的前言一、详细视频演示二、项目部分实现截图三、技术栈 后端框架springboot前端框架vue持久层框架MyBaitsPlus微信小程序介绍系统测试 四、代码参考 源码获取 目的 摘要#xff1a;针对校园内二手书籍交易信息分散、流程繁琐的问题#xff0c;本文…文章目录系列文章目录目的前言一、详细视频演示二、项目部分实现截图三、技术栈后端框架springboot前端框架vue持久层框架MyBaitsPlus微信小程序介绍系统测试四、代码参考源码获取目的摘要针对校园内二手书籍交易信息分散、流程繁琐的问题本文设计并实现了一个基于Java Spring Boot与微信小程序的校园二手书籍交易平台系统。该系统采用前后端分离架构前端依托微信小程序提供便捷的书籍浏览、搜索与交易入口后端利用Spring Boot框架快速搭建稳定的服务端结合MySQL数据库实现书籍信息、用户数据及交易记录的高效存储与管理。系统具备书籍发布、搜索筛选、在线沟通、交易评价等核心功能支持学生快速发布闲置书籍信息精准查找所需书籍并通过安全可靠的交易流程完成书籍交换。该平台不仅提高了校园二手书籍的流通效率促进了资源循环利用还为学生提供了便捷、安全的交易环境对构建绿色校园、节约型社会具有积极意义。关键词Java Spring Boot微信小程序校园二手书籍交易平台前言博主介绍✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌精彩专栏 推荐订阅全网最全的Java python 小程序 php uniapp项目列表-CSDN博客文末获取源码数据库感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以给我留言咨询希望帮助更多的人一、详细视频演示文章底部获取博主联系方式二、项目部分实现截图​​​​​三、技术栈后端框架SpringBootSpring Boot内置了Tomcat、Jetty和Undertow等服务器这意味着你可以直接使用它们而不需要额外的安装和配置。Spring Boot的一个主要优点是它的自动配置功能。它可以根据你的项目中的依赖关系自动配置应用程序。这使得配置应用程序变得非常容易因为你不需要手动配置每个依赖项。Spring Boot也提供了大量的开箱即用的功能和插件如Spring Data、Spring Security和Spring Cloud等。这些功能使得开发者可以更快速地构建应用程序并且可以更容易地扩展和集成其他技术。它是一个非常流行的框架它的自动配置、内置服务器和插件等功能使得开发者可以更快、更轻松地构建高质量的应用程序。前端框架VueVue.js的核心是虚拟DOM技术。虚拟DOM是一个内存中的数据结构它可以帮助Vue.js实现高效的DOM操作它采用了响应式数据绑定、虚拟DOM、组件化等现代化技术为开发者提供了一种灵活、高效、易于维护的开发模式当数据发生变化时UI也会自动更新这样就使得开发者可以更加专注于数据处理而不是手动更新UI这就是Vue体现出来的简洁灵活高效。持久层框架MyBaitsPlusMyBatis-Plus是一款基于MyBatis框架的增强工具旨在简化MyBatis的开发。它是一款开源的Java框架支持多种数据库包括MySQL、Oracle、SQL Server、PostgreSQL等。MyBatis-Plus提供了丰富的API和注解可以通过简单的配置和使用来实现ORM操作大大减少了手写SQL的工作量。此外MyBatis-Plus还提供了一套代码生成器可以自动生成实体类、Mapper接口以及XML映射文件极大地简化了开发流程。MyBatis-Plus还支持分页查询、动态查询、乐观锁、性能分析等实用功能方便开发者进行高效的数据操作。通过MyBatis-Plus开发者可以快速开发高质量的数据访问层代码提高开发效率系统测试从多个角度进行测试找到系统中存在的问题是本系统首要的测试目的通过功能测试寻找出系统缺陷并改正确保系统没有缺陷。在测试过程中证明系统满足客户需求发现问题和不足及时改正。测试完成之后得出测试结论。系统测试目的在管理系统的开发周期中系统测试是必不可少且考验耐心的过程。其重要性在于它是保证系统质量和牢靠性的最后一道关也是整个系统开发过程的最后一次检查。系统测试主要是为了避免用户在使用时发生问题增强用户体验感为了不影响用户的使用我们需要从多角度、多思路去考虑系统可能遇到的问题通过不同的模拟场景来发现缺陷并解决问题。在测试的过程中也可以了解到该系统的质量情况系统功能是否健全系统逻辑是否顺畅。一个合格的系统测试过程完成后将大大提升系统质量和使用感。测试的目标是验证系统是否符合需求规格说明书的定义并找出与需求规格说明书不符合或与之冲突的内容。测试过程中一定站在用户的角度考虑问题避免一些不切实际的场景浪费测试时间从而可能会引起问题导致预期结果与实际结果不符。系统功能测试对系统功能模块进行测试通过点击、输入边界值和必填项非必填项的验证等方法进行一系列的黑盒测试。通过编写测试用例根据测试用例中的内容进行测试最后得出测试结论。登录功能测试方案当需要登入该系统时通过账户密码等功能点进行验证用户在输入时需要输入与数据库内存储的数据匹配的内容当其中某项输入错误时系统将提示输入错误。此界面对角色权限也有相应的校验当用户角色的帐号选择管理员角色登录时也会报错。登录功能测试用例如下表所示。输入数据预期结果实际结果结果分析用户名guanliyuan 密码123456 验证码正确输入登入系统成功登入系统和估算结果一样用户名guanliyuan 密码111111 验证码正确输入密码错误密码错误请重新输入密码和估算结果一样用户名guanliyuan 密码123456 验证码错误输入验证码错误验证码信息错误和估算结果一样用户名空 密码123456 验证码正确输入用户名必填请输入用户名和估算结果一样用户名guanliyuan 密码空 验证码正确输入密码错误密码错误请重新输入密码和估算结果一样用户管理功能测试方案用户管理主要有添加、编辑、删除、查找用户功能。添加用户时必填项不填检验系统是否有非空检验添加已有的用户信息检验是否提示用户名已被使用删除用户信息系统将检验是否进行此操作更改用户信息更改用户信息后页面是否可以展示出来。用户管理测试用例如下表所示。输入数据预期结果实际结果结果分析填入用户基本信息添加成功在用户列表中显示该用户出现在在列表中和估算结果一样修改用户信息编辑成功修改信息成功被修改用户信息被修改和估算结果一样选中删除用户系统询问是否删除用户确认后用户被删除验证码信息错误系统询问是否删除用户确认后查找不到用户信息和估算结果一样添加用户时不填用户名提示用户名不能为空提示用户名不能为空和估算结果一样填入已有用户名添加失败提示用户名重复添加失败提示用户名重复和估算结果一样系统测试结论本系统主要使用黑盒测试通过模拟用户使用系统实现各个功能编写测试用例并进行测试。以确保系统流程的正确性。系统测试必不可少可以使系统更加完善该系统的可使用性也会更高。测试该系统主要为了验证系统的功能模块是否满足我们最初的设计理念验证各个功能模块逻辑是否正确此系统不需要过于复杂的逻辑处理以便于使用者操作。测试的最终目的也是围绕着用户使用展开。测试过程中所有场景都应符合用户需求不可偏离需求目标遇到问题时要站在用户的角度进行思考。经过一系列的测试过程后得到最终的测试结果从测试结果可以看出实现的系统在功能和性能方面满足设计要求。微信小程序介绍小程序简介小程序是一种连接用户与服务的方式它能在微信内被便捷地获取和传播具有出色的使用体验。不需要下载安装用户通过搜一搜或扫一扫就可以打开使用使用完后退出即可。小程序是基于微信的开发平台属于微信内部。发展史微信中的 WebView 逐渐成为移动 Web 的一个入口时微信就有相关的 JS API 出现了也就是说微信小程序开发中会用到javascript。2015年初微信发布了一整套网页开发工具包称之为 JS-SDK开放了拍摄、录音、语音识别、二维码、地图、支付、分享、卡券等几十个API供web开发者开发使用但是它也有很多不足例如白屏等问题为解决这类问题于是诞生了小程序。小程序的优点1.快速的加载2.更强大的能力3.原生的体验4.易用且安全的微信数据开放5.高效和简单的开发小程序与普通网页开发的区别小程序的主要开发语言是 JavaScript 小程序的开发同普通网页开发有很大的相似性。对于前端开发者而言从网页开发迁移到小程序的开发成本并不高但是二者还是有区别的其主要区别如下1.网页开发中渲染线程和脚本线程是互斥的这使得长时间的脚本运行可能会导致页面失去响应而在小程序中二者是分开的分别运行在不同的线程中不会失去响应。2.网页开发中可以使用各种浏览器暴露DOM并对其进行操作而在小程序中逻辑层和渲染层是分开的逻辑层运行在 JSCore 中并没有浏览器对象因此小程序中没有DOM和BOM的操作。3.JSCore 的环境同 NodeJS 环境也不相同所以一些 NPM 的包在小程序中也是无法运行的。4.网页开发需要面临各种各样的浏览器环境而小程序只需面临两大系统iOS和Android及辅助开发者工具。5.网页开发中只需要使用到浏览器并搭配一些辅助工具或者编辑器即可小程序的开发则有所不同需要经过申请小程序帐号、安装小程序开发者工具、配置项目等才可以。申请账号想要开发一款小程序首先需要申请一个小程序账号通过这个账号就可以管理自己的小程序其步骤如下1.打开官网https://mp.weixin.qq.com/进入微信公众平台点立即注册选择小程序2.在小程序注册页面根据指引填写相关资料并注册。3.到注册邮箱查阅邮件点击邮件中的链接地址进行信息登记并继续后确认4.重新进入网址https://mp.weixin.qq.com扫码登录进入小程序页面开发---开发管理---开发设置获取AppID(小程序ID相当于一个身份证后面会用到这里需要知道自己的AppID即可)安装开发工具微信小程序有自己的开发工具当然你可以使用自己的编辑器编写代码获取完AppID后在当前页面进行下载开发者工具具体步骤如下1.单击开发----开发工具---开发者工具---下载---选择对应自己电脑系统版本下载应用2.将下载好的应用双击接受用户协议安装目录可自愿修改之后进行安装。3.通过以上两步就已经安装完微信开发工具了想要了解更多微信工具的使用可阅读官方文档https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html第一个微信小程序安装完开发工具后可以使用它开发一个小demo先简单测试一下,其步骤如下1.在桌面找到新安装的微信开发者工具并双击。2.使用微信扫描弹出的二维码进入开发者工具界面首次打开需要扫码登陆。3.在小程序项目---小程序中点击加号填写项目配置AppID可使用自己注册小程序时的AppID也可选择测试号4.选择着默认模板其他配置默认即可最后勾选用户协议点击新建。5.此时在开发工具模拟器中会看到自己微信的头像和hello world,此时表明第一个微信小程序已经创建成功。小程序代码构成上面生成的demo项目文件目录机构如下一个基础的小程序由四种文件构成分别是1.json 后缀的 JSON 配置文件2.wxml 后缀的 WXML 模板文件3.wxss 后缀的 WXSS 样式文件4.js后缀的 JS 脚本逻辑文件下面是对上面文件的详细介绍.json文件此文件用于静态配置项目根目录下app.json文件是当前小程序的全局配置包括小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等app.json基础配置如下json文件中不能添加注释这里为了方便说明以//开始的表示注释使用此配置信息时将注释删除即可{ pages:[//1.pages用于配置所有页面路径默认会进入第一个路径指定的页面。 pages/index/index,//当在这里配置完新页面保存后pages下会自动生成对应的页面文件只需修改自动生成的文件即可。 pages/logs/logs ], entryPagePath: pages/logs/logs,//2.entryPagePath配置小程序默认启动首页不配置此项默认会选择pages配置中的第一项。 window:{//3.window:配置小程序所有页面的顶部背景颜色文字颜色等。 navigationBarBackgroundColor: #ff0,//3-1设置顶部导航背景颜色支持十六进制颜色值。 navigationBarTitleText: 微信小程序测试,//3-2设置顶部导航标题文本。 navigationBarTextStyle:black,//3-3设置顶部导航标题字体颜色其值只能是black和white默认值。 navigationStyle:default,//3-4配置导航栏样式默认值defalult,还有一值custom导航栏标题及背景都会消失仅右上角胶囊按钮存在。 backgroundColor:#ffffff,//3-5配置窗口的背景色默认值#ffffff支持十六进制颜色值。 backgroundTextStyle:dark,//3-6配置下拉loading的样式仅支持 dark默认值和light。 backgroundColorTop:#666,//3-7设置顶部窗口的背景色仅iOS支持默认值#ffffff。 backgroundColorBottom:#555,//3-8设置底部窗口的背景色仅iOS支持默认值#ffffff。 enablePullDownRefresh:true,//3-9设置是否开启全局下拉刷新默认值为false。 onReachBottomDistance:50,//3-10设置当页面上拉距底部某个距离后触发事件单位为px,默认值50例如下拉加载更多数据。 pageOrientation:auto//3-11设置屏幕旋转时小程序是否跟随设备旋转横竖屏显示其值portrait默认值设备旋转时小程序不旋转、landscape设备旋转小程序旋转保持与视线不变、auto自动。 }, tabBar:{//4.tabBar:配置tab栏切换按钮。 color:#fff,//4-1设置tab按钮字体颜色其值为十六进制颜色值且为必须项。 selectedColor:#000,//4-2设置tab按钮被选中时字体颜色其值为十六进制颜色值且为必须项。 backgroundColor:#999,//4-3设置tab栏背景颜色其值为十六进制颜色值且为必须项。 borderStyle:black,//4-4设置tab栏边框颜色其值为black默认和white。 list:[//4-5设置tab按钮选项其值为一个每项都是对象的数组且为必须项数组元素的个数必须是[2,5]个不在范围内不显示。 { pagePath:pages/logs/logs,//4-5-1设置当前要跳转的页面路径。 text:登录,//4-5-2设置当前按钮文本。 iconPath:images/tabs/home.png,//4-5-3设置当前按钮点击前icon图标大小限制为40kb建议尺寸81px*81px不支持网络图片。 selectedIconPath:images/tabs/home-active.png//4-5-4设置当前按钮点击后icon图标大小限制为40kb建议尺寸81px*81px不支持网络图片。 }, { pagePath:pages/index/index, text:登录, iconPath:images/tabs/home.png, selectedIconPath:images/tabs/home-active.png } ], position:top,//4-6设置tab栏的位置其值bottom底部默认、top顶部。 custom:false//4-7自定义设置tabBar一般忽略此项配置其默认值为false,当值为true时需要自定义设计tabBar否则tabBar将失效其设计可阅读https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html。 }, networkTimeout:{//5.networkTimeout:设置请求超时时间。 request:60000,//5-1设置wx.request的超时时间默认值为60000单位值毫秒。 connectSocke:60000,//5-2设置wx.connectSocket的超时时间默认值为60000单位值毫秒。 uploadFile:60000,//5-3设置wx.uploadFile的超时时间默认值为60000单位值毫秒。 downloadFile:60000//5-4设置wx.downloadFile的超时时间默认值为60000单位值毫秒。 }, //debug:true,//6.debug:是否开启在开发工具控制台面板显示调试信息Page 的注册页面路由数据更新事件触发等便于开发者快速定位问题所在调试完建议关闭其默认值为false。 //functionalPages:true,//7.functionalPages是否启用插件功能默认false如要启用可阅读https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/functional-pages.html。 //subpackages:{},//8.subpackages:分包结构配置用于构建时打包成不同的分包按需加载如需配置请阅读https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages.html。 //workers:string,//9.workers:设置处理多线程任务时worker代码放置目录如需配置请阅读https://developers.weixin.qq.com/miniprogram/dev/framework/workers.html。 //requiredBackgroundModes:string,//10.requiredBackgroundModes设置需要在后台使用的能力如需配置请阅读https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#requiredBackgroundModes //plugins:Object,//11.plugins:设置使用到的插件如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/using.html。 //preloadRule:Object,//12.preloadRule:设置分包预下载规则如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/preload.html。 resizable:true,//13.resizable:设置是否允许在PC上对窗口进行缩放及iPad是否支持屏幕旋转默认值为false。 //usingComponents:Object,//14.usingComponents:配置自定义组件。 //permission:Object,//15.permission:配置小程序接口权限相关设置如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#permission。 //sitemapLocation:String,//16.sitemapLocation:配置sitemap.json文件路径默认在app.json同级目录下。 style:v2,//17.style:当值为v2时表示启用新版的组件样式。 //useExtendedLib:Object,//18.useExtendedLib:配置引用的扩展库如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#useExtendedLib。 //entranceDeclare:Object,//19.entranceDeclare:配置微信消息用小程序打开如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/location-message.html。 //darkmode:String,//20.darkmode:配置小程序支持 DarkMode如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#darkmode。 //themeLocation:String,//21.themeLocation:配置theme.json 的路径如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#themeLocation。 //lazyCodeLoading:String,//22.lazyCodeLoading:配置自定义组件代码按需注入如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#lazyCodeLoading。 //singlePage:Object,//23.singlePage:配置单页模式相关配置如需配置可阅读https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#singlePage。 }app.json文件更详细配置文档推荐https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.htmlproject.config.json 对开发工具的配置使用这个配置后即使在更换电脑重新安装工具后将此项目在工具中打开依旧是自己熟悉的工具配置项。pages文件夹中json文件 pages文件夹中每个页面下的json文件是对当前页面的配置当前页面使用此json文件配置页面后当前页面可以忽略app.json文件的配置。.wxml文件此文件用于小程序骨架类似网页中的html文件此文件存在pages文件夹下的页面文件夹中也是由标签、属性等构成但是这里的标签和html中的标签有很大的不同如view classcontainertexthello/text/viewwxml文件和html文件不同之处1.标签名有所不同具体可阅读组件相关文档https://developers.weixin.qq.com/miniprogram/dev/component/2.小程序中可以实现数据绑定、列表渲染、条件渲染、模板等具体文档推荐https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/wxss样式wxss支持css大部分特性其文件为后缀.wxss的文件其不同之处1.新增rpx尺寸单位一个响应式的尺寸单位把所有设备屏幕尺寸都划分为750rpx,使用rpx可以适配不同屏幕尺寸。2.仅支持css基础选择器。js逻辑微信小程序中js逻辑代码和网页中js代码基本相似后面会详细介绍。四、代码参考IgnoreAuth PostMapping(value /login) public R login(String username, String password, String captcha, HttpServletRequest request) { UsersEntity user userService.selectOne(new EntityWrapperUsersEntity().eq(username, username)); if(usernull || !user.getPassword().equals(password)) { return R.error(账号或密码不正确); } String token tokenService.generateToken(user.getId(),username, users, user.getRole()); return R.ok().put(token, token); } Override public String generateToken(Long userid,String username, String tableName, String role) { TokenEntity tokenEntity this.selectOne(new EntityWrapperTokenEntity().eq(userid, userid).eq(role, role)); String token CommonUtil.getRandomString(32); Calendar cal Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.HOUR_OF_DAY, 1); if(tokenEntity!null) { tokenEntity.setToken(token); tokenEntity.setExpiratedtime(cal.getTime()); this.updateById(tokenEntity); } else { this.insert(new TokenEntity(userid,username, tableName, role, token, cal.getTime())); } return token; } /** * 权限(Token)验证 */ Component public class AuthorizationInterceptor implements HandlerInterceptor { public static final String LOGIN_TOKEN_KEY Token; Autowired private TokenService tokenService; Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //支持跨域请求 response.setHeader(Access-Control-Allow-Methods, POST, GET, OPTIONS, DELETE); response.setHeader(Access-Control-Max-Age, 3600); response.setHeader(Access-Control-Allow-Credentials, true); response.setHeader(Access-Control-Allow-Headers, x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization); response.setHeader(Access-Control-Allow-Origin, request.getHeader(Origin)); // 跨域时会首先发送一个OPTIONS请求这里我们给OPTIONS请求直接返回正常状态 if (request.getMethod().equals(RequestMethod.OPTIONS.name())) { response.setStatus(HttpStatus.OK.value()); return false; } IgnoreAuth annotation; if (handler instanceof HandlerMethod) { annotation ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class); } else { return true; } //从header中获取token String token request.getHeader(LOGIN_TOKEN_KEY); /** * 不需要验证权限的方法直接放过 */ if(annotation!null) { return true; } TokenEntity tokenEntity null; if(StringUtils.isNotBlank(token)) { tokenEntity tokenService.getTokenEntity(token); } if(tokenEntity ! null) { request.getSession().setAttribute(userId, tokenEntity.getUserid()); request.getSession().setAttribute(role, tokenEntity.getRole()); request.getSession().setAttribute(tableName, tokenEntity.getTablename()); request.getSession().setAttribute(username, tokenEntity.getUsername()); return true; } PrintWriter writer null; response.setCharacterEncoding(UTF-8); response.setContentType(application/json; charsetutf-8); try { writer response.getWriter(); writer.print(JSONObject.toJSONString(R.error(401, 请先登录))); } finally { if(writer ! null){ writer.close(); } } // throw new EIException(请先登录, 401); return false; } }数据库参考-- ---------------------------- -- Table structure for token -- ---------------------------- DROP TABLE IF EXISTS token; CREATE TABLE token ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键, userid bigint(20) NOT NULL COMMENT 用户id, username varchar(100) NOT NULL COMMENT 用户名, tablename varchar(100) DEFAULT NULL COMMENT 表名, role varchar(100) DEFAULT NULL COMMENT 角色, token varchar(200) NOT NULL COMMENT 密码, addtime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 新增时间, expiratedtime timestamp NOT NULL DEFAULT 0000-00-00 00:00:00 COMMENT 过期时间, PRIMARY KEY (id) USING BTREE ) ENGINEInnoDB AUTO_INCREMENT27 DEFAULT CHARSETutf8 ROW_FORMATCOMPACT COMMENTtoken表; -- ---------------------------- -- Records of token -- ---------------------------- INSERT INTO token VALUES (9, 23, cd01, xuesheng, 学生, al6svx5qkei1wljry5o1npswhdpqcpcg, 2023-02-23 21:46:45, 2023-03-15 14:01:36); INSERT INTO token VALUES (10, 11, xh01, xuesheng, 学生, fahmrd9bkhqy04sq0fzrl4h9m86cu6kx, 2023-02-27 18:33:52, 2023-03-17 18:27:42); INSERT INTO token VALUES (11, 17, ch01, xuesheng, 学生, u5km44scxvzuv5yumdah2lhva0gp4393, 2023-02-27 18:46:19, 2023-02-27 19:48:58); INSERT INTO token VALUES (12, 1, admin, users, 管理员, h1pqzsb9bldh93m92j9m2sljy9bt1wdh, 2023-02-27 19:37:01, 2023-03-17 18:23:02); INSERT INTO token VALUES (13, 21, xiaohao, shezhang, 社长, zdm7j8h1wnfe27pkxyiuzvxxy27ykl2a, 2023-02-27 19:38:07, 2023-03-17 18:25:20); INSERT INTO token VALUES (14, 27, djy01, xuesheng, 学生, g3teq4335pe21nwuwj2sqkrpqoabqomm, 2023-03-15 12:56:17, 2023-03-15 14:00:16); INSERT INTO token VALUES (15, 29, dajiyue, shezhang, 社长, 0vb1x9xn7riewlp5ddma5ro7lp4u8m9j, 2023-03-15 12:58:08, 2023-03-15 14:03:48);源码获取文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看获取联系方式精彩专栏推荐订阅全网最全的Java python 小程序 php uniapp项目列表

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询