首页
关于
留言
统计
友链
壁纸
影视
留言找电影
Search
1
java jdk17版本使用cglib报错问题解决
320 阅读
2
在Java中修复json数据,json格式不正确,如何在Java中修复不正确的json
116 阅读
3
Java实现双链表插入排序~渡星河全网首发
106 阅读
4
Java打印某年某月的日历~不调用函数
76 阅读
5
Java中判断是否是闰年
70 阅读
代码笔记
Java
css
Javascript
数据库
安卓开发
Java 功能实例
Java 封装
我的日常
影音分享
文案
恋爱问答
资源分享
电脑游戏
实用APP
登录
/
注册
Search
标签搜索
java
java作业
恋爱
动漫
3A大作
独行月球
电影分享
总之就是非常可爱
JavaScript
office
破解
mysql
vue
java打包
跨域
tomcat解决乱码
bug解决
tomcat
vscode
渡星河
累计撰写
94
篇文章
累计收到
30
条评论
首页
栏目
代码笔记
Java
css
Javascript
数据库
安卓开发
Java 功能实例
Java 封装
我的日常
影音分享
文案
恋爱问答
资源分享
电脑游戏
实用APP
页面
关于
留言
统计
友链
壁纸
影视
留言找电影
搜索到
44
篇与
的结果
2024-05-20
linux环境安装jdk8教程
第一步首先去官网下载对应jdk第二步在linux使用mkdir -r /usr/local/jdk8第三步将jdk压缩包解压到/usr/local/jdk8第四步配置环境变量 vim /etc/profile添加下面环境变量export JAVA_HOME=/usr/local/jdk8/export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=${JAVA_HOME}/bin:$PATH第五步使用 source /etc/profile 让环境变量生效
2024年05月20日
31 阅读
0 评论
0 点赞
2024-02-28
spingboot项目,使用定时任务,对应Service报错空指针异常。若依定时任务报空指针异常
导致原因原来定时任务的优先级高于@Autowired注入解决方法// SpringUtils.getBean(IVideoFaceService.class) List<VideoFace> list = SpringUtils.getBean(IVideoFaceService.class).selectVideoFaceList(videoFace); 这样就能获取bean容器想要的bean了
2024年02月28日
22 阅读
0 评论
0 点赞
2024-02-01
mybatis-plus实现真批量导入数据
现在我以我项目的上传用户行为记录做示例实体类package com.xy.admin.entity; import com.baomidou.mybatisplus.annotation.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; /** * <p> * * </p> * * @author duGalaxy * @since 2024-01-31 */ @Data @EqualsAndHashCode(callSuper = false) public class UserTrail implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * iptv账号 */ private String iptvAccount; /** * 访问路径 */ private String route; /** * 访问界面描述 */ private String details; /** * 访问时间 */ private Date time; /** * 类型 */ private String type; } 控制层package com.xy.admin.controller; import com.xy.admin.entity.UserTrail; import com.xy.admin.service.UserTrailService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.sql.Timestamp; /** * <p> * 前端控制器 * </p> * * @author duGalaxy * @since 2024-01-31 */ @RestController @RequestMapping("/trail") @Slf4j public class UserTrailController { @Autowired private UserTrailService userTrailService; @PostMapping("addTrail") public String addTrail(String userId,String route, String details,String type){ if("".equals(userId)|| "".equals(route)|| "".equals(details)|| "".equals(type)){ log.info("参数为空,添加失败!"); return "参数为空,添加失败!"; }else{ UserTrail records = new UserTrail(); records.setIptvAccount(userId); records.setRoute(route); records.setDetails(details); records.setType(type); records.setTime(new Timestamp(System.currentTimeMillis())); return userTrailService.add(records) ? "添加成功!" : "添加失败!"; } } } service层package com.xy.admin.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xy.admin.entity.UserTrail; import com.baomidou.mybatisplus.extension.service.IService; import com.xy.admin.mapper.UserTrailMapper; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; /** * <p> * 服务类 * </p> * * @author duGalaxy * @since 2024-01-31 */ public interface UserTrailService extends IService<UserTrail> { boolean add(UserTrail records); } 重点package com.xy.admin.service.impl; import com.xy.admin.entity.UserTrail; import com.xy.admin.mapper.UserTrailMapper; import com.xy.admin.service.UserTrailService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author duGalaxy * @since 2024-01-31 */ import org.springframework.scheduling.annotation.Async; import javax.annotation.Resource; import java.util.List; import java.util.Set; @Service @Slf4j public class UserTrailServiceImpl extends ServiceImpl<UserTrailMapper, UserTrail> implements UserTrailService { @Autowired private UserTrailMapper userTrailMapper; @Resource private RedisTemplate<String, UserTrail> redisTemplate; public static final String USER_TRAIL_QUEUE = "user_trail_queue"; @Async public void saveUserTrailToRedis(UserTrail record) { // 存储用户轨迹数据到 Redis redisTemplate.opsForList().rightPush(USER_TRAIL_QUEUE, record); } @Async public void saveUserTrailsToDatabase(List<UserTrail> records) { // 批量插入用户轨迹数据到 MySQL 数据库 userTrailMapper.batchInsert(records); } // 定时任务,每隔一段时间执行一次 @Scheduled(fixedRate = 60000) // 60秒 public void processUserTrails() { log.info("开始处理用户轨迹数据..."); // 从 Redis 中取出用户轨迹数据并批量插入到 MySQL 数据库 List<UserTrail> userTrails = redisTemplate.opsForList().range(USER_TRAIL_QUEUE, 0, -1); assert userTrails != null; if (!userTrails.isEmpty()) { saveUserTrailsToDatabase(userTrails); redisTemplate.opsForList().trim(USER_TRAIL_QUEUE, 1, -1); } } @Override public boolean add(UserTrail record) { // 异步将用户轨迹数据存储到 Redis saveUserTrailToRedis(record); return true; // 返回成功,不等待数据库插入完成 } } mapper层package com.xy.admin.mapper; import com.xy.admin.entity.UserTrail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> * Mapper 接口 * </p> * * @author duGalaxy * @since 2024-01-31 */ @Mapper public interface UserTrailMapper extends BaseMapper<UserTrail> { void batchInsert(@Param("list")List<UserTrail> records); } 对应xml,实现批量sql<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- Mapper XML文件 --> <mapper namespace="com.xy.admin.mapper.UserTrailMapper"> <insert id="batchInsert" parameterType="java.util.List"> INSERT INTO user_trail (iptv_account, route, details, time, type) VALUES <foreach collection="list" item="record" separator=","> (#{record.iptvAccount}, #{record.route}, #{record.details}, #{record.time}, #{record.type}) </foreach> </insert> </mapper> 该项目使用了redis,用户行为会先保存在redis,每隔60秒会触发定时任务将redis中的数据持久化到mysql。
2024年02月01日
19 阅读
0 评论
0 点赞
2024-02-01
maven打包项目报错数据库链接问题,只能填写本地能链接的数据库密码,否则打包报密码错
每天一个避免踩坑小技巧项目写完了,要打包了,将application.yaml中的密码信息改为服务器的了。然后打包,各种密码报错报错提示2024-02-01 01:46:03 INFO 27416 --- [ main] f.a.AutowiredAnnotationBeanPostProcessor : Autowired annotation is not supported on static fields: private static final java.lang.String com.xy.admin.common.EncryptUtils.KEY Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. 2024-02-01 01:46:05 INFO 27416 --- [ main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource 2024-02-01 01:46:06 ERROR 27416 --- [ main] com.alibaba.druid.pool.DruidDataSource : init datasource error, url: jdbc:mysql://localhost:3306/xy_admin?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-j-8.0.31.jar:8.0.31] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.31.jar:8.0.31] at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-j-8.0.31.jar:8.0.31] at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) ~[mysql-connector-j-8.0.31.jar:8.0.31] at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.0.31.jar:8.0.31] at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-j-8.0.31.jar:8.0.31] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1657) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723) ~[druid-1.2.8.jar:1.2.8] at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:927) ~[druid-1.2.8.jar:1.2.8] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_392] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_392] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_392] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_392] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1930) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1872) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) [spring-beans-5.3.23.jar:5.3.23] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) [spring-beans-5.3.23.jar:5.3.23] at org.s解决方法关闭maven打包进行测试即可
2024年02月01日
11 阅读
0 评论
1 点赞
2024-01-30
Java实现递归修改文件名字/复制文件
代码示例package com.zhkt.ostrich; /** * Author: duGalaxy * Date: 2023/09/11/11:03 * Description: */ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public class test { public static void main(String[] args) throws IOException { String directoryPath = "F:\\A公司项目\\汐游游戏\\xy-epg\\game"; // 替换为你的目录路径 renameFiles(directoryPath); } public static void renameFiles(String directoryPath) throws IOException { File directory = new File(directoryPath); File[] files = directory.listFiles(); if (files != null) { for (File file : files) { if (file.isFile()) { renameFile(file); } else if (file.isDirectory()) { // 递归调用自身处理子文件夹 renameFiles(file.getAbsolutePath()); } } System.out.println(count); } } static int count = 0; public static void renameFile(File file) { String originalName = file.getName(); String path = file.getPath(); if (path.contains(".mp3")){ // 包含mp3直接复制粘贴换个后缀 try { Files.copy(Paths.get(path),Paths.get(path.replaceAll(".mp3",".mp4"))); } catch (IOException e) { return; } } // System.out.println(); // System.out.println(originalName); // String newName = originalName.replaceAll("探险岛", "txd"); // count++; // if (!originalName.equals(newName)) { // String newPath = file.getParent() + File.separator + newName; // File newFile = new File(newPath); // // if (file.renameTo(newFile)) { // System.out.println("文件重命名成功:" + originalName + " --> " + newName); // } else { // System.out.println("文件重命名失败:" + originalName); // } // } } }
2024年01月30日
11 阅读
0 评论
1 点赞
1
2
...
9