自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 [mongoDB] 事务(1)

mongoDB 4.0 在副本集群上支持了多文档事务;4.2后,在分片集群上也支持了多文档事务。支持多文档事务,对mongoDB来说无疑是质的飞越,极大地拉近了其与主流数据库的距离,甚至有超越的态势。我的部门就是采用mongoDB作为主库,业务目前来说很稳定。mongoDB的灵活数据模型使得它非常适合快速迭代的业务,副本集和分片集群架构也非常适合需要存储海量数据的业务。下面是自己总结的一些知识,具体细节还是得去看看各个大神的博客和官方文档。

2023-01-30 11:39:04 805

原创 [GO] json字符串与struct、map的相互转换

json字符串与struct、map的相互转换是业务开发中非常常用的,需要好好总结:json和struct的转换package mainimport ( "encoding/json" "github.com/davecgh/go-spew/spew")type User struct { Name string Age int}func main() { user := User{ Name: "王思聪", Age: 20, } // struct 转 json

2021-10-23 17:46:58 410

原创 [GO] GORM的CURD模板

最近使用gorm做业务开发,为了更加高效地开发,做如下总结:GormCURD模板查user := User{ Name: "drs", Age: 20,}db.Find(&user)db.Select("Name").Find(&user)增user := User{ Name: "drs", Age: 20,}// 直接创建db.Create(&user)// 使用Select选择结构体字段,进行创建db.Select

2021-10-22 11:17:03 399

原创 [GO] beego.controller中Ctx.Input里的方法总结

beego.Info(u.Ctx.Input.Protocol()) //获取用户请求的协议:HTTP/1.1 beego.Info(u.Ctx.Input.URI()) //用户请求的RequestURI: /v1/apptodayRpt/UpALL beego.Info(u.Ctx.Input.URL()) //请求的URL地址: /v1/apptodayRpt/UpALL beego.Info(u.Ctx.Input.Scheme()) //请求的 scheme: http/https b.

2021-10-21 14:38:34 1216

原创 [GO] 字符串的比较

区分大小写:“==”strings.Compare()不区分大小写:strings.Compare()strings.EqualFold() 推荐package mainimport ( "fmt" "strings")// 字符串的比较func main() { s1 := "Chinese" s2 := "CHINESE" // 1. 区分大小写 // 1.1 使用“==” if s1 == s2 { // s1不等于s2 fmt.Println("

2021-10-21 14:34:37 220

原创 [GO] 普通切片转换为interface{}切片

b := make([]interface{}, len(a))for i := range a { b[i] = a[i]}

2021-09-16 15:05:36 883

原创 常用正则表达式 持续更新......

^[A-Za-z0-9]+$:只包含字母和数字^1[3456789]\d{9}$:手机号

2021-09-07 11:40:35 79

原创 [postgreSQL] postgreSQL查看索引使用情况

pgsql的查询规划内容比mysql的要丰富,比较清晰。查询规划是以规划为节点的树形结构呈现的。查看索引使用情况:explain select col_name from tbl_name where xxx;-- 如果查询使用到了索引,会出现:`Index Scan using idx_name on tbl_name `-- 如果查询使用到覆盖索引,会出现:`Index Only Scan using idx_name on tbl_name`...

2021-08-27 15:39:01 4093 1

原创 [postgreSQL] postgreSQL 查看、创建、删除索引

-- 查看所有select * from pg_indexes where tablename='tb_name';-- 创建索引create index uniq_tb_col on tb_name (col_name); -- 如果表名是关键字,记得加双引号,如user表 create index uniq_user_nk on "user" (col_name);-- 删除索引drop index uniq_tb_col;...

2021-08-27 11:11:46 1008

原创 [GO] 内嵌结构体成员名字冲突 gorm映射错误问题

开发的时候经常会碰到两个已经定义好的struct里含有一模一样的字段,比如下面的A和B含有的Status字段,他们的字段标签都是一致的!如果单表查询不会有什么问题,但是联表查询的时候就会出问题了,gorm的无法正确映射到对应的值上面去。下面来复现一下该问题:A和B都有一样的字段:Statustype A struct { AId int64 `json:"aid" form:"aid"` Status int `json:"status" form:"status"` }ty

2021-08-11 11:47:31 1030 1

原创 [GO] gorm的字段标签

字段标签也就是结构体字段右边的 gorm:"primaryKey"和gorm:"index",primaryKey和index就是gorm的标签名。// gorm.Model 的定义type Model struct { ID uint `gorm:"primaryKey"` DeletedAt gorm.DeletedAt `gorm:"index"`}声明 model 时,tag 是可选的,GORM 支持以下 tag: tag 名大小写不敏感,但建议

2021-07-30 11:33:20 4683 1

原创 [GO] gorm批量操作

批量查询gorm有封装批量创建的方法FindInBatches,但毕竟复杂,之后再研究研究。使用IN关键字,根据切片来进行批量查询// 根据goodIds批量查询商品// 设Goods为已有结构体var goods []Goodsapp.Db.Debug().Model(&Goods{}).Where("good_id in (?)", goodIds).Find(&goods)批量创建gorm有封装批量创建的方法CreateInBatches// 定义func (db

2021-07-30 11:07:24 12433

原创 [GO] 日期格式转换

日期格式转换将时间字符串转时间戳 str to timestamptime.ParseInLocation// 将时间字符串转换为时间戳func Str2Time(timeStr string) time.Time { timeTpl := "2006-01-02 15:04:05" t, _ := time.ParseInLocation(timeTpl, timeStr, time.Local) return t}时间戳转时间字符串 timestamp to strtime.Uni

2021-07-26 22:55:35 586

原创 [网络] POST的Content-Type字段

工作中写接口是经常会和http打交道,这里说说POST的Content-Type字段。POST的Content-Type字段application/x-wwww-form-urlencoded是表单的提交方式,原生浏览器支持:application/x-wwww-form-urlencoded,urlencoded的意思是url转码,以为这表单的信息会被转码,转码的字符集可以指定,charset=utf-8。所以完整的内容为:Content-Type:application/x-www-form-ur

2021-07-26 22:32:11 293

原创 [GO]类型与接口的关系&&接口的嵌套

GO类型与接口的关系一个类型实现多个接口比如一个io类型的struct需要同时具备读和写的功能,因此需要实现多个接口(读和写接口)// +build ignorepackage main// 一个类型实现多个接口import ( "fmt")type mywriter interface { write()}type myreader interface { read()}type socket struct {}func (d *socket) write()

2021-07-08 12:07:19 240

原创 [GO]类型断言

类型断言GO的类型断言,是一个使用在接口值上面的操作,检查接口变量的值是否实现了期望的接口或者具体的类型。// +build ignorepackage mainimport ( "fmt")type a1 interface{ f2()}type s1 struct{}func (s *s1) f2() {}func main() { var x interface{} x = new(s1) // 类型断言 判断接口变量x的值是否实现了a1接口 if v

2021-07-08 11:13:02 329

原创 [GO]接口的nil判断

GO的nil判断GO的接口底层有两个部分:type和data,只有type和data都为nil,这个接口与nil作“==”比较,结果才为nil。// +build ignorepackage mainimport ( "fmt")// nil在Go语言中只能被赋值给 指针 和 接口 func main() { var p *int = nil // nil赋值给指针 var i myinterface = nil fmt.Printf("p的值为:%v,i的值为:%v\n",p

2021-07-08 04:04:34 742

原创 [GO]接口

interface接口被实现的条件接口被实现的条件有二:接口方法和实现的方法的格式一致(方法名、参数列表、返回值列表);接口的所有方法都被某个struct实现。// +build ignorepackage mainimport ( "fmt")type myWriter interface { Write(data interface{}) error}type writer struct {}// *writer实现myWriter接口func (w *wr

2021-07-08 03:30:03 64

原创 [Java基础] ==、equals、hashcode详解

==、equals、hashcode==equals方法hashCode方法不重写equals方法和hashCode方法只重写equals方法重写equals方法和hashCode方法总结==在Java中,==的作用是两个值是否相等,对于基本数据类型,比较的是数值,而对于引用类型,则比较两个对象的内存地址。 int A = 10; int B = 20; System.out.println(A == B); //比较数值大小 Animal animal1 = new Animal("狗"

2021-05-30 23:43:41 108

原创 [JVM]Java内存区域&&JVM性能调优(一)

JVM性能调优Java内存区域在几次面试中,被问到JVM性能调优。由于项目经验少且没有接触到大型项目,对JVM性能调优的认知几乎为0,面试之前背了这方面的知识点,但记忆得不深刻,面试时还是哑口无言。最近看了个关于JVM性能调优视频,感觉讲得挺好的,下面结合视频以及一些资料,总结一下JVM性能调优的知识。视频地址Java内存区域JVM性能优化主要是体现在调整Java内存区域的一些重要参数。比如,JVM对整个堆内存进行full gc时,会STW(Stop the World,只运行垃圾回收线程,而

2021-05-29 00:13:21 112

原创 面向对象的三大特性

Java面试题100道谈谈面向对象的理解面向对象和面向过程面向对象的三大特性谈谈面向对象的理解面向对象和面向过程面向对象是一种编程思想,主要的编程思想有两种:面向过程和面向对象。举个例子,洗衣机洗衣服这件事;如果用面向过程的思想来理解这件事,就需要把洗衣机洗衣服这件事拆分成:打开洗衣机-》放衣服-》选择工作模式-》运行-》拿出衣服等等。如果用面向对象的思想来理解这件事,需要分析这件事的参与者,有人、洗衣机、衣服,也就是这件事涉及到的对象。然后定义这些对象的属性和行为。拿洗衣机来举例,洗衣机的属性

2021-05-26 13:33:06 126

原创 [GO] GO的下划线

GO基础(持续更新)下划线“_”import中的下划线代码中的下划线总结下划线“_”import中的下划线// demo01.gopackage mainimport _ "fmt"func main() { fmt.Println("Println......")}此时直接go build demo1.go 会出现编译错误anson@dengrongsendeMacBook-Pro golangdemo % go build demo01.go # command-lin

2021-05-24 11:52:18 222

原创 【Redis初级】Redis的优缺点

Redis的优缺点今天被同学问到Redis的优缺点是啥,只能勉强答上几点。今天查阅资料后,在此总结一下。优点:基于内存,处理请求速度快;网络层基于epoll模型解决高并发问题,这种模型属于单线程模型,避免了多个线程间的切换和通信;拥有丰富的数据结构(string、list、set、zset、hash),而且支持lua脚本;缺点:基于内存,若短时间内存入大量数据,会导致内存不足;单线程模型,无法充分利用服务器的多核cpu。若有不足,请评论留言。...

2020-10-16 10:14:27 84

原创 设计模式详细解析(2) 代理模式

代理模式引言在某些情况下,一个对象不适合或者不方便直接访问另外一个对象,此时两者间可以通过代理对象来进行数据通讯。定义为其他对象提供一种代理以控制对这个对象的访问。代理模式通用类图两种代理模式这里我将代理模式分为两种:静态代理和动态代理。而动态代理又分为两种:JDK代理和Cglib代理。下面开始对这些代理模式进行详细讲解。静态代理静态代理类在程序运行之前已经存在(通过了编译产生了.class文件),故叫做静态代理。分析设计模式,最直接最有效的方式是通过类图来分析。静态代理的类

2020-05-09 02:35:22 118

转载 PlantUML画类图、流程图、时序图使用详解(转载)

**https://blog.csdn.net/geduo_83/article/details/86422485**版权声明:本文为CSDN博主「门心叼龙」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/geduo_83/java/article/details/86422485...

2020-04-01 18:49:54 801

原创 设计模式详细解析(1)单例模式 干货满满

单例模式这个教程非常详细地阐述了单例模式的所有实现,这些实现并不是孤立的,而是有一定联系的,下面就来探索单例模式的奥秘吧!引言在面向对象编程中,我们需要使用很多对象来完成指定任务。使用这些对象的前提是用new关键字新建一个对象。然而,有些对象我们只需要一个,新建完毕后反复使用,而不是每当需要它的时候又重新new一个,比如,缓存对象、线程池对象、打印机对象等等。显然这里用到了单例模式。宗旨...

2020-04-01 17:51:03 143

原创 docker(1) 利用docker下载配置mysql5

利用docker来准备mysql5,可以简化mysql服务的部署过程。前提:Linux系统(最好是centos7 内核版本 >= 3.10)用uname -r命令可以查看centos7的内核版本且你的Linux系统可以上网,完成了网络配置(下一篇文章会有,待更新)下面开始正式准备mysql准备docker容器(docker就是一个容器,里面装入各种镜像资...

2020-03-30 20:57:04 344

原创 IDEA(2)2019 删除项目Project

IDEA删除项目Project需要三步,记住项目的本地存储路径,后面有用1、关闭当前项目(确保只有当前项目在运行)2.点击X,删除项目3.第1第2步弄完,项目还没有被彻底删除,还需要删除本地项目,找到该项目存储路径...

2020-03-30 19:58:36 1770

原创 IDEA(1) 2019 导入本地Maven项目

IDEA 2019 导入已下载到本地的Maven项目第一步:随便打开一个项目,然后 File -> New -> Project from Existing Sources...第二步:选择已有Maven项目的pom.xml,大家可能会有疑问,为什么只选择pom文件呢,不应该是pom.xml,别急看下面第三步:点击OK后,会出现向导界面,选择本地的J...

2020-03-30 19:24:42 2460

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除