如何针对你的网站做搜索优化台州手机端建站模板

张小明 2026/1/10 2:39:53
如何针对你的网站做搜索优化,台州手机端建站模板,景观设计网站大全,杭州酒店团购网站建设MyBatis-Plus 插件MyBatis-Plus#xff08;简称 MP#xff09;是基于 MyBatis 的增强工具#xff0c;在保留原生功能的基础上#xff0c;提供了简化开发、自动 CRUD、分页、代码生成等特性。以下从核心功能、插件模块及使用示例展开说明。核心功能代码生成器 通过 AutoGene…MyBatis-Plus 插件MyBatis-Plus简称 MP是基于 MyBatis 的增强工具在保留原生功能的基础上提供了简化开发、自动 CRUD、分页、代码生成等特性。以下从核心功能、插件模块及使用示例展开说明。核心功能代码生成器通过AutoGenerator可快速生成 Entity、Mapper、Service、Controller 层代码支持自定义模板。条件构造器提供QueryWrapper和UpdateWrapper通过链式调用构建动态 SQL 条件无需手动拼接 SQL。分页插件内置PaginationInnerInterceptor支持多种数据库分页逻辑与Page对象配合实现物理分页。乐观锁插件通过Version注解标记版本号字段自动实现乐观锁控制。性能分析插件PerformanceInterceptor可输出 SQL 执行时间帮助优化慢查询。常用插件配置示例分页插件配置在 Spring Boot 中配置分页插件Configuration public class MybatisPlusConfig { Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }代码生成器示例AutoGenerator generator new AutoGenerator(); generator.setDataSource(new DataSourceConfig() .setUrl(jdbc:mysql://localhost:3306/test) .setUsername(root) .setPassword(123456)); StrategyConfig strategy new StrategyConfig() .setInclude(user, order) // 指定生成表 .setEntityLombokModel(true); // 使用 Lombok generator.setStrategy(strategy); generator.execute();动态表名插件适用于分库分表场景通过实现TableNameHandler动态解析表名public class DynamicTableNameParser implements TableNameHandler { Override public String dynamicTableName(String sql, String tableName) { return tableName _2023; // 动态拼接表名 } }注意事项避免在 Wrapper 中直接拼接用户输入防止 SQL 注入。分页插件需依赖数据库方言如DbType.MYSQL。乐观锁字段需为数值类型且更新时自动递增版本号。通过合理使用插件可显著减少样板代码提升开发效率。mybatis-Plus扩展功能逻辑删除逻辑删除是一种软删除方式通过标记字段如is_deleted的状态区分数据是否被删除而非物理删除数据库记录。MyBatis-Plus提供了内置支持简化逻辑删除的实现。配置逻辑删除字段在实体类中标记逻辑删除字段使用TableLogic注解Data public class User { private Long id; private String name; TableLogic private Integer isDeleted; // 1表示删除0表示未删除 }全局配置可选在application.yml中配置逻辑删除的默认值避免在每个实体类中重复定义mybatis-plus: global-config: db-config: logic-delete-field: isDeleted # 全局逻辑删除字段名 logic-not-delete-value: 0 # 未删除时的值 logic-delete-value: 1 # 删除时的值自动过滤逻辑删除数据MyBatis-Plus会在查询时自动过滤标记为已删除的数据无需手动添加条件。例如userMapper.selectList(null); // 自动生成SQL: WHERE is_deleted 0手动调用删除方法使用deleteById或delete方法会触发逻辑删除userMapper.deleteById(1L); // 执行UPDATE语句设置is_deleted 1查询包含已删除数据若需查询包含逻辑删除的数据需自定义SQL或使用条件构造器忽略逻辑删除字段QueryWrapperUser wrapper new QueryWrapper(); wrapper.isNull(is_deleted).or().eq(is_deleted, 1); userMapper.selectList(wrapper);注意事项数据库表需存在逻辑删除字段如is_deleted。逻辑删除与唯一索引冲突时需调整业务逻辑或索引设计。关联查询时需手动处理逻辑删除条件。通过上述配置MyBatis-Plus可无缝集成逻辑删除功能减少冗余代码。自动填充功能MyBatis-Plus的自动填充功能用于在数据库操作时自动填充字段值例如创建时间、更新时间、操作人等。通过实现MetaObjectHandler接口可以自定义填充逻辑。实现自动填充的步骤定义填充字段注解在实体类字段上使用TableField注解标记自动填充行为例如TableField(fill FieldFill.INSERT) private LocalDateTime createTime; TableField(fill FieldFill.INSERT_UPDATE) private LocalDateTime updateTime;FieldFill.INSERT仅在插入时填充FieldFill.UPDATE仅在更新时填充FieldFill.INSERT_UPDATE插入和更新时均填充实现MetaObjectHandler接口创建类实现MetaObjectHandler重写insertFill和updateFill方法Component public class MyMetaObjectHandler implements MetaObjectHandler { Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject, createTime, LocalDateTime.class, LocalDateTime.now()); this.strictInsertFill(metaObject, updateTime, LocalDateTime.class, LocalDateTime.now()); } Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, updateTime, LocalDateTime.class, LocalDateTime.now()); } }strictInsertFill/strictUpdateFill严格模式填充要求字段类型匹配非严格模式可使用setFieldValByName方法注意事项字段类型需与填充值类型一致否则会抛出异常。填充字段需在数据库中存在且为非主键字段。若填充逻辑依赖其他服务如获取当前用户可通过Spring上下文注入依赖。高级用法动态填充通过MetaObject获取当前操作数据实现条件填充Override public void insertFill(MetaObject metaObject) { Object status metaObject.getValue(status); if (draft.equals(status)) { this.setFieldValByName(publishTime, null, metaObject); } else { this.setFieldValByName(publishTime, LocalDateTime.now(), metaObject); } }多数据源适配在多数据源场景下需确保MetaObjectHandler实现类被所有数据源识别通常将其声明为Spring Bean即可自动生效。常见问题解决填充不生效检查字段注解fill值是否与操作类型匹配或是否漏注Component。类型不匹配错误使用strictFill方法时确认填充值与字段类型一致。覆盖问题手动设置的字段值会优先于自动填充值。SpringBoot集成Druid数据源Druid 概述Druid 是一个开源的分布式实时数据分析系统专为快速查询和实时摄入大规模数据而设计。它结合了数据仓库、时序数据库和搜索系统的特性适用于高性能的 OLAP在线分析处理场景。核心特性实时与批量摄入支持从 Kafka 等流式数据源实时摄入数据也支持批量导入历史数据。列式存储数据按列存储优化聚合和扫描性能。分布式架构通过横向扩展处理 PB 级数据支持高可用和容错。时间分区数据按时间分片便于高效查询和时间范围过滤。近似计算提供 HyperLogLog 等算法支持快速去重和近似计算。适用场景实时监控与日志分析用户行为分析广告技术AdTech中的点击流分析IoT 设备数据时序分析架构组件Coordinator管理数据分片的分布和负载均衡。Overlord控制数据摄入任务的分配。Broker接收查询请求并路由到数据节点。Historical存储和提供历史数据查询。MiddleManager处理实时数据摄入。查询能力支持 SQL 和原生 JSON 查询。提供聚合、过滤、分组、排序等操作。低延迟响应适用于交互式分析。与其他工具的对比对比 ElasticsearchDruid 更擅长聚合分析Elasticsearch 侧重全文检索。对比 HadoopDruid 提供亚秒级查询Hadoop 更适合离线批处理。部署方式可独立部署或集成 Kubernetes 等容器化平台。社区版开源企业版提供额外功能和支持。Druid 的官方文档和社区资源丰富适合需要高性能实时分析的企业级应用。依赖dependency groupIdcom.alibaba/groupId artifactIddruid-spring-boot-3-starter/artifactId version1.2.23/version /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependencyapplication.yml相关配置# 服务器配置核心修正端口key server: port: 8080 servlet: context-path: / # 上下文路径默认/可省略 # Spring 核心配置 spring: application: name: mybatis-xml # 数据源配置Druid datasource: type: com.alibaba.druid.pool.DruidDataSource druid: # 数据库连接信息适配MySQL 8.x url: jdbc:mysql://localhost:3306/text_book_db?useUnicodetruecharacterEncodingutf-8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver # 连接池核心参数 initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false # PreparedStatement 缓存 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 # 过滤器statSQL监控wall防注入slf4j日志 filters: stat,wall,slf4j # 修正connection-properties 改用行内写法避免解析失败 connection-properties: druid.stat.mergeSqltrue;druid.stat.slowSqlMillis5000;druid.stat.logSlowSqltrue # Druid 监控页面配置 stat-view-servlet: enabled: true url-pattern: /druid/* login-username: admin login-password: admin123 reset-enable: false allow: 127.0.0.1 # 仅允许本地访问生产按需扩展 deny: 192.168.1.100 # Web 请求监控过滤器 web-stat-filter: enabled: true url-pattern: /* exclusions: *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/* session-stat-enable: true session-stat-max-count: 1000 principal-session-name: loginUser principal-cookie-name: loginUser # MyBatis-Plus 配置适配XML开发 mybatis-plus: type-aliases-package: com.ktjy.crm.entity mapper-locations: classpath:generator/mapper/**/*.xml # 确保XML文件在该路径下 configuration: map-underscore-to-camel-case: true # 下划线转驼峰必须开 cache-enabled: false call-setters-on-nulls: true # 空值字段返回前端不缺字段 log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl # 打印SQL到日志 global-config: db-config: # 关键修正根据数据库主键策略调整二选一 # 若主键自增AUTO_INCREMENT用这个 id-type: auto # 若主键是雪花算法手动生成用这个 # id-type: assign_id update-strategy: not_null logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0 # 日志配置打印SQL和Druid日志 logging: level: root: WARN com.ktjy.crm.mapper: DEBUG # 打印Mapper执行的SQL关键调试 com.alibaba.druid: INFO # Druid监控日志 com.baomidou.mybatisplus: INFO # MyBatis-Plus日志 pattern: console: %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

