网站开发配置状态统计网站没有做301的后果是什么

张小明 2026/1/12 13:50:13
网站开发配置状态统计,网站没有做301的后果是什么,wordpress 数据库乱码,成都医疗seo整站优化实现思路 分层封装#xff1a;按 Entity、Mapper、Service、Controller 四层分别封装通用基类泛型约束#xff1a;全程使用泛型 T 约束实体类型#xff0c;保证类型安全通用能力#xff1a;封装增删改查、分页、条件查询等核心操作#xff0c;业务层只需继承即可使用标准化…实现思路分层封装按 Entity、Mapper、Service、Controller 四层分别封装通用基类泛型约束全程使用泛型 T 约束实体类型保证类型安全通用能力封装增删改查、分页、条件查询等核心操作业务层只需继承即可使用标准化接口提供 RESTful 风格的通用接口业务 Controller 直接继承即可对外暴露接口完整代码实现必要依赖Maven!-- MyBatis-Plus --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.3.1/version/dependency!-- Lombok简化实体类编写 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- Web依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency配置 MyBatis-Plus 分页插件同前文。1. 通用实体基类BaseEntityimportcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableLogic;importlombok.Data;importjava.io.Serializable;importjava.time.LocalDateTime;/** * 所有实体类的基类封装通用字段 * param ID 主键类型 */DatapublicclassBaseEntityIDextendsSerializableimplementsSerializable{privatestaticfinallongserialVersionUID1L;/** * 主键ID */TableId(typeIdType.AUTO)privateIDid;/** * 创建时间 */privateLocalDateTimecreateTime;/** * 更新时间 */privateLocalDateTimeupdateTime;/** * 逻辑删除标识0-未删除1-已删除 */TableLogicprivateIntegerisDeleted;}2. 通用 Mapper 基类BaseMapperimportcom.baomidou.mybatisplus.core.mapper.BaseMapper;importorg.apache.ibatis.annotations.Param;importjava.io.Serializable;importjava.util.List;/** * 通用Mapper基类继承MyBatis-Plus的BaseMapper并扩展通用方法 * param T 实体类型 */publicinterfaceBaseMapperTextendsBaseEntity?extendscom.baomidou.mybatisplus.core.mapper.BaseMapperT{/** * 批量插入自定义可选 */intinsertBatch(Param(list)ListTlist);}3. 通用 Service 接口IBaseServiceimportcom.baomidou.mybatisplus.core.conditions.Wrapper;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.baomidou.mybatisplus.extension.service.IService;importjava.io.Serializable;importjava.util.List;/** * 通用Service接口 * param T 实体类型 */publicinterfaceIBaseServiceTextendsBaseEntity?extendsIServiceT{// 新增booleanadd(Tentity);booleanaddBatch(ListTentityList);// 删除booleandeleteById(Serializableid);booleandeleteBatchByIds(List?extendsSerializableids);booleandelete(WrapperTqueryWrapper);// 更新booleanupdate(Tentity);booleanupdate(Tentity,WrapperTupdateWrapper);// 查询TgetById(Serializableid);ListTlistAll();ListTlist(WrapperTqueryWrapper);IPageTpageList(IntegerpageNum,IntegerpageSize);IPageTpageList(IntegerpageNum,IntegerpageSize,WrapperTqueryWrapper);TgetOne(WrapperTqueryWrapper);longcount(WrapperTqueryWrapper);}4. 通用 Service 实现类BaseServiceImplimportcom.baomidou.mybatisplus.core.conditions.Wrapper;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.baomidou.mybatisplus.core.toolkit.Wrappers;importcom.baomidou.mybatisplus.extension.plugins.pagination.Page;importcom.baomidou.mybatisplus.extension.service.impl.ServiceImpl;importorg.springframework.stereotype.Service;importjava.io.Serializable;importjava.util.List;/** * 通用Service实现类 * param M Mapper类型 * param T 实体类型 */ServicepublicclassBaseServiceImplMextendsBaseMapperT,TextendsBaseEntity?extendsServiceImplM,TimplementsIBaseServiceT{Overridepublicbooleanadd(Tentity){returnsave(entity);}OverridepublicbooleanaddBatch(ListTentityList){returnsaveBatch(entityList);}OverridepublicbooleandeleteById(Serializableid){returnremoveById(id);}OverridepublicbooleandeleteBatchByIds(List?extendsSerializableids){returnremoveByIds(ids);}Overridepublicbooleandelete(WrapperTqueryWrapper){returnremove(queryWrapper);}Overridepublicbooleanupdate(Tentity){returnupdateById(entity);}Overridepublicbooleanupdate(Tentity,WrapperTupdateWrapper){returnupdate(entity,updateWrapper);}OverridepublicTgetById(Serializableid){returngetBaseMapper().selectById(id);}OverridepublicListTlistAll(){returnlist(Wrappers.emptyWrapper());}OverridepublicListTlist(WrapperTqueryWrapper){returnsuper.list(queryWrapper);}OverridepublicIPageTpageList(IntegerpageNum,IntegerpageSize){PageTpagenewPage(pageNum,pageSize);returnpage(page,Wrappers.emptyWrapper());}OverridepublicIPageTpageList(IntegerpageNum,IntegerpageSize,WrapperTqueryWrapper){PageTpagenewPage(pageNum,pageSize);returnpage(page,queryWrapper);}OverridepublicTgetOne(WrapperTqueryWrapper){returngetOne(queryWrapper,false);}Overridepubliclongcount(WrapperTqueryWrapper){returnsuper.count(queryWrapper);}}5. 通用 Controller 基类BaseControllerimportcom.baomidou.mybatisplus.core.conditions.Wrapper;importcom.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.baomidou.mybatisplus.core.toolkit.Wrappers;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.*;importjava.io.Serializable;importjava.util.List;/** * 通用Controller基类提供RESTful风格的通用接口 * param T 实体类型 * param S Service类型 */publicabstractclassBaseControllerTextendsBaseEntity?,SextendsIBaseServiceT{AutowiredprotectedSservice;/** * 新增 */PostMapping(/add)publicbooleanadd(RequestBodyTentity){returnservice.add(entity);}/** * 批量新增 */PostMapping(/add/batch)publicbooleanaddBatch(RequestBodyListTentityList){returnservice.addBatch(entityList);}/** * 根据ID删除 */DeleteMapping(/{id})publicbooleandeleteById(PathVariableSerializableid){returnservice.deleteById(id);}/** * 批量删除 */DeleteMapping(/batch)publicbooleandeleteBatchByIds(RequestParamList?extendsSerializableids){returnservice.deleteBatchByIds(ids);}/** * 更新 */PutMapping(/update)publicbooleanupdate(RequestBodyTentity){returnservice.update(entity);}/** * 根据ID查询 */GetMapping(/{id})publicTgetById(PathVariableSerializableid){returnservice.getById(id);}/** * 查询所有 */GetMapping(/list)publicListTlistAll(){returnservice.listAll();}/** * 分页查询 */GetMapping(/page)publicIPageTpageList(RequestParamIntegerpageNum,RequestParamIntegerpageSize){returnservice.pageList(pageNum,pageSize);}/** * 条件查询示例根据字段名和值查询 */GetMapping(/list/condition)publicListTlistByCondition(RequestParamStringfieldName,RequestParamStringvalue){LambdaQueryWrapperTwrapperWrappers.lambdaQuery();// 通用条件查询示例实际可根据业务扩展wrapper.eq(true,fieldName,value);returnservice.list(wrapper);}/** * 条件分页查询 */GetMapping(/page/condition)publicIPageTpageListByCondition(RequestParamIntegerpageNum,RequestParamIntegerpageSize,RequestParamStringfieldName,RequestParamStringvalue){LambdaQueryWrapperTwrapperWrappers.lambdaQuery();wrapper.eq(true,fieldName,value);returnservice.pageList(pageNum,pageSize,wrapper);}}业务层使用示例1. 业务实体类Userimportlombok.Data;importlombok.EqualsAndHashCode;/** * 用户实体类 */DataEqualsAndHashCode(callSupertrue)publicclassUserextendsBaseEntityLong{/** * 用户名 */privateStringuserName;/** * 密码 */privateStringpassword;/** * 手机号 */privateStringphone;/** * 邮箱 */privateStringemail;}2. 业务 MapperUserMapper/** * 用户Mapper */publicinterfaceUserMapperextendsBaseMapperUser{// 无需编写基础CRUD方法直接继承即可}3. 业务 Service 接口IUserService/** * 用户Service接口 */publicinterfaceIUserServiceextendsIBaseServiceUser{// 可扩展自定义业务方法UsergetUserByUserName(StringuserName);}4. 业务 Service 实现类UserServiceImplimportorg.springframework.stereotype.Service;/** * 用户Service实现类 */ServicepublicclassUserServiceImplextendsBaseServiceImplUserMapper,UserimplementsIUserService{OverridepublicUsergetUserByUserName(StringuserName){returngetOne(Wrappers.UserlambdaQuery().eq(User::getUserName,userName));}}5. 业务 ControllerUserControllerimportorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;/** * 用户Controller */RestControllerRequestMapping(/user)publicclassUserControllerextendsBaseControllerUser,IUserService{// 无需编写基础接口直接继承即可// 可扩展自定义接口GetMapping(/name/{userName})publicUsergetUserByUserName(PathVariableStringuserName){returnservice.getUserByUserName(userName);}}总结整套封装基于泛型 T 实现了从 Entity 到 Controller 的全层通用化所有业务模块只需继承对应基类即可拥有完整的基础 CRUD 能力。BaseEntity 封装了通用字段ID、创建时间、更新时间、逻辑删除避免各实体重复定义BaseController 提供了标准化的 RESTful 接口无需重复编写。保留了扩展能力业务层可在继承基类的基础上灵活扩展自定义的业务方法和接口。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站备案号官网淘宝网站怎么做网站

