![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 77
王德发!
用户id怎么来的,随机给的吗?很容易让人误会的以qq开头
展开
-
Java druid、hikari连接池链接方法配合jdbctemplate使用,trino链接池方法
找了很久的接入各种类型数据库(es、hive、mysql、clickhouse、……)的方案,最后被告知trino。还没让做的时候就在思考怎么连上trino进行配置啥的,然后就简单写了个测试类,如下:想着代码随时删,网上使用连接池链接trino的例子也很少有人分享,为了让有需要者快速复制开发,就贴出来:还有两个热门连接池的手动代码创建的代码。...原创 2022-06-10 09:51:24 · 1981 阅读 · 0 评论 -
java apache csv 读取
csv文件的读取1、依赖这里用的Apache的<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.9.0</version></dependency>额,就不多解释了,很简单,也往代码里都补充了注释,小工具,给没用过的同学quicks原创 2022-04-25 18:08:40 · 886 阅读 · 0 评论 -
kafka学习分享(浅尝版)
kafka学习分享(浅尝版)初识kafka推荐:https://www.cnblogs.com/bainianminguo/p/12247158.html目录:1、消费和生产一些常用参数和情况2、rebalance机制3、高性能的原因4、消息丢失场景及方案5、注意一、KafkaConsumer KafkaProducer demoProperties props = new Properties();//逗号分隔,可以不指定全props.put("bootstrap.servers",原创 2022-03-18 19:50:17 · 2842 阅读 · 0 评论 -
Java线程池
学习笔记:线程池4种创建方式,7大参数,默认拒绝策略,使用队列,ThreadPoolTaskExecutor使用等等原创 2022-01-23 18:42:16 · 859 阅读 · 3 评论 -
svg文件转标签形式(字符串)。MultipartFile转File
svg转string 直接存库。原创 2022-01-23 15:08:46 · 2217 阅读 · 2 评论 -
EasyExcel第三弹 + hutool-poi 配合使用导出较复杂Excel.xlsx + 计算增长率、同比环比、比重等
一、回顾继上次“动态表头easyExcel导入导出(https://blog.csdn.net/qq_37337660/article/details/114680512)”,和上上次“动态表头导入(https://blog.csdn.net/qq_37337660/article/details/110288393)”之后。我们迎来了第三波easyExcel的折磨,这次导出复杂的Excel,顺便用了hutool里面的Excel功能。(超链接链接到的是官网)1.第一步是设计模板,利用模板导出一份新的原创 2021-11-05 11:51:11 · 2007 阅读 · 5 评论 -
MyBatis二级缓存+spring cache @Cacheable、@CacheConfig
一、MyBatis二级缓存1、什么是缓存缓存就是内存中的一个对象,用于对数据库查询结果的保存,用于减少与数据库的交互次数从而降低数据库的压力,进而提高响应速度。2、什么是MyBatis中的缓存MyBatis 在执行一次SQL查询或者SQL更新之后,这条SQL语句并不会消失,而是被MyBatis 缓存起来,当再次执行相同SQL语句的时候,就会直接从缓存中进行提取,而不是再次执行SQL命令。MyBatis中的缓存分为一级缓存和二级缓存,一级缓存又被称为 SqlSession 级别的缓存,二级缓存又被原创 2021-09-27 00:00:43 · 1785 阅读 · 0 评论 -
springboot-动态表头easyExcel导入导出,2.2.7版本。自定义converter处理日期类型。+其他记录(Date日期处理、SQL写法等)=20210207~
一、动态表头easyExcel导出。上次用easyExcel做了个动态表头导入(https://blog.csdn.net/qq_37337660/article/details/110288393),不过,当时用的版本过低,并且也没有详细说明,这次整了个easyExcel动态表头的导出。固定表头的有实体类,可以用注解,比较简单(下面参考罗列一些我觉得有用的处理办法),因为业务需要所以整动态表头(表头名称和数目都不固定)。官网:https://www.yuque.com/easyexcel 有问题可以原创 2021-03-11 22:32:01 · 4596 阅读 · 6 评论 -
mysql 添加索引+Springboot+shiro导致session污染+PowerMock+@InjectMocks,@Mock+其他= 202001
一、mysql 添加索引我使用了多列索引来提高查询速度,如图第二条,某个查询语句的条件同时包含这个三个字段,比如select 1 from xxx where type = 1 and tag_set_id = 12 and tag_id = 888 limit 1,但是这个表记录又特别多,查询起来特别慢,所以加多列索引:(因为该sql是判断是否被使用,加一个limit 1 就是为了查到一个就返回,不用继续下去了)优点1、大大加快数据的检索速度;2、创建唯一性索引,保证数据库表中每一行数据的唯一原创 2021-03-07 14:37:10 · 320 阅读 · 0 评论 -
单元测试—shiro登录校验+私有方法测试+Object转List,比较List是否完全相等+无限试用Navicat12+其他 = ~-2020/1/16
一、单元测试时对shiro用指定用户登录校验springboot+shiro 。在写单元测试的时候,有些方法里面会调用Subject subject = SecurityUtils.getSubject()来获取当前用户。我这边的做法如下,先登录一个用户,然后在测试的时候获取的就是刚刚指定的用户:@SpringBootTestclass CommonMethodTest { private final DataServiceImpl dataService = new DataServic原创 2021-01-16 21:53:25 · 302 阅读 · 2 评论 -
错误记录(一)20210111+20210116补充
一、org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope这个错误是我在写测试的时候出现的,写的是@Transactional(rollbackFor = Exception.class)+TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();用的手动回原创 2021-01-09 19:16:14 · 2119 阅读 · 4 评论 -
java获取时间+事务+mybatis批量更新+前后端传值换行符问题=2020/12/14~12/18
一、java 获取时间的办法java.util.Date;java.text.DateFormat(抽象类);java.text.SimpleDateFormat (DateFormat的直接子类);java.util.Calendar(抽象类)。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代。Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。另外:获取时间的话原创 2020-12-27 17:25:10 · 360 阅读 · 0 评论 -
shiro问题+重定向问题+文件导出乱码问题+@requestBody+其他(java格式化json参考、mybatis返回map结果集)=2020/11/30~12/11
一、shiro问题在ShiroFilterFactoryBean里添加shiro内置过滤器(通常是这样)://常用的过滤器: //anon:无需认证(登陆)可以访问 //authc:必须认证才可以访问 //user:如果使用rememberMe的功能可以直接访问 //perms:该资源必须得到资源权限才可以访问 //role:该资源必须得到角色权限才可以访问Map<String,String> filterMap = new LinkedHashMap<String,Str原创 2020-12-27 16:59:35 · 456 阅读 · 0 评论 -
ArrayList和List<String>+字符串是否“都为数字”“包含数字”“截取数字”+count()+mockito+easyExcel简单使用+其他记录=11/23~27
一、ArrayList list = new ArrayList() 和List list = new ArrayList() 的区别??第一种形式用当前类作为引用类型,bai那么可以访问到ArrayList这个类中的所有公用方法。第二种形式,用ArrayList实现的接口List作为引用类型,那么通过list引用可以访问到接口中定义的方法。也就是说ArrayList这个类实现了List接口,除了要必须实现接口List中声明的方法外,还可以实现额外的一些方法。但是,第二种形式就无法调用的List接口以外的原创 2020-11-29 19:14:22 · 1113 阅读 · 2 评论 -
mybatis动态查询(分页排序搜索)+分解关联查询+Logback 日志配置(打印sql到控制台)+mybatis新增记录后返回自增的id。批量=11/2~11/20
一、mybatis动态查询(分页排序搜索)mybatis框架分页实现,有几种方式,最简单的就是利用原生的sql关键字limit来实现,还有一种就是利用interceptor来拼接sql,实现和limit一样的功能,再一个就是利用PageHelper来实现。因为我是使用的limit实现,有分页,排序,搜索功能,这里记录一下://Mapper.xml<select id="findXxx" resultType="com.Xxx"> SELECT *原创 2020-11-29 19:13:17 · 441 阅读 · 0 评论 -
Integer值NULL转json变成0+@Configuration,@Bean+通过Request请求获取IP地址+MySQL中的substr()函数+其他记录=10/26-10/30
一、Integer值NULL转json变成01)场景:有时候返回给前端数据的时候,有的Integer值是允许为空的,那么我就设置为null返回。但是用postman测试出来收到的数据却显示Integer值为0。(但往往前端需要的是null值,如果用该Integer值作为id参数再传回后端时候是0,那用id=0去查数据库很可能会报错)2)问题出错点:打断点一步一步走下来发现,该值确实一直都是null。但是到转换json格式返回过后就成了0。那问题就出在json转换这里。3)解决办法:1、加代码://原创 2020-11-01 09:34:02 · 2411 阅读 · 6 评论 -
@Transactional报错+正则表达式+全局级别异常处理器@ControllerAdvice+@ExceptionHandler+树形结构递归查子节点+其他记录=10/19-10/23
一、Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException:粗心错误:调用JPA进行更新操作报错;原因:没有使用事务解决方案:方法上增加@Transactional@Transactional 注解用于提交事务,若没有带上这句,会报事务异常提示。注意:更新删除操作都要加上@Modifying,@Transactional。有时候不加还会报其他错误。参考原创 2020-10-25 19:40:28 · 534 阅读 · 0 评论 -
参数验证@Validated、@Valid+jpa模糊查询+shiro+写代码分析需求的思路转变=10/9~10/16
一、参数验证(@Validated、@Valid)参数合法性校验:利用注解代替if判断,主要使用两种方法:接受参数的实体类中加@NotNull(message = “xx不能为空!”);方法参数前面加@Valid。service或controller层入口加@Validated;方法参数上加@NotNull(message = “xx不能为空!”),注意不能加@RequestParam注解,不然参数没有传的情况下无法判断,因为该注解会去找是不是有参数,找不到就报错。除了@NotNull,@NotE原创 2020-10-25 18:24:58 · 391 阅读 · 0 评论 -
Boolean和boolean+java随机生成8位数字+单元测试中参数的设置(注解)+idea 插件google-java-format+@NotNull @NotBlank=9/21~9/30
一、Boolean和boolean1)基本:boolean是基本数据类型,而Boolean是他对应的包装类,自jdk1.5.0以上版本后,Boolean在”赋值”和判断上和boolean一样,但是从列表或者哈希表获取值时会用到Boolean。boolean t = false;Map map = new HashMap();map.put("t", t);Boolean t1 = (Boolean) map.get(t); //前面只能用Boolean强制转换,不能使用boolean.2)原创 2020-10-24 18:22:21 · 321 阅读 · 0 评论 -
spring中的懒加载与事务+StringBuilder+规则引擎drools+RPC+etcd=2020/9/7~9/18(待补充)
一、spring中的懒加载与事务问题出在为了在使用jpa的时候为了避免ifPresent判断。自己把jpa的find方法改成了get方法。就会出现no session报错。原因和办法:1.getOne和findOne都是springdata提供的根据id查找单个实体的方法,区别是前者是懒加载,后者是立即加载。我们使用getOne来进行懒加载的实验,就不用大费周章去写懒加载属性,设置多个实体类了。2.因为spring的session是和线程绑定的,在整个model->dao->servic原创 2020-09-20 21:39:39 · 286 阅读 · 0 评论 -
cannot resolve symbol问题+@Transactional+list和数组转换注意+mysql替换某个字段中某个字符-8/25~9/4
一、cannot resolve symbol问题有时候pull代码之后有些类或者某一个controller和service层之间突然就没关联了。代码爆红但是不影响编译运行。具体原因暂不清楚,每次都通过清除缓存解决。不知道是不是电脑内存太小啥的。( 点击菜单中的 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache 并且重启。)还有其他情况的cannot resolve symbol参原创 2020-09-06 18:10:00 · 2766 阅读 · 0 评论 -
Sort排序+字符串处理,转list,转数组去重+No value present+MySQL中的数据类型+时间戳转日期格式+JSONArray 遍历方式+端口占用8/10-8/21
一、JPA实现Sort排序我是利用sort.by()return ruleArrangeRepository.findAll(specification, Sort.by(Sort.Direction.ASC, "createTime")) .stream() .filter(r -> r.getDataSourceId() == request.getOtherParams().getInteger(原创 2020-08-23 17:10:10 · 414 阅读 · 0 评论 -
匿名内部类+泛型通配符+map遍历+特殊字符转义+atomicInteger+json对象和map+Function.identity()+ConcurrentHashMap-8/3~8/7
一、匿名内部类匿名内部类可以使你的代码更加简洁,你可以在定义一个类的同时对其进行实例化。它与局部类很相似,不同的是它没有类名,如果某个局部类你只需要用一次,那么你就可以使用匿名内部类。入门理解参考:https://www.jianshu.com/p/0950c6787c7d另参考:https://www.cnblogs.com/wuhenzhidu/p/anonymous.html二、泛型通配符extends与super的区别java泛型中的关键字1、? 表示通配符类型2、<? ext原创 2020-08-09 16:34:19 · 419 阅读 · 1 评论 -
JSON转换+HTTPServletResponse+文件大小计算+Specifications动态查询+Stream+lambda+IDEA断点调试7/20-7/31
FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换https://blog.csdn.net/a18827547638/article/details/80777366原创 2020-08-02 16:03:40 · 966 阅读 · 0 评论 -
““和null+懒加载+自定义异常+lambda表达式+serizlizable接口(7/13~7/17)
一、空字符串和NULL值问题使用NULL可以区分“没有输入数据”和“输入空数据”, 差异在于:NULL的长度就是NULL,空字符串的长度为0一串NULL数据比空字符串优先排序COUNT(message)会将空字符串计数进去,但是不会将NULL数据们计入可以使用绑定变量搜索某个空字符串,但是不可以这样搜索NULL,例如:SELECT *FROM mytableWHERE mytext = ?mytext永远不可能匹配NULL值,无论你从客户端如何传值。匹配NULL的方法只能这样查询:SE原创 2020-07-19 13:52:12 · 235 阅读 · 0 评论 -
stream().map()+.getClass().getDeclaredField(field)+Field.set()+setAccessible(true)+Jpa+Pageable+data
一、jdk8的特性stream().map()public class TestJava8 { public static void main(String[] args) { List<String> alpha = Arrays.asList("a", "b", "c", "d"); //Before Java8 List<String> alphaUpper = new ArrayList<>()原创 2020-07-09 18:11:49 · 505 阅读 · 0 评论 -
session和model问题导致登录无法正常退出
session和model问题导致登录无法正常退出session和model问题导致登录无法正常退出问题用ssm+maven+jsp+eclipse做了一个登录注册功能,本来是没问题的,但是我又做了一个‘暂不登录’按钮,就……。当点击退出之后,发现没有退出。这里主要讲一下登录问题。少逼逼,看代码。下面是controller中的登录和退出功能。1、注意看在第2行我用了一个@SessionA...原创 2020-04-18 19:49:59 · 441 阅读 · 0 评论