Java
文章平均质量分 55
Swallow~
生活除了code,还有诗和远方~
展开
-
多多表查询优化,逆向思维
反过来查询呢原创 2022-07-27 17:45:00 · 656 阅读 · 1 评论 -
springboot结合kaptcha生成图形验证码
springboot结合kaptcha生成图形验证码最近做了一个验证码需求,验证码由后端返回内容和图片base64,验证需要结合token这里用到了Kaptcha框架kaptcha 是一个扩展自 simplecaptcha 的验证码库,默认情况下,Kaptcha非常易于设置和使用,并且默认输出会产生一个很难验证的验证码。默认情况下,它生成的验证码看起来与上面的非常相似。如果您想更改输出的外观,则有几个配置选项,并且该框架是模块化的,因此您可以编写自己的变形代码。Maven引用 <!-原创 2021-06-03 13:43:13 · 327 阅读 · 1 评论 -
Mysql十万级数据分页查询速度优化
最近遇到的一个线上案例。表数据量大概30w左右,单表分页查询,查最后一页就会耗时极慢单表,带查询条件查询最后一页时那么,问题来了,为什么查到后面会变慢呢mysql在进行分页查询的时候select * from a limit x,y首先会先查询前x+y条数据,然后将前x条丢弃所以,当x的值很大的时候,效率就会变低。那么怎么解决呢关联子查询可以快速定位需要获取的id段,再进行关联查询就可以提高查询效率对于以上查询优化,可以将sql改写很明显,同样的查询条件原创 2021-04-27 21:06:17 · 3427 阅读 · 2 评论 -
mybatis plus collection 一对多分页查询问题
最近一个项目用到了mybatis plus collection 多层嵌套查询,而且不止一层。。。。导致查询分页出来的数据有问题<resultMap id="BaseResultMap" type="UnHandleCaseDO"> <id column="pid" jdbcType="BIGINT" property="id" /> <result column="product_id" jdbcType="INTEGER" proper原创 2021-01-15 21:20:51 · 1802 阅读 · 1 评论 -
JAVA编写AOP切面打印日志和自定义AOP注解
来个简单粗暴的AOP切面打印方法执行日志LogAopAspect.javaimport org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.reflect.MethodSignature;import org.slf4j.Logger;import..原创 2020-12-05 13:16:03 · 412 阅读 · 0 评论 -
JAVA POI 对excel进行导入导出
excel文件导入导出,poi是比较常用的框架,最近经常用到,记录一下基本的一些用法。但是excel内容格式容易报错maven继承 <!--Excel begin --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId>原创 2020-11-28 13:05:58 · 237 阅读 · 0 评论 -
java利用openCV进行人脸对比(三)
之前写过用openCV识别人脸和训练模型,这次说说用模型文件来对比人脸首先要调起本地摄像头,然后识别一下人脸,这个人脸框出来,再调用模型文件进行人脸对比,识别成功显示用户名在人脸框框上面这次我把这个东东结合了另一个项目,写成了一个客户端,然后可以输入实验室ID和用户ID去进行一系列操作,客户端接口请求到另一个项目的服务端,通过服务端去访问Mysql数据库读取一些用户信息和实验室信息,并且校验是否有开门权限,以此来达到打开实验室门的作用另外,一开始写的过程中,遇到一个脑壳疼的问题就..原创 2020-09-06 21:23:03 · 4014 阅读 · 15 评论 -
JAVA匹配,宿舍分配&门禁权限分配
前阵子做了两个小系统,两个类似的需求场景:1、给学生一键分配宿舍2、给需要进入实验室的学生进行权限校验其实这两个用代码实现后,发现逻辑有点类似,另外,写的过程中可以用反向思维,在可以退出的点及时用return,这样可以使逻辑和代码更清爽比较绕的可能是两个循环吧,遍历宿舍的同时要去遍历学生数组,并且要判断宿舍和学生的数量,考虑到宿舍数量和学生数量是否冲突的情况/** * 安排宿舍业务逻辑 * 查询本楼所有未报到的学生-----查询本楼所有未满人的宿舍 * 遍原创 2020-09-02 23:53:49 · 1183 阅读 · 0 评论 -
java接口下载文件和多文件打包下载
单个文件下载思路:先要获取文件路径,通过路径读取文件流,然后把流的信息写入HttpServletResponse类中工具类方法/** * 下载到本地 * * @param file 待下载文件 * @param response 通过controller注入的HttpServletResponse */ public static void sendStream(File file, HttpServletResponse res.原创 2020-08-09 17:55:34 · 750 阅读 · 0 评论 -
java利用openCV进行人脸识别,采集照片和训练模型(二)
填坑来了,继续上次的java使用openCV,本篇讲下训练模型首先,训练模型的目的在于完成人脸对比,之前我们已经可以框出人脸了,那么现在要做的就是把框框里边人脸的图片采集并且保存下来,然后通过FaceRecognizer类中的train()方法去训练人脸模型文件,会输出一个Yml文件。这里边是Java封装类直接调用到openCV底层c++的函数运行CollectData采集人脸的图片到本地,训练模型需要多一点样本,这里采样50张CollectData.javaimport java.io.原创 2020-07-16 21:03:21 · 6102 阅读 · 27 评论 -
【LeetCode】java实现杨辉三角&括号生成(递归实现)
两道LeetCode上边的题目,最后我都用的递归去实现的,所以就写一起咯杨辉三角题目:给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1],[1,4,6,4,1]]============================================================...原创 2020-07-14 20:50:25 · 328 阅读 · 0 评论 -
【PAT】乙级JAVA实现1067 试密码 (20分)
当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。输入格式:输入在第一行给出一个密码(长度不超过 20 的、不包含空格、Tab、回车的非空字符串)和一个正整数 N(≤10),分别是正确的密码和系统允许尝试的次数。随后每行给出一个以回车结束的非空字符串,是用户尝试输入的密码。输入保证至少有一次尝试。当读到一行只有单个 # 字符时,输入结束,并且这一行不是用户的输入。输出格式:对用户的每个输入,如果是正确的密码且尝试次.原创 2020-06-27 21:06:39 · 243 阅读 · 0 评论 -
【PAT】乙级JAVA实现1064 朋友数 (20分)
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。输入格式:输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于104。输出格式:首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多.原创 2020-06-25 01:04:28 · 224 阅读 · 0 评论 -
【PAT】乙级JAVA实现1046 划拳 (15分)
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数N(≤100),随后N行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中喊是喊出的数字,划是划出的数字,均为不超过 100 ...原创 2020-06-23 23:06:53 · 276 阅读 · 0 评论 -
java调起本地摄像头,利用openCV进行人脸识别(一)
嗨咯,又好久没有更新了。今天写个前阵子做的人脸识别程序。该程序客户端基于Jave JFrame客户端的主要作用是,调用电脑的摄像头(我的直接调用笔记本摄像头),然后回显摄像头录取的信息,再利用openCV进行人脸识别。可以框出人脸、并采集人脸数据,采集好后进行模型训练,训练得到模型后,可以进行人脸对比。这个客户端目前已经实现以上功能,但是实现得比较简单,每一步还需要手动点击,为了使他更智能,客户端目前还在改进。所以今天就先简单讲下openCV的环境部署,以及基本的调用。首先,要部署openC原创 2020-06-23 22:40:32 · 4222 阅读 · 17 评论 -
MySql查询优化:一次一千多条数据,多表查询
最近开发的一个系统,随着它系统内部数据越来越胖,主要界面的查询,也越来越缓慢,每次进入界面,感觉都要几秒才能看到列表,这样的用户体验感是不好的。而且这才一千多条数据。。。。。所以,这个肯定是要处理一下的,那么,一起来分析一下吧。最初的sql语句SELECT cbi.id AS id, cbi.name AS name, cbi.case_no AS caseNo, cbi.code AS code, cbi原创 2020-05-29 19:39:32 · 3657 阅读 · 0 评论 -
JAVA常用时间方法,Date与String互转,计算年龄,时间增加几小时、几天
获取当前时间 String型 //获取日期 public static String getDate(){ //格式化日期的对象(转化成习惯的时间格式) SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy-MM-dd"); //静态方法getInstance()使用默认时...原创 2020-04-10 01:19:03 · 531 阅读 · 0 评论 -
Ajax发送请求Jquery遍历单选按钮,实现获取单选题答案功能
<script> $(function(){//点击按钮时触发事件 $("#putAn").click(function () { var userId = $("#user_id").val(); var testId = $("#test_id").val(); ...原创 2020-03-29 18:52:37 · 481 阅读 · 0 评论 -
【PAT】乙级JAVA实现1009 说反话
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); sca...原创 2019-12-19 13:38:52 · 172 阅读 · 0 评论 -
【PAT】乙级JAVA实现1008 数组元素循环右移问题
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[] line = scanner.nextLine().trim()....原创 2019-12-19 13:35:58 · 242 阅读 · 1 评论 -
【PAT】乙级JAVA实现1006题 换个格式输出整数
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int number = sc.nextInt(); sc.close();...原创 2019-12-19 13:34:20 · 159 阅读 · 0 评论 -
【PAT】乙级JAVA实现,1001-1005题
1001害死人不偿命的(3n+1)猜想卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以...原创 2019-11-09 14:01:21 · 584 阅读 · 0 评论 -
Fortify安全扫描Java Android 代码审计 问题及解决方案整理
Access Control: SecurityManager BypassExplanation使用通过即时调用者的类加载器检查执行任务的 Java API 时应小心谨慎。这些 API 会绕过可确保已向执行链中的所有调用者授予了必需安全权限的 SecurityManager 检查。由于这些 API 可能会削弱系统安全性,因此不应在不可信认的代码上调用它们。在这种情况下:1. 可以通过...原创 2019-10-16 09:39:16 · 7483 阅读 · 0 评论 -
Java实现基于文本分类的情感分析功能
此为原创文章,转载请注明出处https://blog.csdn.net/FRYAN28/article/details/91129584最近有做了一个简单的文本情感分析,使用到hanlp包实现。简介:HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。h...原创 2019-06-07 18:46:12 · 8882 阅读 · 13 评论 -
JAVA实现用户协同算法计算用户喜爱相似度
原创文章,转载请注明出处基于用户的协同过滤算法是指通过分析用户对商品的行为,计算出兴趣相似的用户,并向被推荐用户推荐其兴趣相同的用户感兴趣的商品。土话说大概就是,我跟你看的东西,基本上一样,那就可以判定我们有相似的喜好,那么我浏览的其他的东西,就可以推荐给你我记录用户的浏览行为,并将用户对于每个商品的浏览行为的评分赋值为1.0。浏览1次为1分,多次浏览分值能够累加,通过皮尔逊公式计算用户喜爱...原创 2019-05-23 09:20:52 · 2639 阅读 · 1 评论