Excalidraw:让战略分析“画”出来 在一次初创公司的产品战略会上,会议室的白板早已被密密麻麻的文字填满。产品经理站在前面,一边讲解,一边不断擦掉重写,团队成员频频点头,却没人敢打断——因为一旦开口&am…

张小明 2026/1/1 11:23:29 网站建设

网站上的办公网站怎么做示范建设验收网站

MusicFree插件系统是开源音乐播放器的核心扩展机制,通过安装不同的插件,用户能够整合来自多个平台的音乐资源,实现统一的播放体验。这个强大的插件架构让MusicFree从单一播放器进化为全能音乐管理中心。 【免费下载链接】MusicFreePlugins Mu…

张小明 2026/1/1 16:18:56 网站建设

绵阳做网站优化北京网站建设app开发

驻马店竟藏着这些质量超棒的家电门店,你知道几家?在驻马店,家电市场的繁荣为消费者提供了众多的选择。然而,在众多门店中,哪些家电门店的家电质量超棒呢?下面为您详细介绍。一站式家电购物新体验驻马店天猫…

张小明 2026/1/4 22:59:20 网站建设

wordpress交易网站闲鱼网站建设

3步实现PHP应用性能飞跃:phpredis数据压缩优化指南 【免费下载链接】phpredis A PHP extension for Redis 项目地址: https://gitcode.com/gh_mirrors/ph/phpredis 你是否在为PHP应用的Redis性能瓶颈而烦恼?数据传输缓慢、网络带宽占用高、存储成…

张小明 2026/1/2 17:10:13 网站建设

自助免费搭建网站h5轻设计平台

1. 为什么这个毕设项目值得你 pick ? 《基于Java的商业银行税务智慧管理系统的设计与实现》旨在提供一个系统化、模块化的解决方案,满足商业银行业务管理的实际需求。该系统涵盖客户档案管理、存款账户管理、贷款申请管理等20个功能模块,每个模块均对应…

张小明 2026/1/3 8:21:16 网站建设

seo网站优化专家aisinoty810色带

comsol光学仿真 光子晶体光纤 论文复现(图是仿的一个spr传感器和一个三芯分束器)图左原文,图右仿的结果 基于SPR的光纤传感器 光子晶体光纤偏振分束器 光子晶体光纤仿真 模式分析 计算等效折射率,限制损耗,模式色散&am…

张小明 2026/1/3 2:03:48 网站建设