百度竞价做网站建设百度搜一搜

Thinking-Claude深度解析:开启AI思维可视化的革命性工具 【免费下载链接】Thinking-Claude Let your Claude able to think 项目地址: https://gitcode.com/gh_mirrors/th/Thinking-Claude 在AI对话日益普及的今天,如何真正理解AI的思考过程成为专…

张小明 2026/1/3 19:10:25 网站建设

免费推广网站入口202电影院卖品套餐计划

还在为无法离线观看A站精彩内容而烦恼吗?想随时随地重温UP主的经典作品却苦于网络限制?这款专为A站用户设计的视频下载工具将彻底改变你的观看体验。 【免费下载链接】AcFunDown 包含PC端UI界面的A站 视频下载器。支持收藏夹、UP主视频批量下载 &#x1…

张小明 2026/1/1 13:20:51 网站建设

上海企业响应式网站建设推荐建公司网站的公司

7个让Obsidian笔记焕然一新的实用美化技巧 【免费下载链接】awesome-obsidian 🕶️ Awesome stuff for Obsidian 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-obsidian 你是否觉得自己的Obsidian笔记界面看起来有些单调乏味?想要打造一…

张小明 2026/1/2 5:26:50 网站建设

ps切片做网站建设网站的工作步骤是

Godot游戏资源解包终极指南:从入门到精通 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 想要提取Godot游戏中的精美资源却不知从何下手?面对神秘的.pck文件感到困惑&#xf…

张小明 2026/1/2 8:03:13 网站建设

潍坊企业模板建站住房与建设注册中心网站

第一章:Open-AutoGLM 多模态理解深化Open-AutoGLM 作为新一代开源多模态大模型,致力于在图像、文本与结构化数据之间建立深度语义关联。其核心架构融合了视觉编码器与语言解码器的双向对齐机制,显著提升了跨模态推理能力。该模型支持开放域问…

张小明 2026/1/2 5:26:55 网站建设

网站开发部门工资会计分录资源类网站怎么做的

突破传统:Charticulator如何用标记驱动重塑数据可视化设计 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 还在为千篇一律的图表发愁吗?想…

张小明 2026/1/2 8:45:13 网站建设