范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

znewadmin简单通用的springbootvue3管理后台

  gitee地址: znew-admin: 绠€鍗曢€氱敤鐨剆pringboot+vue3绠$悊鍚庡彴后端管理页面
  Geeker-Admin, 在此特别感谢大佬! Geeker-Admin: 鉁ㄢ湪鉁� Geeker Admin锛屽熀浜� Vue3.2銆乀ypeScript銆乂ite3銆丳inia銆丒lement-Plus 寮€婧愮殑涓€濂楀悗鍙扮鐞嗘鏋躲€�
  接口测试
  采用Apifox+ 规范注释 + IDEA插件,在此特别感谢Apifox团队! 安装 | Apifox 使用文档
  一键生成接口文档,简直不要太好用! 项目简介
  力求简单,好用,能够快速开发. 新的一年希望有新气象,所以项目名就叫znew. 数据库访问
  基于mybatis,封装了一个通用实体类增删改查的工具类,也是本 项目特色 .
  设计理念: 万能实体类的增删改查. 不考虑复杂sql,关联查询等,推荐用原生mybatis配置文件的方式. CommonDao使用/**  * CommonDao使用示例  * @author farkle  * @date 2023-01-13  */ @Service public class CommonDaoDemo {     @Autowired     private CommonDao commonDao;      //主键查找     public SysDemo findByPk(Long id){         return commonDao.findByPk(SysDemo.class, id);     }     //查询所有数据     public List findALl(){         return commonDao.findALl(SysDemo.class);     }     //查询一条数据,推荐     public SysDemo findByName(String name){         return commonDao.findOne(new SysDemo().setName(name));     }     //查询一条数据2     public SysDemo findByName2(String name){         return commonDao.findOneCond(Condition.create(SysDemo.class).put(SysDemo::getName, name));     }     //列表查询,推荐     public List list(String name){         return commonDao.list(new SysDemo().setName(name));     }     //列表查询2     public List list2(String name){         return commonDao.listCond(Condition.create(SysDemo.class).put(SysDemo::getName, name));     }     /**      * 分页查询,推荐      * 这里只是简单分页,面对复杂查询的分页推荐使用pagehelper      * @param name      * @param pageNumber      * @param pageSize      * @return      */     public List listPage(String name, Integer pageNumber, Integer pageSize){         return commonDao.list((SysDemo)new SysDemo().setName(name).setSortByField("id").setSortByWay(SortByWay.desc), pageNumber,pageSize);     }     //分页查询2     public List listPage2(String name, Integer pageNumber, Integer pageSize){         return commonDao.listCond(Condition.create(SysDemo.class).put(SysDemo::getName, name), pageNumber,pageSize);     }     //统计,推荐     public Long count(String name){         return commonDao.count(new SysDemo().setName(name));     }     //统计2     public Long count2(String name){         return commonDao.countCond(Condition.create(SysDemo.class).put(SysDemo::getName, name));     }     //带统计数量的分页,推荐     public PageResult page(String name, Integer pageNumber, Integer pageSize){         PageResult pageResult = commonDao.page((SysDemo) new SysDemo().setName(name).setSortByField("id").setSortByWay(SortByWay.desc), pageNumber, pageSize);         System.out.println(pageResult.getTotal());         System.out.println(pageResult.getData());         return pageResult;     }     //带统计数量的分页2     public PageResult page2(String name, Integer pageNumber, Integer pageSize){         PageResult pageResult = commonDao.pageCond(Condition.create(SysDemo.class).put(SysDemo::getName, name), pageNumber,pageSize);         System.out.println(pageResult.getTotal());         System.out.println(pageResult.getData());         return pageResult;     }     //新增     public int insert(){         SysDemo sysDemo = new SysDemo();         sysDemo.setName("小明");         return commonDao.insert(sysDemo);     }     //批量新增     public int insertBatch(){         List list = new ArrayList<>();         for (int i = 0; i < 10; i++) {             SysDemo sysDemo = new SysDemo();             sysDemo.setName("小明"+i);             list.add(sysDemo);         }         return commonDao.insertBatch(list);     }     //主键更新     public int updateByPk(Long id){         SysDemo sysDemo = new SysDemo();         sysDemo.setId(id);         sysDemo.setName("小明名称变更");         return commonDao.updateByPk(sysDemo);     }     //updateAllField 根据主键根性所有字段      //条件更新     public int update(){         SysDemo update = new SysDemo();         update.setName("所有男的都叫小明");         return commonDao.update(update, new SysDemo().setGender(Gender.Male));     }     //主键删除     public int deleteByPk(Long id){         return commonDao.deleteByPk(SysDemo.class, id);     }     //主键批量删除     public int deleteBatch(List ids){         return commonDao.deleteBatch(SysDemo.class, ids);     }     //条件删除     public int delete(){         //删除所有男性         return commonDao.delete(new SysDemo().setGender(Gender.Male));     } }
  CommonService:通用增删改服务 /**  * 通用服务  * @author farkle  * @date 2022-12-08  */ public interface CommonService {     List list(T t);     T detail(Class clazz, Long id);     Long count(T t);     int save(T t);     int edit(T t);     int update(T t, T cond);     int del(Class clazz, Long id);     int dels(Class clazz, List ids); }  @Service public class CommonServiceImpl implements CommonService {     @Autowired     private CommonDao commonDao;      public List list(T t){         return commonDao.list(t);     }     public T detail(Class clazz, Long id){         return commonDao.findByPk(clazz, id);     }     public Long count(T t){         return commonDao.count(t);     }     public int save(T t){         return commonDao.insert(t);     }     public int edit(T t){         return commonDao.updateByPk(t);     }     public int update(T t, T cond){         return  commonDao.update(t,cond);     }     public int del(Class clazz, Long id){         return commonDao.deleteByPk(clazz, id);     }     public int dels(Class clazz, List ids){         return commonDao.deleteBatch(clazz, ids);     } }znew多模块架构znew ├─ common                 # 通用工具支持 │  ├─ lombok, servlet-api │  ├─ jackson, FastJson │  ├─ commons-io, commons-lang3, httpclient │  ├─ jjwt ├─ model                  # 通用业务实体类 ├─ basesystem			  # 后台管理基础内容以及公共服务 │  ├─ common               │  ├─ spring-boot-starter, spring-boot-starter-web │  ├─ redis, validation, mybatis │  ├─ freemarker(代码生成器), Retrofit, swagger ├─ admin		          # 后台业务管理 │  ├─ basesystem, model, plugin     │  ├─ security, pagehelper ├─ api		          	  # app业务接口 │  ├─ basesystem, model, plugin     │  ├─ Freemarker(文章h5页面) ├─ plugin		          # 通用第三方插件 │  ├─ common    │  ├─ 微信授权登录,微信支付 │  ├─ 支付宝支付 │  ├─ 云存储 等 └─ 后端管理页面权限控制
  参考增删改demo, 注意:权限编码和Controlelr是一一对应的,前端被屏蔽了,需要去数据库查看.实现方式自行查看 Authorization 类. 代码生成
  生成代码预览
  可拖拽排序的表单配置, 以及常用的表单字段类型
  接口规范请求方法 	提交数据推荐用 POST 方法 	获取数据用 GET 方法 Response Headers(响应头设置) 	Content-Type: application/json;charset=utf-8 请求参数 	POST请求 用@RequestBody 接收(json格式,请求头设置:Content-Type: application/json;charset=UTF-8) 	后端必须做参数校验 文档 	请求参数,返回实体 必须有对应的说明 	特殊code 必须有对应的说明 状态类型标识的字段 	推荐用枚举,见名知意(看见对应的单词就知道代表的状态) 		disable(禁用) enable(启用) 	标识是否状态的字段是推荐用1(是)0(否)标识 接口变动 	方案一:做文件记录对应的接口变动 	方案二:接口加版版本区分 	方案三:... 接口日志 	建议做接口日志,方便排查问题  响应 	1.后端不允许直接报错给前端,必须经过错误处理,返回code=0 	2.返回的json数据不允许出现 null 类型,如果是空类型请按下列返回相应的"空数据" 		空数组请返回: [] 		空字符串请返回: "" 		空数值请返回:0 		金额格式: 两位小数返回,为空返回 0 		日期格式: 转成对应的字符格式返回,为空返回 ""  	3.不推荐用复杂的数据类型返回(复杂类型,最多不超过3层) 		列子(不推荐): 			{ 				"name": "教师zyh", 				"no": "教师001", 				"student": { 					"name": "学生zyh", 					"no": "学生001" 				} 			} 		错误返回示例: 			{ 				"name": "教师zyh", 				"no": "教师001", 				"student": null 			} 		推荐返回: 			 { 				"name": "教师zyh", 				"no": "教师001", 				"studentName": "学生zyh", 				"studentNo": "学生001" 			} 			{ 				"name": "教师zyh", 				"no": "教师001", 				"studentName": "", 				"studentNo": "" 			}  标准成功相应格式 	{ 		"code": 1, 		"data":"", 		"message": "" 	} 标准失败响应格式 	{ 		"code": 0, 		"data":"", 		"message": ""		 	} 标准带数据相应格式 	字符数据 		{ 			"code": 1, 			"data": "", 			"message": "" 		} 	对象数据 		{ 			"code": 1, 			"data": {}, 			"message": "" 		} 	数组数据 		{ 			"code": 1, 			"data": [], 			"message": "" 		} 	带有分页信息的数据,前端分页参数固定接收 pageNumber(第几页,默认值1) pageSize(每页数量,默认值10) 		{ 			"code": 1, 			"data": [], 			"message": "", 			"total": 0    //总条数 			"pageNumber":1 //当前页 			"pageSize":10  //每页数量 		}项目截图
  TODOCommonDao 更新多数据源,字段自动填充属性,更新策略等高级功能 升级至Springboot3 后台管理列表通用导入,导出功能 集成工作流 推出 spring cloud alibaba 微服务版本
  gitee地址: znew-admin: 绠€鍗曢€氱敤鐨剆pringboot+vue3绠$悊鍚庡彴

大美边疆行吉林幸福美丽新边疆团结奋进共繁荣来源央视网吉林边境地区包括通化市白山市长白山管委会延边朝鲜族自治州,有10个边境县(市区),边境线总长1438。7公里。党的十八大以来,吉林牢记总书记嘱托,深入推进兴边富民行动,发微软封杀俄罗斯?用户已经无法更新系统,我们也要警惕本文原创,禁止抄袭,违者必究!在全球缺芯的大背景之下,业内外很多人士都认为芯片自主非常重要,但是殊不知,在另外一个领域,我们被卡脖子的情况可能更为严重!以华为公司为例,由于芯片短缺湖南爷爷给刚出生的孙女买30多条裙子,网友满满的宠爱6月18日,湖南。网友发布一则视频,出生一个多月的宝宝,被爷爷万般宠爱。爷爷瞒着奶奶给孙女一次买下30多条裙子,摆在楼梯上整整两条,很多可爱的小裙子。儿媳妇称,公公特别可爱,买了不神印王座再遭群嘲,官方紧急修改正片,但网友却不买账并要求下架根据唐家三少同名小说改编的神印王座动漫已经播出有一段时间了,现在已经出到第10集。但就是这一集,让神印王座这部作品和动漫制作方陷入了巨大的争议和舆论漩涡之中,下面一起来分析下吧。0香港双王争婿,毁了赌王之女何超琼一生,送了陈百强性命娱乐圈里故事多,今天我们聊一下香港娱乐圈的一个故事,故事的起因就是香港有名的双王争婿。而所影响的却是四个人的三段感情。上个世纪香港娱乐圈可谓是群星璀璨,但是在这些耀眼的明星当中有一重磅!香港政府新班子出炉!还有一位港漂局长这两天香港最大的新闻就是新一届政府高官成员名单终于公布了!昨天下午,国务院根据李家超的提名,突然宣布了第六届香港政府班底的名单!今天全港都在讨论,毕竟这可是关系到香港未来五年发展的华为手机年销量减少2亿,苹果躺赢3年,华为自研芯片传来喜讯巅峰时期的华为手机,曾经是全球手机销量Top1的品牌,不仅超越了苹果,甚至还超越了一代机皇三星,华为手机的年销量一度超过了2。4亿部。然而,遭遇了3年的打压,华为手机业务直接从巅峰便宜又好用的甲硝锉,能治啥病?医生或能改善5种疾病你是否有过牙龈红肿疼痛,令你寝食难安的情况?周边的人是否有人因为妇科疾病而苦恼不堪?又或者是否碰到过得结肠炎等慢性炎症的朋友?如果有碰到过这些情况,如果告诉你,几块钱一瓶的药可能会突发!TVB新一代女神宣布离巢,多次否认整容声称自己是纯天然本文编辑剧透社issac未经授权严禁转载,发现抄袭者将进行全网投诉又走一个!据港媒最新报道,TVB知名女星有着新一代女神之称的简淑儿透过社交媒体发文,宣布正式约会满离巢,结束与TV走红后还没吃红利就过气,两次被金莎喊话拒绝,李智楠做错了什么2020年,金莎在社交平台发文就算世界变成一座孤岛,只剩我们两个人,我也不会选择你。这番耿直言论让网友们纷纷吐槽金沙的情商有点低,同时又替那个被残忍拒绝的当事人感到心疼。金莎喊话的冥王星遍地钻石,为何人类不去开采?专家这些钻石可不能动即使是同一片天空,世界上也没有两颗一样的行星,就像在如今的宇宙中,仍然找不到另一颗适合人类生存的星球!地球表层被一片汪洋大海环绕,因此被人类又称为水球,木星的表层风暴气旋形成的大片
谢逸枫不要恐惧!未来20年房地产依然是10万亿级支柱产业文谢逸枫目前中国房地产继续筑底探底,市场处于信心恢复的过程之中。2021年9月以来,已有超过300个省市出台了各类稳楼市政策,经过11个月的筑底探底,到6月市场有所升温,依然未完全FIFA23能力值最高23人公布!姆巴佩梅西并列第一,C罗第六足球游戏FIFA系列最新版本FIFA23,官方宣布了该版本中能力值最高的23人名单!FIFA23能力值TOP23姆巴佩梅西并列第一,C罗第六这代FIFA能力值最高的球员总评也只有9她们的名字她们的名字是由牟晓杰导演,秦海璐,金世佳,白冰,薇薇等主演的都市剧场。和三十而已欢乐颂二十不惑这种题材差不多都是以几个女性为主,讲述她们的生活,感情,工作中发生的故事。她们的名字这2022年9月13日新闻简报,工作愉快正文共806字预计阅读时间3分钟码字不易,如果有用,请记得支持点赞关注转发!美好的一天,从读报开始,9月13日,壬寅年八月十八,星期二,工作愉快,幸福生活1魅族科技部分机型无法参与为啥我不配置红利策略?(周报161期)文望京博格(转载请注明出处)2015年市场突破5000点的时候,投资者都会感叹一句如果市场再给我一次3000点以下的机会,我一定满仓!2022年市场在3000点左右持续震荡的时候,惠州代建项目检查中科院总部区地下停车场项目被通报近期,惠州市代建项目管理局在官网发布代建项目2022年第二季度大检查情况通报,惠州市建设集团建筑工程有限公司承建市金山湖公园水上项目活动与训练基地项目,广东永木建设有限公司负责承建不求全,不停滞,就会坚韧且成长幸福是每个人自我的感受,所以差异性大。幸福绝对不是没有不幸福,这句话让我醍醐灌顶,也是不求全的萌芽。还好,接纳内化这个观念已经有十几年了。十几年前,我已过了不惑之年,依旧有许多惑。TCL发布Tab10二合一平板电脑,搭载我国联发科芯片,支持5G网络就在本年度的8月末,TCL发布了TCLTab10平板电脑,这是一款二合一类型的平板电脑,除了是平板电脑外,还可以连接到键盘用来当作笔记本电脑来使用,这款平板电脑会给我们带来很多惊喜吉林省有个俄罗斯村扫一扫,看视频视频剪辑中青报中青网记者王培莲这个暑期,前往吉林省舒兰市四合村南阳屯的游客络绎不绝。南阳屯的风景与周围其他乡村不同,这里是吉林省有名的俄罗斯村。屯子里一家名叫普希金庄印度智能手表全球份额暴增347,超越中国成为第二大市场IT之家8月28日消息,根据CounterpointResearch最近发布的GlobalSmartwatchModelTracker,由于通货膨胀和地缘政治冲突等宏观不确定性,2医疗器械蓝皮书我国医疗器械国际贸易现状及发展趋势原创孟冬平行业发展蓝皮书20220902编者按本文为医疗器械蓝皮书中国医疗器械行业发展报告(2022)报告B102021年我国医疗器械国际贸易现状及发展趋势部分节选。转载于此,供读