
java
文章平均质量分 55
小吴先生666
这个作者很懒,什么都没留下…
展开
-
Java使用策略模式代替多个if else,避免代码糅合在一起,降低维护成本和提高阅读观赏性,遵循代码解耦思想
Java使用策略模式代替多个if else,避免代码糅合在一起,降低维护成本和提高阅读观赏性,遵循代码解耦思想原创 2025-01-21 15:32:36 · 862 阅读 · 0 评论 -
com.alibaba.fastjson.JSONObject 和JSONArray转实体
JSONArray转实体List<PeakValley> list = JSONObject.parseArray(data.getString("peakValleyList"), PeakValley.class);JSONObject转实体ZqSiteChargerOrder order = JSONObject.parseObject(data.toJSONString(), ZqSiteChargerOrder.class);原创 2021-09-27 11:02:27 · 727 阅读 · 0 评论 -
docker-compose 安装redis主从 (多服务器)
docker和docker-compose安装请点击准备两台服务器192.168.0.11(主) 192.168.0.12(从)192.168.0.11(主)安装redisversion: '3.7'services: master: image: redis container_name: redis-master restart: always command: redis-server --port 6379 --requi...原创 2021-03-31 12:47:34 · 760 阅读 · 0 评论 -
java代码连接数据库实例
写一个加载驱动的公共方法DBUtilpackage com.zq.framework.config.properties;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import org.springframework.context.annotation.Configuration;@Configurat原创 2020-12-22 09:38:09 · 490 阅读 · 2 评论 -
一个合格的程序员,要学会代码重构
前几天看了一下别人实习生写的代码,有了大量的if/else,虽然if/else可以帮助我们很方便的写出流程控制代码,也便于阅读,但是有时候的过多的if/else看起来确实不舒服,话不多说,先把代码贴出来:public BaseData updateBaseData(List<DataParams> params) { BaseData data = new BaseData(); for (DataParams dataParams : params) { if (data原创 2020-12-21 13:11:57 · 518 阅读 · 0 评论 -
微信小程序支付流程
WxPayControllerpackage com.example.demo.com.example.wxPay.controller;import java.math.BigDecimal;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.validation.Valid;import org.slf4j.Logger;i原创 2020-12-18 10:20:30 · 963 阅读 · 1 评论 -
docker-compose 安装redis
1、创建docker-compose.ymlvim docker-compose.ymlversion: '2'services: redis: image: redis:5.0.0 container_name: redis command: redis-server --requirepass 123456 ports: - "16379:6379" volumes: - ./..原创 2020-11-18 09:59:20 · 2099 阅读 · 1 评论 -
docker-compose 安装mysql
第一步:首先安装docker 和docker-compose安装步骤见我另一篇文章https://blog.youkuaiyun.com/qq_37557563/article/details/109747026第二步:在root目录下面建立docker-compose-service/mysql文件夹 docker-compose-service文件是我以后存放所有安装的容器地址新建一个docker-compose.yml文件夹version: '3'service...原创 2020-11-18 09:53:48 · 4894 阅读 · 2 评论 -
java的幂等性处理
探讨一下实现幂等性的几种方式什么是幂等性?对于同一笔业务操作,不管调用多少次,得到的结果都是一样的。幂等性设计我们以对接支付宝充值为例,来分析支付回调接口如何设计?如果我们系统中对接过支付宝充值功能的,我们需要给支付宝提供一个回调接口,支付宝回调信息中会携带(out_trade_no【商户订单号】,trade_no【支付宝交易号】),trade_no在支付宝中是唯一的,out_trade_no在商户系统中是唯一的。回调接口实现有以下实现方式。方式1(普通方式)过程如下:1转载 2020-08-22 14:38:09 · 1245 阅读 · 0 评论 -
Java四种线程池创建
我看到过有人开启线程池是这样的newThread(newRunnable() {@Overridepublicvoidrun() {}}).start();这样开启线程是没有问题的,但是有弊端a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c. 缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线程池的好处在于:a. 重用存在...原创 2020-08-10 15:09:54 · 1830 阅读 · 1 评论 -
java 后端防止前端重复提交数据
//自定义一个防止重复提交的注解package com.mingwen.common.SubmitMore;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target原创 2020-07-17 10:36:21 · 2227 阅读 · 2 评论 -
java创建线程的三种方式
/** * 同步孔夫子店内在售商品 * * @param shopNum * @return * @throws java.text.ParseException */ @RequestMapping("/getKFZShopGoods") @ResponseBody public Map<String, Object> getKFZShopGoods(String shopNum) throws java.te...原创 2020-07-08 16:04:39 · 1818 阅读 · 1 评论 -
mybatis里面动态传参${} 和#{}的区别
他们的区别一句话概括:#{name}对数据 加上 双引号,${name}直接显示数据。1、#{name}把传入的参数视为字符串,会预编译,例子:select * from a where name= #{name} 入参name=哈哈其实相当于select * from a where name="哈哈",2、${name} 不会进行预编译,例子:select * from a where name= #{name},入参name=哈哈,其实相当于s...原创 2020-07-06 17:31:09 · 2622 阅读 · 1 评论 -
读取本地图片上次图片服务器
import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import org.springframework.web.multipart.MultipartFile;public static void原创 2020-06-16 10:48:40 · 1863 阅读 · 1 评论 -
Java 生成在线二维码 以Base64返回前端
依赖的jar包主要是Google 的zxing 进行二维码的生成<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <原创 2020-06-04 18:03:36 · 3857 阅读 · 0 评论 -
Spring Boot(一):入门篇
构建微服务:Spring boot 入门篇什么是Spring BootSpring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的...转载 2020-06-02 13:08:36 · 210 阅读 · 0 评论 -
mybatis 一对多collection结合PageHelper分页
PageHelper分页组件public class PageParam { /** * 当前页数(初始页面不用传) */ private Integer pageNum; /** * 分页显示数目(初始页面不用传) */ private Integer pageSize;}/** * 设置请求分页数据 */ protected void startPage(PageParam page)...原创 2020-05-15 14:59:16 · 3762 阅读 · 0 评论 -
在linux上安装jdk并配置环境变量的两种方法
、下载jdk文件我这提供的是官方的地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。如果你已经下载好了之后就可以跳过这步将这个文件随便放在linux的什么目录都可以。二、解压jdk压缩包先用cd命令进入你放压缩包的文件夹然后执行下面的解压命令解压命令:...原创 2019-11-20 12:50:42 · 2159 阅读 · 0 评论 -
mysql的触发器
什么是触发器简单的说,就是一张表发生了某件事(插入、删除、更新操作),然后自动触发了预先编写好的若干条SQL语句的执行;特点及作用特点:触发事件的操作和触发器里的SQL语句是一个事务操作,具有原子性,要么全部执行,要么都不执行;作用:保证数据的完整性,起到约束的作用;需求:有一个课程表 学生可以报名,每报名一次生成一个订单记录,课程的剩余报名数量-1,用程序写很简...原创 2019-11-19 14:47:18 · 1767 阅读 · 0 评论 -
java根据id批量修改/删除
前台function update() {var arr = $("input[name='id']");var Arr = [];for (var i = 0; i < arr.length; i++) {//将需要批量修改的id放到一个数组里面去传到后台if (arr[i].checked == true) {Arr.push(arr[i].value)}}var...原创 2019-01-21 14:43:27 · 9509 阅读 · 2 评论 -
String、StringBuffer、StringBuilder的区别
java操作字符串的类有:String、StringBuffer、StringBuilder。String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以...原创 2019-05-05 09:53:46 · 2092 阅读 · 0 评论 -
== 和 equals 的区别是什么?
== 解读对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同;代码示例:public class mainTest { public static void main(String[] args) { String a="我是java"; String b="我是java"; String ...原创 2019-05-05 09:48:36 · 1813 阅读 · 0 评论 -
JAVA高性能高并发解决思路
1、代码质量,不要性能低下的sql和代码。有的一条sql搞定的事,有人用了多个循环才能搞定。取决于程序员的经验!2、项目前期的规划,由于java历史多用于企业开发,导致好多团队至今依然思想僵化。其实并发最高的是互联网,他们有很多非常好的实践经验和架构是可以直接照搬过来用的。tomcat的并发取决于每个请求执行的占用时常,如果一个请求耗时1秒,那按tomcat开启的线程数默认就几十个。江湖谣传to...转载 2019-04-29 15:10:18 · 644 阅读 · 0 评论 -
java定时器TimeTask的使用
链接:https://pan.baidu.com/s/1mxFsh-PiiEfnEd3P9PPLLw提取码:4bwp一秒一次将sys_user里面的is_del修改为1UserService里面是自己业务代码逻辑红色部分相当于bean的注入时会去dao层寻找操作数据库的方法修改如果携带条件查询,就把条件携带拼...原创 2019-04-19 19:11:59 · 3121 阅读 · 0 评论 -
圆通面单下单接口
package com.mingwen.common.utils;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingExc...原创 2019-04-24 09:52:21 · 2633 阅读 · 0 评论 -
java导出单列excel功能
页面jsp //点击按钮导出跳到controller层$('.daochu').click(function(){ var index = layer.load(0, {time: 5000}); window.location = "/addproduct/export;})controller @Auto...原创 2019-01-21 14:54:17 · 745 阅读 · 0 评论 -
java打印功能
id="printId" ----给个div一个idonclick="printPage('printId')" ----点击打印触发的按钮事件<script>functionprintPage(myDiv){varnewstr=document.getElementById(myDiv).innerHTML;varoldstr=document.bo...原创 2019-01-21 14:48:08 · 1884 阅读 · 0 评论 -
java导入excel表将表数据合并成string类型
前端:<li class="btn_uploads"><input type="file" id="wjsc" onchange='importf()'><i class="Hui-iconfont"></i> 导入</li>js://导入function importf() ...原创 2019-05-22 09:25:25 · 2527 阅读 · 0 评论 -
mybatis如何成功插入后获取自增长的id
controllerservice:xml<insert id="insertUser" keyProperty="id" useGeneratedKeys="true" parameterType="SysUser"> insert into sys_user(name,user_name,phone,pwd,...原创 2019-05-22 13:17:03 · 3788 阅读 · 2 评论 -
事务回滚
需求在service层的某个方法中,在执行完一个对数据库的写方法后,抛出异常,再执行另一个对数据库的写方法,为什么不会滚呢??是对Spring的事务机制就不明白。!! 默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。 spring aop异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才...转载 2019-07-10 08:50:50 · 158 阅读 · 0 评论 -
PDF电子发票解析免费版
package cn.test;import com.alibaba.fastjson.JSONObject;import pdf.cn.pdf.parse.PDFReaderUtil;/*** @author 吴顺杰* 2019年7月30日*/public class TestA { public static void main(String[] ar...原创 2019-09-06 11:04:18 · 22868 阅读 · 30 评论 -
Java多线程学习
此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢? 本文主要讲java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的线程函数用法、概述等。首先让我们来了解下在操作系统中进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,...转载 2019-08-21 10:41:48 · 125 阅读 · 0 评论 -
java遍历Excel文件 并将信息存入数据库
Excel格式:代码:package com.mingwen.imagetest;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.sql.Connec...原创 2019-09-21 12:35:05 · 2203 阅读 · 0 评论 -
分布式事务
前两天发了工资,第一反应是想着要给远方的女朋友一点惊喜!于是打开了平安银行的APP给女朋友转点钱!填写上对方招商银行卡的卡号、开户名,一键转账!搞定!在我点击的那瞬间,就收到了app的账户变动的提醒,并且出现了图一所示的提示界面:“处理中,正在等待对方银行返回结果…”。嗯!毕竟是跨行转账嘛,等个几秒也正常!脑海开始浮现出女朋友收到转账后惊喜与感动的画面! 然而,一切并没有那么顺利...转载 2019-10-11 09:47:02 · 212 阅读 · 1 评论 -
MySQL锁机制——你想知道的都在这了!
一、锁的类型1. 行锁共享锁(S Lock)允许事务读一行数据 排它锁 (X Lock) 允许事务读一行数据2. 表锁(意向锁)锁定允许事务在行级上的锁和表级上的锁同时存在。为了支持在不同粒度上进行加锁操作,InnoDB存储引擎支持一种额外的锁方式意向共享锁(IS Lock)事务想要获得一张表中某几行的共享锁 意向排他锁(IX Lock)事务想要获得一张表中某几行的排他锁...原创 2019-10-11 12:58:25 · 1770 阅读 · 0 评论 -
遍历xlsx文件批量生成二维码
package com.ttcf.test;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.nio.file.Path;import java.text.DecimalFormat;import ja...原创 2019-01-21 14:30:46 · 1025 阅读 · 0 评论