灵豸
这个作者很懒,什么都没留下…
展开
-
Elasticsearch Java 客户端演进历史和选型指南
Elasticsearch Java 客户端演进历史和选型指南原创 2023-02-02 09:45:18 · 552 阅读 · 0 评论 -
mysql的连接数空闲时间设置
具体的wait_timeout的空闲时间设置,参考占用连接的sleep的time进行设置,不能太大也不能太小。原创 2022-11-15 13:37:41 · 957 阅读 · 0 评论 -
mysql语句实现saveorupdate操作
insert into revenue_statement(company_id, billing_year,billing_month,recharge_amount,settlement_amount,create_id,create_time,update_id,update_time) values ('197', '2021','202103',null,'1','5','2022-05-09 14:50:37','5','2022-05-09 14:50:37')on duplic原创 2022-05-10 10:40:32 · 1053 阅读 · 0 评论 -
mysql去重的几种方式
1. distinctselect distinct 列名 from 表名2. row_numberselect *, row_number() over (partition by 想去重的列名 order by 列名) as row_numfrom 表名where row_num = 13.group byselect 列名 from 表名 group by 列名重复量多时,GROUP BY总的处理效率比DISTINCT高,重复量低时,DISTINCT就比GROUP BY快一原创 2022-05-06 16:57:24 · 5540 阅读 · 0 评论 -
list的多条件排序与list对象去重、对象属性去重
重写equals和hashcode方法。原创 2022-05-06 11:08:31 · 1810 阅读 · 0 评论 -
java文件上传解析
单个文件上传(直接获取MultipartFile的文件,这个fromdata的文件的key必须是excel)@PostMapping("implExcel") private BaseDto implExcel(MultipartFile excel){ User user=new User(); List<User> users = testService.implExcel(excel, user); Map map=new Ha.原创 2022-03-14 13:15:18 · 860 阅读 · 0 评论 -
mysql实现两列数据或者两行数据相减
注意:两行数据相减必须先转子查询,转为两列后,才能进行相减select (n.a-n.b) as cfrom (select (SELECT settlement_amount FROM `domestic_vendor_statements`where billing_month='202203') a,(SELECT settlement_amount FROM `domestic_vendor_statements`where billing_month='202204') b) as原创 2022-03-01 16:06:58 · 15933 阅读 · 0 评论 -
MySQL的行锁
行锁MySQL的行锁又分为共享锁(S锁)和排他锁(X锁)。一般普通的select语句,InnoDB不加任何锁,我们称之为快照读select * from test;通过加S锁和X锁的select语句或者插入/更新/删除操作,我们称之为当前读select * from test lock in share mode;select * from test for update;insert into test values(...);update test set ...;delete fr原创 2022-02-28 14:57:45 · 307 阅读 · 0 评论 -
mysql高级面试整理
MVCC(多版本控制)MVCC是一种多版本并发控制机制,是MySQL的InnoDB存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。MVCC是通过保存数据在某个时间点的快照来实现该机制,其在每行记录后面保存两个隐藏的列,分别保存这个行的创建版本号和删除版本号,然后Innodb的MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行所有快照连接起来。如何查询慢sql如果你想查看哪些查询语句的执行效率低,可以从慢查询日志中获得信息。和错误日志、查询日志一样,慢查原创 2022-02-24 18:17:06 · 359 阅读 · 0 评论 -
Java8 lambda表达式10个示例
用lambda表达式实现Runnable// Java 8之前:new Thread(new Runnable() { @Override public void run() { System.out.println("Before Java8, too much code for too little to do"); }}).start();//Java 8方式:new Thread( () -> System.out.println("In Java8原创 2022-02-22 13:35:25 · 192 阅读 · 0 评论 -
mysql的乐观锁和悲观锁解决并发更新库存问题
1. 加悲观锁(for update)/** * 更新库存(使用悲观锁) * @param productId * @return */ public boolean updateStock(Long productId){ //先锁定商品库存记录 ProductStock product = query("SELECT * FROM tb_product_stock WHERE product_id=#{productId}原创 2022-02-14 11:04:07 · 783 阅读 · 0 评论 -
Json返回结果为null属性不显示解决方法
返回时null属性不显示:String str = JSONObject.toJSONString(obj);返回为null属性显示:String str = JSONObject.toJSONString(obj,SerializerFeature.WriteMapNullValue); response.setCharacterEncoding("utf-8"); response.addHeader("Content-Type", "application/json;charset=utf-8"原创 2021-02-01 10:26:34 · 2612 阅读 · 2 评论 -
使用synchronized修饰静态方法和非静态方法有什么区别
Synchronized修饰非静态方法Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。Java中每个对象都有一个锁,并且是唯一的。假设分配的一个对象空间,里面有多个方法,相当于空间里面有多个小房间,如果我们把所有的小房间都加锁,因为这个对象只有一把钥匙,因此同一时间只能有一个人打开一个小房间,然后用完了还回去,再由JVM 去分配下一个获得钥匙的人。情况1:同一个对象在两个线程中分别访问该对象的两个同步方法结果:会产生互斥。解释:因为锁针对的是对象,当对象调用原创 2021-01-07 17:17:35 · 179 阅读 · 0 评论 -
Linux服务器添加SVN用户
1、找到SVN的安装目录如果SVN进程已经启动,可以通过ps -ef | grep svn查询如果SVN进程未启动,可以通过find / -name svn查询2、进入该目录的conf文件夹,其中包含authz、passwd、svnserve.conf三个文件3、vim passwd修改passwd加上想要添加的svn账号和密码,格式为:username1 = passw...原创 2019-11-07 12:14:12 · 310 阅读 · 0 评论 -
@transactional注解失效的六种场景
三,解决注解不回滚问题1,检查方法是不是public2,检查异常是不是unchecked异常3,如果是checked异常也想回滚的话,注解上写明异常类型即可@Transactional(rollbackFor=Exception.class)原创 2021-01-04 17:29:47 · 2998 阅读 · 0 评论 -
解决windows和linux,斜杠反斜杠转换问题
在Windows下的路径分隔符和Linux下的路径分隔符是不一样的,当直接使用绝对路径时,跨平台会暴出“No such file or diretory”的异常。比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写:File file1 = new File (“C:\tmp\test.txt”);在Linux下则是这样的:File file2 = new F...原创 2019-08-12 17:03:57 · 3466 阅读 · 0 评论 -
mysql使用exists、in、distinct区别
使用exists使用exists代替in1.exists只检查行的存在性,in 检查实际的值,所以existsd的性能比in好验证select * from emp where deptno in(select deptno from dept where loc='NEW YORK');select * from emp ewhere exists(select 1 fr...原创 2020-03-03 11:57:10 · 856 阅读 · 1 评论 -
java内存泄露,内存溢出
1.概念内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况(OOM)。从定义上可以看出内存泄露是内存溢出的一种诱因,不是唯一因素。内存泄露举例对象生命周期引发的内存泄露...原创 2019-09-24 09:50:26 · 140 阅读 · 0 评论 -
Mysql中explain命令查看执行计划
explain SELECt* FROM XXid一组数据,表示任务被执行的顺序,序号越大的任务越先执行.select_typeSIMPLE不包含任何子查询或union等查询PRIMARY包含子查询最外层查询就显示为 PRIMARYSUBQUERY在select或 where字句中包含的查询DERIVEDfrom字句中包含的查询UNION出现在union后的查询语句中U...原创 2019-09-04 14:41:28 · 248 阅读 · 0 评论 -
Nginx 配置websocket
1.Nginx 支持websocket的配置server {listen 80;server_name 域名;location / {proxy_pass http://127.0.0.1:8080/; // 代理转发地址 proxy_http_version 1.1;proxy_read_timeout 3600s; // 超时设置// 启用支持websocke...原创 2019-08-23 16:27:55 · 181 阅读 · 0 评论 -
mysql导入导出、设置字段为自增、修改字段类型、名称
设置id字段为自增 alter table `sys_user` modify id int auto_increment;mysql修改字段类型: --能修改字段类型、类型长度、默认值、注释 --对某字段进行修改 ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度 新默认值 新注释; -- COLUMN可以省略 alter table ...原创 2019-08-20 10:43:41 · 1526 阅读 · 0 评论