weed3-2.2.细讲插入和更新
Weed3 一个微型ORM框架(只有0.1Mb哦)
源码:https://github.com/noear/weed3
源码:https://gitee.com/noear/weed3
这篇重点讲讲插入和更新的赋值
- 支持常规赋值
String mobile="xxx"; //我的手机号不能写
db.table("test")
.set("mobile",mobile) //变量赋值
.set("sex",1) //常量赋值
.insert();
- 支持sql附值(这个是可以带来方便的***)
如果值以:$开头,表示后面为SQL代码(不能出现空隔,且100字符以内。否则视为普通字符串值),如下:
//比如:当前时间赋值
db.table("test").set("log_time","$NOW()").insert();
//再比如:字段加1附值
db.table("test").set("num","$num+1")
.where("id=?",1).update();
//再比如:根据另一个字段的md5,批量更新
db.table("test").set("txt_md5","$MD5(txt)")
.where("id>? AND id<?",1000,2000).update();
/* 如何开启或禁用功能?(其实,它是挺安全的)*/
//1.只控制本次操作是否使用此功能
db.table("test").usingExpr(false) // true 开启,false 关闭
//2.全局配置开启或关掉这个功能:
WeedConfig.isUsingValueExpression=false; //全局默认关掉
- 支持map附值(字段不能是数据表里没有的..)
Map<String,Object> map = new HashMap<>();
...
//插入
db.table("test").setMap(map).insert();
//更新
db.table("test").setMap(map).where("id=?",1).update();
- 支持 entity 附值(字段不能是数据表里没有的..)
UserModel user = new UserModel();
//插入
db.table("test").setEntity(user).insert();
//更新
db.table("test").setEntity(user).where("id=?",1).update();
- 支持(没有则插入,有则更新)的简化操作
//简化方案
db.table("test")
.set("mobile","111")
.set("sex",1)
.set("icon","http://xxxx")
.updateExt("mobile");
//此代码相当于:(下面这个可麻烦了很多哦)
if(db.talbe("test").where("mobile=?","111").exists()){
db.talbe("test")
.set("mobile","111")
.set("sex",1)
.set("icon","http://xxxx")
.insert()
}else{
db.talbe("test")
.set("sex",1)
.set("icon","http://xxxx")
.where("mobile=?","111").update();
}
- 支持根据情况附值(讲法来怪怪的..)
//1.老套跑
var qr = db.table("test").set("sex",1);
if(icon!=null){
qr.set("icon",icon);
}
qr.where("mobile=?","111").update();
//2.链式操作套路
db.table("test").set("sex",1).expre((tb)->{ //加个表达式
if(icon!=null){
tb.set("icon",icon);
}
}).where("mobile=?","111").update();
关于更新和删除的条件,参考查询的篇章。条件都是一样的嘛
weed3-2.2.细讲插入和更新的更多相关文章
- SQL Server索引进阶:第十三级,插入,更新,删除
在第十级到十二级中,我们看了索引的内部结构,以及改变结构造成的影响.在本文中,继续查看Insert,update,delete和merge造成的影响.首先,我们单独看一下这四个命令. 插入INSERT ...
- mongoDB学习手记2--建库、删库、插入、更新
上一篇 讲了在windows系统下的安装和启动,本文主要讲怎么建库.删库.插入.更新 在讲之前我们说一下mongoDB的一些基本概念,我们对比关系型数据库能更直观的理解 SQL术语/概念 Mongo ...
- JavaScript基础细讲
JavaScript基础细讲 JavaScript语言的前身叫作Livescript.自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原 ...
- Entity Framework 6 Recipes 2nd Edition(10-10)译 - > 为TPH继承的插入、更新、删除操作映射到存储过程
10-10. 为TPH继承的插入.更新.删除操作映射到存储过程 问题 TPH继承模型,想把它的插入.修改.删除操作映射到存储过程 Solution 假设数据库有一个描述不同种类的产品表(Product ...
- 解决phalcon model在插入或更新时会自动验证非空字段
在使用phalcon的insert和update功能时,因为数据库所有的字段设置的都是NOT NULL,而phalcon的model在插入或更新之前会自动判断字段是否需要必填,因此导致有空字段时无法存 ...
- ON DUPLICATE KEY UPDATE重复插入时更新
mysql当插入重复时更新的方法: 第一种方法: 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: INSERT INTO clients (c ...
- MySQL(四) 数据表的插入、更新、删除数据
序言 数据表的插入.更新.删除非常简单,但是简单的也要学习,细节决定成败. ---WH 一.插入数据 格式:INSERT INTO 表名(字段名...)VALUES(值...); 创建环境 使用per ...
- PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
原文: PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD) PHP 5 及以上版本建议使用以下方式连接 MySQL ...
- EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据
---------------------目录-------------------------- EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据 ...
随机推荐
- 华为云MVP:来自工业制造领域的微服务与云平台实践
[摘要] 首先,和大家先聊聊的是为什么微服务.DevOps和云计算会在各个产业大行其道;其次,再谈谈微服务架构设计有那些自己独特的设计思想,和传统的SOA有什么区别;最后,我们再一起看一看在工业领域云 ...
- luogu P1832 A+B Problem
题目背景 ·题目名称是吸引你点进来的 ·实际上该题还是很水的 题目描述 ·1+1=? 显然是2 ·a+b=? 1001回看不谢 ·哥德巴赫猜想 似乎已呈泛滥趋势 ·以上纯属个人吐槽 ·给定一个正整数n ...
- git 使用详解(2)——安装+配置+获取帮助
安装 Git Git 有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包. 从源代码安装 若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本. ...
- k8s 开船记-触礁:四涡轮发动机撞坏3个引发502故障
(图片来自网络) 非常抱歉,这次开船触礁故障给您带来麻烦了,请您谅解. 在我们昨天发布 k8s 开船记首航博文后,有园友在评论中发来贺词——“泰坦尼克号出发了[狗头]”,借此吉言,今天船就触礁了,还好 ...
- Python爬虫实现抓取腾讯视频所有电影【实战必学】
2019-06-27 23:51:51 阅读数 407 收藏 更多 分类专栏: python爬虫 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问 ...
- ARTS-S govendor
govendor init govendor add +external
- Tesseract-OCR 字体库下载地址
https://github.com/tesseract-ocr/tesseract/wiki/Data-Files
- 笔记||Python3之列表与元组
列表List: 特性:①列表也是一种Squence类型 ②下标 ③能切片 ④可以存储任何类型的数据,每个元素是任意类型 ⑤内容可以改变:增删改查 1 -- 值 列表的元素值是可以改变的 a ...
- RT-Thread的位图调度算法分析(最新版)
RT-Thread的内核调度算法 rt-thread的调度算法为基于优先级调度和基于时间片轮转调度共存的策略.rt-thread内核中存在多个线程优先级,并且支持多个线程具有同样的线程优先级.线程级别 ...
- 使用FileReader在浏览器读取预览文件(image和txt)
如标题,之前在某个地方看到因为有Blob的存在,理论上可以在浏览器上查看所有格式的文件.自己想着试试现在暂时只能够查看图片和预览txt文件.其他的比如doc,docx格式的文件查看的时候是乱码 如图: ...