MyBatis中if test传入0值时不识别
前言
本文会写一些探究以及解决问题的过程。如果只想看解决方案请使用导航栏跳转到相应位置。
问题描述&分析
使用了MyBatis做多条件查询,其中有一个参数是astatus,当前端给的值为1时,查询结果正常。而给0时,这个查询语句就不会被拼接使用,具体请接着看。
OperatingAccountDao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0 /EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com...
kettle 写入效率提升优化!
数据处理逻辑
ktt从多表获取数据进行过滤分析,然后汇总处理,同步写入mycat分片表和对应的mysq数据库。
MYSQ配置以及调优,如果没有,建议参考此文档调整,数据库调优文档
初始写入效率
可以看到,数据处理效率很快,瓶颈在写入效率很低
优化写入
增加数据库链接参数
useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true
调整kettle 表出入为仅插入,减少查询
旧节点:
新节点:
开启批量插入,批次为1000,可以根据自行调节找到合适的数值
优化ktr 执行之前截断写入的物理表和分片表
优化结果
写...
905-按奇偶排序数组
题目描述
给定一个整数数组 nums,将数组中的所有偶数元素移动到数组的前面,后跟所有奇数元素。
解决思路
使用双指针技巧,一个指针从数组开头向后移动,另一个指针从数组末尾向前移动。当左指针指向奇数、右指针指向偶数时,交换两个元素的位置,直到两个指针相遇为止。
算法代码
func sortArrayByParity(nums []int) []int {
left, right := 0, len(nums)-1
for left < right {
if nums[left]%2 != 0 && nums[right]%2 == 0 {
nums[left], nums[right] = nums[...
mysql lost connection to server during query
复现
Navicat Premium 16进行数据导出的时候,导出一半频繁报错 ” mysql lost connection to server during query“。单表数据在100w左右,连续关联了6张表,虽然需求很不合理,但能导出来就好。
单表字段也很多,平均30个左右。根据错误提示,mysql查询过程中丢失链接导致错误。
方法一 修改max_allowed_packet
经实践,修改该参数为512M之后,重启之后还是不能解决此问题。
方法二 调整net超时参数
innodb_read_io_threads = 16
innodb_write_io_threads = 16
net_read_timeout = 28800
net_write_timeout =...
1013-将数组分成和相等的三个部分
题目概述
给定一个整数数组 arr,判断是否可以将其划分为三个和相等的非空部分。
示例
示例 1:
输入:arr = [0,2,1,-6,6,-7,9,1,2,0,1]
输出:true
解释:0 + 2 + 1 = -6 + 6 - 7 + 9 + 1 = 2 + 0 + 1
示例 2:
输入:arr = [0,2,1,-6,6,7,9,-1,2,0,1]
输出:false
解题思路
要将数组划分为三个和相等的非空部分,首先需要计算数组的总和。如果总和不能被3整除,那么无法分成三等分,直接返回 false。然后,使用双指针技巧,找到数组的两个分界点,使得每个分区的和都等于总和的1/3。
算法步骤
它接受一个整数数组 arr 作为输入,并返回一个布尔值,表示该数...
CentOS防火墙操作:开启端口、开启、关闭、配置
基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld....
go 打包静态资源,前后端一把梭
Go embed
它的作用就是可以在Go语言应用程序中包含任何文件、目录的内容, 也就是说我们可以把文件以及目录中的内容都打包到生成的Go语言应用程序中了,部署的时候,直接扔一个二进制文件就可以了,不用再包含一些静态文件了,因为它们已经被打包到生成的应用程序中了。
embed 的基本用法
Go embed的使用非常简单,通过//go:embed指令即可
实践参考例子
文件目录参考
资源目录必须和引用embed的文件目录平齐或者为子目录,不能在上级目录,其中web为静态资源目录,commentWeb.go为引用embed的go文件
实践代码
这段代码是一个简单的Go语言程序,用于启动一个基本的Web服务器,并将静态文件嵌入到可执行文件中。
//go:embed web...
共计 70 篇文章,9 页。