封装方法在 app/models/entity/Gorm.go文件里
[“字段名”,“操作符”,“查询值”,“与前一个条件的关系[默认and]”] \
1.如果是等于,可以省略"操作符" :
[]interface{}{“username”, “chen”} 或 []interface{}{“username”,"=" , “chen”}2.大于:
[]interface{}{“createtime”, “>”, “2019-1-1”}3.如果为or,那就得一写全:
[]interface{}{“username”, “=”, “chen”, “or”}4.其它的where兼容gorm的where方法
启动项目
go run main.go
访问测试地址:
http://127.0.0.1:8100/api/v1/user/test
带分页的地址:http://127.0.0.1:8100/api/v1/user/list
1、and条件测试
where := []interface{}{
[]interface{}{"id", "=", 1},
[]interface{}{"username", "chen"},
}
db, err = entity.BuildWhere(db, where)
db.Find(&users)
// SELECT * FROM `users` WHERE (id = 1)and(username = 'chen')
2、结构体条件测试
where := user.User{ID: 1, UserName: "chen"}
db, err = entity.BuildWhere(db, where)
db.Find(&users)
// SELECT * FROM `users` WHERE (id = 1) and (username = 'chen')
3、in,or条件测试
where := []interface{}{
[]interface{}{"id", "in", []int{1, 2}},
[]interface{}{"username", "=", "chen", "or"},
}
db, err = entity.BuildWhere(db, where)
db.Find(&users)
// SELECT * FROM `users` WHERE (id in ('1','2')) OR (username = 'chen')
3.1、not in,or条件测试
where := []interface{}{
[]interface{}{"id", "not in", []int{1}},
[]interface{}{"username", "=", "chen", "or"},
}
db, err = entity.BuildWhere(db, where)
db.Find(&users)
// SELECT * FROM `users` WHERE (id not in ('1')) OR (username = 'chen')
4、map条件测试
where := map[string]interface{}{"id": 1, "username": "chen"}
db, err = entity.BuildWhere(db, where)
db.Find(&users)
// SELECT * FROM `users` WHERE (`users`.`id` = '1') AND (`users`.`username` = 'chen')
5、and,or混合条件测试
where := []interface{}{
[]interface{}{"id", "in", []int{1, 2}},
[]interface{}{"username = ? or nickname = ?", "chen", "yond"},
}
db, err = entity.BuildWhere(db, where)
db.Find(&users)
// SELECTSELECT * FROM `users` WHERE (id in ('1','2')) AND (username = 'chen' or nickname = 'yond')
//注:不要使用下方方法
/*
where := []interface{}{
[]interface{}{"id", "in", []int{1, 2}},
[]interface{}{
[]interface{}{"username", "=", "chen"},
[]interface{}{"username", "=", "yond", "or"},
},
}
// 返回sql: SELECT * FROM `users` WHERE (id in ('1','2')) AND (username = 'chen') OR (username = 'yond')
// 与设想不一样
// 经过测试,gorm底层暂时不支持db.Where(func(db *gorm.DB) *gorm.DB {})闭包方法
*/
####还支持分页查询,详见github
基于gin写的一个demo框架
https://github.com/qicmsg/go_vcard
两种合并分支的方法:都保证在合到的那个分支上面;A合并到B,即保证当前在B分支上。A merge B是把A中的改动放到B分支上,B merge A是把B中的改动merge到A中,例如把master分支上的改动移到分支fb_xhf上,可以这样merge。1.转到master分支上,然后更新master最新更新。2.再转到fb_xhf上,然后在Loca...
数组arr里面的数字大小排序。arr.sort()如果里面没有函数,则默认按照最大位数的值的大小依次从小到大排序,即升序。例:let arr = [13,5,8,7,26,47,3];arr.sort();//[13,26,3,47,5,7,8]当有函数且每个元素为纯数字时arr.sort(function(a,b){return a-b;})//[3,6,7,8,13,26,47]此时为升序,即从小到大排序。当a-b>0时,a>b,相当于return 1,ab之间交换;当
17.PV与HVMParavirtual (PV)半虚拟化可以在没有显式虚拟化支持的主机硬件上运行,但无法利用特殊硬件扩展(如增强联网或 GPU 处理)。以往,半虚拟化在许多情况下的性能要优于硬件虚拟机,但是由于硬件虚拟机虚拟化的功能增强以及硬件虚拟机 AMI 可使用半虚拟化驱动程序,因此情况发生了改变。Hardware Virtual Machine (HVM)Windows Azur...
1.电源接入电源线5Pin,4芯。棕色线接入正极,蓝色线接入负极(直流电,地线)。LMS111-100默认的电压范围是10-30V,推荐使用24V,我这里使用的是12V/3A的锂电池。另外两根白色(+)和黑色(ground)的是加热用的,正常温度应该不需要。西克中国的工程师跟我说使用12V的会减少使用寿命。2D LiDAR 传感器LMS1xx / LMS11x / Outdoor原装...
原来粗略的浏览过apache Commons CLI,今天有个项目用到了,竟然没有印象,又重新浏览了一下,在此纪录一下。Apache Commons CLI library为用户提供了一个解释命令行的API.它在解释命令行时主要有三个状态,即:定义、解释和询问交互。代码如下,具体实现通过注释表示:package com.apache.common.cli.demo;import
来自Providersecurity.provider.1=sun.security.provider.Sunsecurity.provider.2=sun.security.rsa.SunRsaSignsecurity.provider.3=sun.security.ec.SunECsecurity.provider.4=com.sun.net.ssl.internal.ssl.Provider...
QQ音乐项目共分为界面布局、切歌与播放、歌词显示、滑动歌词界面布局和播放、后台播放、锁屏界面、远程控制事件、打断处理8个功能。主要是复习原来学习的知识和将新知识用到实际项目中来。项目功能和牵扯的知识点还是比较多,大家应多复习一下。=================================================================================
(转载)Hibernate 使用过程中(尤其是多对多关联中的级联保存和级联删除)的注意事项一.先上知识点:1.hibernate多对多关联关系中最重要的参数是(基于配置文件xxx.hbm.xml文件形式):1):inverse属性,如果设置inverse=“true”就代表让对方参与维护第三方表格。//这个属性特别重要,多对多关系中最好有且只有一个维护第三方表格,如果两方都维护第三
mongdb语法一、进入退出mongo二、库操作三、集合操作四、数据操作的增删改查1. 插入数据2. 删除数据3. 更新数据4. 查询数据五、使用python操作MongoDB(一)连接器(二)主要方法mongdb语法 “面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collecti...
CloudStack 在 IaaS 市场的背景和主要竞争对手oudStack 在 IaaS 市场的背景和主要竞争对手随着亚马逊在公有云和 VMware 在私有云方面的成功,各类企业纷纷在云时代迈出了自己的步伐,这些企业希望在自身的计算资源(主机,网络,存储)虚拟化过程中能够获得强大功能的同时,又维持相对低廉的成本。这正是 IaaS 供应商们发展的动力。IaaS 提供了对资源的自动化管理
SharePoint中的Business Data ConnectivityService是一个非常有用的功能,使用这个service,可以很容易的和外部的系统(database,web service,第三方系统)等进行交互,可以把外部系统的数据导入到SharePoint列表里,并在里面进行修改。 首先需要建一个service application。进入到SharePoint管理中心,
VM-16+CtenOS-8+Linux-8+LANMP环境中安装phpMyAdmin &快速使用-完整版文章目录VM-16+CtenOS-8+Linux-8+LANMP环境中安装phpMyAdmin &快速使用-完整版@[toc]==【教程大纲】==P-00) 运行环境配置P-01) 源码编译安装 `Nginx` 的方法P-02) 源码编译安装 `Apache` 的方法P-03) 源码编译安装 `MySQL` 的方法P-04) 源码编译安装 `PHP` 的方法P-05) phpMyAd