当前位置: 首页 > news >正文

爱站网关键词挖掘机vps wordpress 卸载

爱站网关键词挖掘机,vps wordpress 卸载,三明网站seo,如何做网络营销推广 咨询时代达信(深圳)科技有限公司前言 之前搭建SpringBoot项目工程#xff0c;所使用的持久层框架不是Mybatis就是JPA#xff0c;还没试过整合MybatisPlus框架并使用#xff0c;原来也如此简单。在此简单记录一下在SpringBoot项目中#xff0c;整合MybatisPlus持久层框架、Druid数据库连接池的过程。 一、…前言 之前搭建SpringBoot项目工程所使用的持久层框架不是Mybatis就是JPA还没试过整合MybatisPlus框架并使用原来也如此简单。在此简单记录一下在SpringBoot项目中整合MybatisPlus持久层框架、Druid数据库连接池的过程。 一、导入依赖 1pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactId帅龍之龍/artifactIdversion1.0-SNAPSHOT/version!-- SpringBoot应用的父级依赖提供了SpringBoot统一的依赖管理和插件管理 --parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.3/version!-- version3.0.1/version --relativePath/ !-- lookup parent from repository --/parent!-- JDK版本 --propertiesjava.version1.8/java.version!-- java.version17/java.version --/propertiesdependencies!-- Web启动器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- MyBatis 持久层框架 --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.1.1/version/dependency!-- MyBatisPlus 增强框架 --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.2/version/dependency!-- Druid 数据库连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.15/version/dependency!-- MySQL 驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependency!-- Thymeleaf --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependency!-- Lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!-- UserAgent --dependencygroupIdeu.bitwalker/groupIdartifactIdUserAgentUtils/artifactIdversion1.20/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build /project 二、项目配置 1application.yml server:port: 8090spring:datasource:#---- ^ MySQL 数据库配置 ----#driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/帅龍之龍?useUnicodetruecharacterEncodingutf-8useSSLtrueserverTimezoneUTCusername: password: type: com.alibaba.druid.pool.DruidDataSource#---- / MySQL 数据库配置 ----##---- ^ Druid 数据库连接池配置 ----#druid:# 初始化连接池数量initial-size: 5# 最小连接池数量min-idle: 5# 最大连接池数量max-active: 30# 配置获取连接等待超时的时间单位毫秒max-wait: 60000# 配置间隔多久才进行一次检测检测需要关闭的空闲连接单位是毫秒time-between-eviction-runs-millis: 60000# 配置一个连接在池中最小生存的时间单位是毫秒min-evictable-idle-time-millis: 300000# 验证数据库连接的有效性若返回结果不为空则说明连接可用validation-query: select 1# 在检查闲置连接时同时检查连接可用性test-while-idle: true# 申请连接时执行validationQuery检测连接是否有效做了这个配置会降低性能test-on-borrow: false# 归还连接时执行validationQuery检测连接是否有效做了这个配置会降低性能test-on-return: false# 是否缓存preparedStatement也就是PSCachePSCache对支持游标的数据库性能提升巨大比如说Oracle而在MySQL下建议关闭pool-prepared-statements: true# 配置监控统计拦截的filters去掉后监控界面sql无法统计wall用于防火墙max-pool-prepared-statement-per-connection-size: 20filters: stat,wall# 合并多个DruidDataSource的监控数据#useGlobalDataSourceStat: true# 通过connectProperties属性来打开mergeSql功能慢SQL记录connect-properties: druid.stat.mergeSqltrue;druid.stat.slowSqlMillis5000# 采集web-jdbc关联监控的数据web-stat-filter:enabled: trueurl-pattern: /*exclusions: *.txt,*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*# 监控配置stat-view-servlet:enabled: trueurl-pattern: /druid/*reset-enable: falselogin-username: rootlogin-password: 123456allow:deny:#---- / Druid ^ 数据库连接池配置 ----##---- ^ 文件上传大小限制 ----#servlet:multipart:max-file-size: 30MBmax-request-size: 30MB#---- / 文件上传大小限制 ----##---- ^ thymeleaf 前端模板配置 ----#thymeleaf:mode: HTMLencoding: UTF-8cache: falseprefix: classpath:/templates/suffix: .html#---- / thymeleaf 前端模板配置 ----##---- ^ mybatis-plus 配置 ----# mybatis-plus:mapper-locations: mapper/*.xmlconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: truetype-aliases-package: org.example.pojo.entity #---- / mybatis-plus 配置 ----#三、控制层 1/src/org/example/controller/RecordController.java package org.example.controller;import org.example.service.impl.RecordServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;Controller RequestMapping(value api) public class RecordController {Autowiredprivate RecordServiceImpl recordService;/*** 保存用户访问记录*/GetMapping(value saveUserAccessRecord)ResponseBodyCrossOriginpublic T T saveUserAccessRecord (HttpServletRequest request) {return recordService.saveUserAccessRecord(request);}/*** 删除用户访问记录*/GetMapping(value deleteUserAccessRecord)ResponseBodyCrossOriginpublic T T deleteUserAccessRecord (RequestParam(recordId) Integer recordId) {return recordService.deleteUserAccessRecord(recordId);}/*** 修改用户访问记录*/GetMapping(value modifyUserAccessRecord)ResponseBodyCrossOriginpublic T T modifyUserAccessRecord () {return recordService.modifyUserAccessRecord();}/*** 查询用户访问记录*/GetMapping(value queryUserAccessRecord)ResponseBodyCrossOriginpublic T T queryUserAccessRecord () {return recordService.queryUserAccessRecord();} }四、接口层 1/src/org/example/service/IRecordService.java package org.example.service;import javax.servlet.http.HttpServletRequest;public interface IRecordService {T T saveUserAccessRecord(HttpServletRequest request);T T deleteUserAccessRecord(Integer recordId);T T modifyUserAccessRecord();T T queryUserAccessRecord(); }五、实现层 1/src/org/example/service/impl/RecordServiceImpl.java package org.example.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import eu.bitwalker.useragentutils.UserAgent; import org.example.mapper.RecordMapper; import org.example.pojo.entity.Record; import org.example.service.IRecordService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import javax.servlet.http.HttpServletRequest; import java.util.HashMap;Service public class RecordServiceImpl implements IRecordService {private static final Logger log LoggerFactory.getLogger(RecordServiceImpl.class);Autowiredpublic RecordMapper recordMapper;Overridepublic T T saveUserAccessRecord(HttpServletRequest request) {HashMapString, Object responseObj new HashMap();try {String agent request.getHeader(User-Agent);UserAgent userAgent UserAgent.parseUserAgentString(agent);// 获取发起请求的IP地址String ip request.getHeader(x-forwarded-for);if (ip null || ip.length() 0 || unknown.equalsIgnoreCase(ip)) {ip request.getHeader(Proxy-Client-IP);}if (ip null || ip.length() 0 || unknown.equalsIgnoreCase(ip)) {ip request.getHeader(WL-Proxy-Client-IP);}if (ip null || ip.length() 0 || unknown.equalsIgnoreCase(ip)) {ip request.getRemoteAddr();}Record record new Record();record.setIp(ip);record.setBrowser(userAgent.getBrowser().getName());record.setOs(userAgent.getOperatingSystem().getName());record.setDeviceType(userAgent.getOperatingSystem().getDeviceType().getName());recordMapper.insert(record);responseObj.put(code, 200);responseObj.put(success, true);responseObj.put(data, record);responseObj.put(msg, 保存成功);} catch (Exception e) {responseObj.put(code, 500);responseObj.put(success, false);responseObj.put(msg, e.getMessage());}return (T) responseObj;}Overridepublic T T deleteUserAccessRecord(Integer recordId) {try {recordMapper.deleteById(recordId);return (T) success;} catch (Exception e) {return (T) fail;}}Overridepublic T T modifyUserAccessRecord() {try {Record record new Record();record.setId(1L);record.setIp(localhost);record.setBrowser(帅龍之龍);record.setOs(Windows 11);record.setDeviceType(Android);recordMapper.updateById(record);return (T) success;} catch (Exception e) {return (T) fail;}}Overridepublic T T queryUserAccessRecord() {// 根据ID查询// Long recordId (long) 1;// return (T) recordMapper.selectById(recordId);// 使用 QueryWrapper 构造器查询全部用户// QueryWrapperRecord queryWrapper new QueryWrapper();// queryWrapper.eq(ip, 0:0:0:0:0:0:0:1);// return (T) recordMapper.selectList(queryWrapper);// 使用 LambdaQueryWrapper 构造器查询全部用户LambdaQueryWrapperRecord lambdaQueryWrapper new LambdaQueryWrapper();lambdaQueryWrapper.eq(Record::getIp, 127.0.0.1);return (T) recordMapper.selectList(lambdaQueryWrapper);} }六、对象实体 1/src/org/example/pojo/entity/Record.java package org.example.pojo.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import lombok.ToString;import java.sql.Timestamp;Data ToString public class Record {// 指定主键名、主键生产策略TableId(value id, type IdType.AUTO)private Long id;private String ip;private String os;private String browser;// 指定列名若一致则可以不用指定若不一致则需要指定TableField(device_type)private String deviceType;// 指定列名若一致则可以不用指定若不一致则需要指定TableField(create_time)private Timestamp createTime; }七、持久层 1/src/org/example/mapper/RecordMapper.java package org.example.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.example.pojo.entity.*; import org.springframework.stereotype.Repository;Repository public interface RecordMapper extends BaseMapperRecord { }八、启动器 1App.java package org.example;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.web.servlet.config.annotation.EnableWebMvc;MapperScan(org.example.*) EnableWebMvc EnableTransactionManagement SpringBootApplication public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);} } 九、数据表 -- -- 表的结构 record --CREATE TABLE IF NOT EXISTS record (id bigint(20) NOT NULL AUTO_INCREMENT,ip varchar(30) DEFAULT NULL,os varchar(30) DEFAULT NULL,browser varchar(30) DEFAULT NULL,device_type varchar(30) DEFAULT NULL,create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8 AUTO_INCREMENT8 ;-- -- 转存表中的数据 record --INSERT INTO record (id, ip, os, browser, device_type, create_time) VALUES (1, localhost, Windows 11, 帅龍之龍, Android, 2021-11-13 17:33:24), (2, 0:0:0:0:0:0:0:1, WINDOWS_10, CHROME, Computer, 2021-11-13 17:43:54), (3, 0:0:0:0:0:0:0:1, WINDOWS_10, CHROME, Computer, 2021-11-13 17:48:28), (4, 127.0.0.1, WINDOWS_10, CHROME, Computer, 2021-11-13 17:49:38), (5, 127.0.0.1, WINDOWS_10, CHROME, Computer, 2021-11-13 17:54:42), (6, 192.168.0.101, Windows 10, Chrome 9, Computer, 2023-10-09 14:18:32), (7, 192.168.0.101, Windows 10, Chrome 9, Computer, 2023-10-09 14:19:29); 十、运行效果 1德鲁伊登录页面 2查询示例
http://www.zqtcl.cn/news/202783/

