
项目实战
matthew_leung
想飞的贪吃java菜鸟
展开
-
[msyql]实战:关于回表的一次查询优化实战
回表和索引覆盖的浅解原理简单说明什么是回表和索引覆盖呢?这里和我们使用的mysql中Innodb 引擎中的索引储存方式,可以理解为你构建了一个索引树(非主键)以后。Innodb会生成一个包含了索引的key + 主键 的节点。每次查找数据的时候如果你直接在索引树上可以命中你需要的所有数据,就会直接返回数据。但是如果你像本次分享的sql一样product_no的索引没有order_no中的数据。所以下一步需要回表。回表其实就是直接使用索引中的主键去再一次查询数据。总结与收获。原创 2022-11-29 22:24:30 · 1144 阅读 · 1 评论 -
mysql jdbc 生成主键 强制--BigInteger
先直接上源码:@Override public java.sql.ResultSet getGeneratedKeys() throws SQLException { synchronized (checkClosed().getConnectionMutex()) { if (!this.retrieveGeneratedKeys) { throw SQLError.createSQLException(Messages原创 2021-04-15 10:00:57 · 418 阅读 · 0 评论 -
利用fastjson快速解析json文件
最近接到一个需求,需要我将一个json文件的数据读取到内存中然后保存在sql中。这里面其实就两个问题,一个是如何将文件中的数据读取出来原创 2021-03-08 08:48:39 · 3392 阅读 · 5 评论 -
git新建本地分支并推送远程
在我们原有分支中新建分支。 git branch name //创建新分支git checkout name //切换新分支--------------------------------git checkout -b name //新建分支并切换 我们可以两种方法二选一。 我们想在远程是没有对应的分支的,我们需要对远程进行推送。 命令:git push origin local_name:remote_name例子:git push origin featur原创 2021-02-24 09:33:46 · 957 阅读 · 0 评论 -
更改deepin系统并配置java开发环境
这几天因为公司的原因,我要进入使用linux的开发环境下。为此我将系统更改为deepin了(主要原因就是因为deepin对window迁移会友好很多,平时一些办公软件会香一点)。下面开始将搭建java8开发环境记录一下。首先我们需要使用将对应的tar包进行下载,因为甲骨文的官网实在是不适合我这种人,所以我使用了一下国内源。安装我们解压文件,并移动位置。tar -zxvf jdk-8u202-linux-x64.tar.gz -C ../local/java/-C是为了定义解压后原创 2021-02-08 11:37:55 · 420 阅读 · 1 评论 -
springboot项目自定义ehcache工具类
首先是项目整合ehcache,详情请看博主另一篇文章。->传送门! 直接上源码。 package com.shengxi.resys.util;import javax.annotation.Resource;import org.springframework.cache.Cache;import org.springframework.cache.CacheManager;/** * @author yan * @version 1.0.0 * @date 2020-08-原创 2020-08-12 00:56:10 · 871 阅读 · 0 评论 -
springboot2.x整合ehcache
整合pom依赖。 <!--缓存模块--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependenc原创 2020-08-12 00:33:47 · 426 阅读 · 0 评论 -
springboot2.x整合mail实现邮件发送(验证码为例)
整合mail依赖。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 然后将自己的邮箱打开客户端服务。 以qq邮箱为例,前往...原创 2020-08-11 11:28:17 · 709 阅读 · 0 评论 -
springboot整合mybatis-plus出现无法找到对应xml问题
今天在springboot整合mybatis项目中替代orm为mybatis-plus。然后突然出错,mybatis无法找到对应mapper。在这里做一下记录。org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.shengxi.mapper.findUserByName at com.baomidou.mybatisplus.core.override.MybatisMapp原创 2020-07-16 23:42:24 · 1585 阅读 · 0 评论 -
springboot2.2.x整合thymeleaf无法引用静态资源
springboot2.x整合thymeleaf的教程请看:传送门。首先看一下我的静态资源路径。我们利用jq作为举例,旧的版本使用的方案是<script type="text/javascript" th:src="@{/js/jquery.js}"></script>如果没有成功,我们参考网上的教程,书写一个配置类。如:package com.shegnxi.krw.config;import org.springframework.contex.原创 2020-06-24 00:53:29 · 832 阅读 · 0 评论 -
springboot2.x整合thymeleaf
注:虽然现在更流行前后端分离,但是个人项目和小型项目开发和外包还是很适合mvc的一个开发模式。而且spring推荐的是thymeleaf,它和shoir、spring-security的整合配合度比较高。所以我们还是使用thymeleaf做为需要使用时的优先选择。 增加依赖 代码: <!-- thymeleaf --><dependency> <groupId>org.springframework.boot</groupId>原创 2020-06-24 00:08:56 · 290 阅读 · 0 评论 -
Maven - error in opening zip file
这几天突然出现一个问题,就是突然maven项目不能添加依赖了。每次添加完项目总是报错:刚开始在百度上找到的答案总是说是因为jar包下载时错误,缺失等原因。只需要删除对应的文件,重新下载即可。但是我重复下载了很多遍,还是不行。最终找到一个奇怪的原因: 原因是因为我的maven配置了Aliyum的仓库中心,然后aliyun maven是一个比较麻烦的东西。之前的配置是...原创 2020-05-01 16:07:41 · 1363 阅读 · 0 评论 -
mybatis获取时间数据出现误差
问题: 利用mybatis获取数据时,出现datetime 和 timestamp都会出现时间误差,特别是在使用获取时间段这个操作的时候,会出现时间段误差。解决方案: 因为所有的数据库都不是使用中国时区的,所以我们只需要改数据库的时区到中国。这样我们就能避免插入时出现的时间问题。set global time_zone = '+8:00';set time_z...原创 2020-04-18 19:51:48 · 1736 阅读 · 0 评论 -
mybatis插入操作返回自增id,及问题解决方案
useGeneratedKeys的使用: mybatis可以利用useGeneratedKeys参数结合id等进行插入时的数据返回。 使用注解方案: @Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id") @Insert("") int insertIma...原创 2020-04-04 23:42:55 · 729 阅读 · 0 评论 -
mysql利用一张表对另一张表进行统计(一对一count),及优化思考
这次我遇到的项目中有这样一个数据库设计,下图是日记表和收藏表。然后需要利用日记表对收藏表中对应的收藏进行count。第一次写出来的sql如下:SELECT food_diary.*, ( SELECT count( collect.diary_id ) FROM collect WHERE food_diary.id = collect.diary_id ) AS count...原创 2020-03-21 13:19:45 · 4940 阅读 · 0 评论 -
tp5使用本地第三方库(extend)
今天要写一个tp5的项目,然后要引用腾讯的cos API, 本来人生应该是使用Composer的安装方式的,但是github的下载速度实在是感人。科学上网也没有办法友好学习了。最后选择使用直接下载cos的源码导入到项目的extend目录下,然后进行导入。划重点:就是这个导入操作能让你失去对搬砖的兴趣。官方文档的说法是:require '/path/to/sdk/vendor/auto...原创 2020-03-20 01:11:39 · 671 阅读 · 0 评论 -
springboot2.0.5启动报错Failed to bind properties under 'spring.servlet.multipart.max-file-size'
之前2.0.4使用的yml配置方式是这样的。servlet: multipart: max-file-size: 2048Mb max-request-size: 2048Mb然后现在升级版本为2.0.5时,出现报错如下:E:\Java\jdk\bin\java.exe -agentlib:jdwp=transport=dt_socket,addre...原创 2020-03-14 12:40:45 · 3787 阅读 · 1 评论 -
express操作mysql实现插入并返回对应的id
在开发过程过中我们经常会出现需要插入一条数据然后利用其id进行二次操作的。这个过程中使用对一条sql去实现数据获取。这个情况下,首先要考虑的是我们没有对应的id如何识别数据库中的哪条数据才是我们所需的数据将是一大难题。再者就是如果使用多一条sql是否是在浪费我们的资源和耗时呢。为此,专门看了一下express中mysql模块中的一些代码定义。function OkPacket(opt...原创 2020-03-13 19:35:09 · 1596 阅读 · 0 评论 -
java实现读取图片exif数据(如拍摄时间,经纬度等)
我们需要添加一个依赖 <!-- https://mvnrepository.com/artifact/com.drewnoakes/metadata-extractor --> <dependency> <groupId>com.drewnoakes</groupId> <a...原创 2020-02-25 22:06:15 · 4074 阅读 · 0 评论 -
springboot整合swagger2访问swagger-ui.html出现404解决方案
直接上pom需要的依赖<dependency><!--添加Swagger依赖 --> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <ve...原创 2020-02-18 20:45:14 · 5239 阅读 · 0 评论 -
springboot项目利用spring-boot-maven-plugin打包不使用自定义配置问题
如果我们使用spring-boot-maven-plugin进行打包时,会出现以下报错:E:\Java\jdk\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -...原创 2020-01-27 11:00:35 · 4344 阅读 · 0 评论 -
spring AOP+注解方式实现登录验证(session+cookies)
学习总是在不断继续的,这次我将实现一个基于aop的的一个注解操作。首先加依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></depen...原创 2019-12-01 01:00:19 · 1446 阅读 · 0 评论 -
centos7部署svn服务器并开启多个仓库(统一配置)
首先,下载subversion。yum install subversion我们可以查看一下svn服务的版本。 svnserve --version然后可以准备一个位置进行保存svn项目,并做统一化管理。[root@VM_0_7_centos /]# mkdir application[root@VM_0_7_centos /]# mkdir /applica...原创 2019-11-07 21:45:47 · 1230 阅读 · 0 评论 -
centos7配置tomcat开机自启动
因为我使用tomcat的做事是为了启动solr,所以我就配置了tomcat开机自启动。首先我们要写一个service。vim /etc/systemd/system/tomcat.service[Unit]Description=Tomcat9027After=syslog.target network.target remote-fs.target nss-lookup.ta...原创 2019-10-13 17:45:24 · 345 阅读 · 0 评论 -
服务器centos7伪分布部署hadoop3.1.2
为了毕业,我使用一台腾讯云的服务器部署hadoop进行开发。系统:CentOS Linux release 7.7.1908 (Core)hadoop版本:hadoop-3.1.2.tar.gz1、首先,我们必须要有java环境,java版本1.8(向上兼容到了j10)。同时要将java配置进环境变量中[root@shengxi ~]# java -versionopenjdk...原创 2019-10-13 15:55:52 · 1763 阅读 · 0 评论 -
atom配置vue运行环境
在setting中查找插件“atom-terminal”因为我们编写vue代码需要写很多对应的js代码,所以可以安装一个 插件使编辑器对vue代码实现高亮提示。最后按照提示运行项目即可。...原创 2019-06-22 01:08:20 · 3221 阅读 · 0 评论 -
layer-table + thymeleaf初始化渲染出错
因为thymeleaf在js中的渲染格式有一种[[${value}]],所以layer-table中的表格渲染就会有一个问题。就是layer的格式table.render({ elem: '#demo' ,height: 312 ,url: '/demo/table/user/' //数据接口 ,page: true //开启分页 ,cols: [...原创 2019-05-09 20:41:09 · 472 阅读 · 0 评论 -
默认配置mybatis持久层生成器
better-mybatis-generator idea plugin插件功能:在idea的database工具中使用,选择表(一或n,建议n小于10),生成mybatis相关的代码,(包括:dao、example、domain、xml)。Use in idea database tool,right click table(one or more) to generate mybatis...原创 2019-04-12 15:21:43 · 259 阅读 · 0 评论 -
阿里云Ubuntu16.04安装并配置redis
使用命令行更新所有的软件包sudo apt-get update执行安装命令sudo apt-get install redis-server选择Y接下来会执行完成,我们可以看到包括redis的版本信息等,执行service redis status 可以查看redis服务的状态为running,说明安装完成系统自动启动了服务现在开始配...原创 2019-04-04 11:14:08 · 808 阅读 · 1 评论 -
thinkphp完成登录检测
在访问项目管理后台和一些功能的时候我们必须进行进行登录检测,判断当前登录的用户是否拥有对应的权限配置。方法上最最合情合理的就是定义一个basecontroller继承系统的Controller类,同时进行对应的权限校验。然后所有的controller都继承我定义的controller。这样定义一个类,完成对登录的状态校验。在controller继承Base。这样所有的页面都是页...原创 2019-02-20 10:04:51 · 570 阅读 · 0 评论 -
调用腾讯云实现人脸五官检测
注册腾讯云帐号,获得api密匙 然后通过密匙获取签名验证,注意:人脸识别接口的调用必须要有签名,同时,签名就必须要购买服务。然后下载对应的sdk实现调用接口。我使用的是java的包。package com.qcloud.image.demo;import com.qcloud.image.ImageClient;import com.qcloud.image.ex...原创 2019-01-18 14:58:05 · 2241 阅读 · 2 评论 -
json基础和json数据前后台对接
json知识基础json中对象数据通过"{ }"来标识,一个{}代表一个对象。如{"name": "matthew"}。json数据使用“[]”,标识数组。一般的json数据就是一个json数组。如:json = ["name": "matthew", "age": "18"]。json数组和对象间可以互相嵌套。json数据还有json字符串。使用单引号原创 2018-12-29 17:05:59 · 1188 阅读 · 0 评论 -
vs-code配置前端运行环境
vscode 使用终端运行语句 npm install http-server -g可以在vscode终端运行所有node服务。-g代表全局。然后直接使用http-server就可以运行项目了 。这样一来也可以直接关闭项目。十分便捷。如果想更块的话,就直接写一个任务使用快捷键运行此命令即可。...原创 2019-06-22 12:36:50 · 2740 阅读 · 0 评论 -
springboot使用多配置文件(yml)
为了开发和上线发方便性,我们在项目配置上会有所不同。最普遍的就是端口号,数据库等配置的不一致。springboot默认的yml配置文件是application.yml。但是开发的时候可以使用一个yml,上线使用另外一个yml。本人使用application.yml作为通用配置,使用application-dev.yml作为开发环境配置。application-prod.yml作为上线部署配置。...原创 2019-07-08 22:24:29 · 4048 阅读 · 0 评论 -
springboot2.0 + token登录状态拦截器
springboot2.0我们可以继承接口HandlerInterceptor编写拦截器,实现对登录状态失效的用户进行操作拦截。import com.shengxi.rs.common.util.StringUtils;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletR...原创 2019-06-27 19:06:23 · 3598 阅读 · 1 评论 -
Ubuntu查看和修改redis密码
首先安装 可以直接 使用命令sudo pip install redissudo apt-get install redis-serverredis-server 启动redis-cli 客户端修改密码config set requirepass '1234' //1234为新密码config get requirepass //获取当前密码常用管理命...原创 2019-07-10 17:07:46 · 3384 阅读 · 0 评论 -
thymeleaf+springsecurity使用
在项目上使用springsecurity进行用户权限分配后使用springsecurity标签进行用户在线信息的获取和按钮权限。首先是增加依赖。这里有一个重点就是:thymeleaf依赖和thymeleaf-springsecurity的依赖版本要一致,不然会出现security标签无效的情况。不清楚自己的thymeleaf依赖版本的可以直径Ctrl+点击thymeleaf的arti...原创 2019-07-10 18:29:04 · 1507 阅读 · 0 评论 -
mysql创建用户、权限
登录mysql -u root -p然后使用mysql databaseuse mysql然后创建一个用户create user 'userName'@'host' identified by 'password';如果用户仅仅是在本地使用的,可以写host为localhost,如果是指定的ip访问,就写对应的ip。如果是外网公开访问,就是'%';赋予权限...原创 2019-08-07 19:11:39 · 145 阅读 · 0 评论 -
springboot利用druid加密数据库配置文件
废话不多说,直接上。避免裸奔最简单的方法。给数据库配置加密的方式有使用ulisesbocchio进行加密的。但是我认为正常情况下,我们会使用druid连接池,直接使用druid进行加密就好了。避免增加依赖也是一个程序员该有的觉悟。依赖:<!-- druid数据源驱动 --> <dependency> <groupI...原创 2019-08-16 13:00:30 · 2287 阅读 · 4 评论 -
centos7 服务器安装neo4j并实现远程访问
虽然可以配置yum进行安装,但是本人经过痛苦的经历,还是赞成压缩包安装方案。这样他的文件在统一路径下,避免conf等文件和主要文件分离。下载后用自己的ftp上传压缩包。然后用命令解压tar -xf neo4j-community-3.5.11-unix.tar.gz可以将解压后的文件放去自己喜欢的文件夹路径中,我因为学习习惯,所以放在了usr/local/下。 mv neo...原创 2019-10-01 13:02:33 · 1673 阅读 · 0 评论