- 博客(7)
- 收藏
- 关注
原创 关于synchronized锁对象的知识
synchronized是java关键字层面上的锁,可是他锁的对象是什么呢?我们一起来看下。 示例: public class A { public static void main(String[] args) { Demo demo1 = new Demo(); new Thread(() -> {demo1.test1();}, "A").start(); new Thread(() -> {demo1.test2();}, "B
2021-04-04 19:03:48 818
原创 java用 poi封装一个excel导出模板工具类
记录封装一个excel导出工具类 因为业务需求需要支持导入导出功能,之前需要导出功能的模块比较少,可以直接调poi包的API接口,现在不行了,好几十个。。。一个一个写估计要通宵,因此写一个统一的导出模板。话不多说上代码!! 业务代码不方便贴出来,用demo演示。 jar包: <!-- poi --> <dependency> <groupId>org.apache.poi</groupId>
2021-03-11 21:48:36 427 2
原创 toString()和new String()区别
今天遇到上游通过消息队列传给我byte字节码,我用toString()方法转字符串接收,发现转了后是 [B@90f6bfd这样的格式,瞬间懵逼,流下没技术的眼泪。 研究一番,发现字节码如果调用toString()方法,其实是调用的Object类的toString方法,返回的是他的[class name]@[hashcode] 这样格式的内存地址 ,这肯定不是我们想要的数据。而通过new String()的话是根据 parameter是一个字节数组,通过虚拟机默认编码格式,将字节数组decoder为对应的
2020-12-28 20:08:29 379
原创 Java文件拷贝的五种方法
最近有个需求需要用到文件拷贝,便研究了一下文件拷贝的几种方式,话不多说直接上代码: 方法一:使用字节流拷贝 public static void copyByByte(String path1, String path2) { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(path1);
2020-12-21 13:22:12 1768
原创 前端传多条数据,以字符串格式接收再转json处理
记录工作: 两张表,一张表的一条数据对应另一张表多条数据的插入, 首先前端接收的单条数据以表单形式接收,另一个多条数据以String类型接收(业务层再转json), @RequestMapping(value = "/save", method = RequestMethod.POST) public ResultData<SmailAssistantEntity> save( @ModelAttribute SmailAssistantEntity SmailA
2020-08-18 17:34:42 786
原创 用递归查树形列表的实现
有一个需求是展示一个树形菜单的功能。之前的都是在mybatis层在<resultMap>里面用<association>关联查询处理,但是如果数据量大的话就有点慢,最近又发现一个递归的思想~~ 这个是测试表结构 dao层就不贴出来啦~ 业务层先查所有 @Override public ResultData<List<Map>> selAll() { ResultData<List<Map>> result =
2020-08-11 14:15:09 442
原创 前端一个字段模糊匹配多个数据库字段
关于模糊匹配多个字段 需求:前端一个输入框要匹配多个数据库字段。 网上找到的方法是: select * from table where 1=1 and is_delete = 0 <if test="keyword !=null "> name like CONCAT('%','#{keyword}','%') OR age like CONCAT('%','#{keyword}','%') </if> 但是这里会有一个问题,就是因为用来or做条件查询导
2020-07-29 17:58:20 1084
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人