相关文章:

  • 广东佛山最新通知北京seo怎么优化
  • 浙江省通信管理局 网站备案 管理部门科技公司经营范围包括哪些
  • 网站域名备案转接入手续深圳外贸公司qc招聘
  • 湖北网站建设服务公司可以做产品推广的网站
  • 做经营性的网站备案条件wordpress删除菜单
  • js商城网站个安装wordpress
  • 想给学校社团做网站企业服务平台是做什么的
  • 网站推广渠道的类型wordpress看不到表格
  • 网站建设与推广实训报告册附近广告设计与制作门店电话
  • wordpress汉语公益网站开发使用api对seo
  • 北京网站优化前景seo网络推广专员
  • 临海网站制作工程施工合同免费版
  • 免费的黄冈网站有哪些平台wordpress 新闻发布
  • 给男票做网站表白的软件wordpress软件网站模板下载
  • 网站备案个人可以做吗dw制作一个手机网站模板
  • 如何识别一个网站是否做的好坏新河官网
  • 深圳网站建设 卓教育直播网站开发
  • 如何修改网站后台密码河南省罗山县做网站的公司
  • 个人网站免费源码大全湖南长沙新增病例最新消息
  • 途牛网站开发需求邯郸市中小学健康管理平台登录
  • 青岛商城网站开发年度关键词有哪些
  • 电商网站开发文献综述网站文案优化
  • 兼职工厂网站建设万维网的代表网站
  • 企业要建设一个网站需要多少钱网站制作的关键技术
  • 大连住房和城乡建设网站工程公司取名字大全
  • 自建网站投放广告网页设计色彩搭配
  • 网站建站公司哪家价钱合理seo优化是什么职位
  • 德州建设网站网络营销推广方式
  • 网站建设经费预算策划书河南省城乡建设厅网站
  • 校园二手网站开发与设计任务书wordpress 分类名称