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.细讲插入和更新的更多相关文章

  1. SQL Server索引进阶:第十三级,插入,更新,删除

    在第十级到十二级中,我们看了索引的内部结构,以及改变结构造成的影响.在本文中,继续查看Insert,update,delete和merge造成的影响.首先,我们单独看一下这四个命令. 插入INSERT ...

  2. mongoDB学习手记2--建库、删库、插入、更新

    上一篇  讲了在windows系统下的安装和启动,本文主要讲怎么建库.删库.插入.更新 在讲之前我们说一下mongoDB的一些基本概念,我们对比关系型数据库能更直观的理解 SQL术语/概念 Mongo ...

  3. JavaScript基础细讲

    JavaScript基础细讲   JavaScript语言的前身叫作Livescript.自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原 ...

  4. Entity Framework 6 Recipes 2nd Edition(10-10)译 - > 为TPH继承的插入、更新、删除操作映射到存储过程

    10-10. 为TPH继承的插入.更新.删除操作映射到存储过程 问题 TPH继承模型,想把它的插入.修改.删除操作映射到存储过程 Solution 假设数据库有一个描述不同种类的产品表(Product ...

  5. 解决phalcon model在插入或更新时会自动验证非空字段

    在使用phalcon的insert和update功能时,因为数据库所有的字段设置的都是NOT NULL,而phalcon的model在插入或更新之前会自动判断字段是否需要必填,因此导致有空字段时无法存 ...

  6. ON DUPLICATE KEY UPDATE重复插入时更新

    mysql当插入重复时更新的方法: 第一种方法: 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: INSERT INTO clients (c ...

  7. MySQL(四) 数据表的插入、更新、删除数据

    序言 数据表的插入.更新.删除非常简单,但是简单的也要学习,细节决定成败. ---WH 一.插入数据 格式:INSERT INTO 表名(字段名...)VALUES(值...); 创建环境 使用per ...

  8. PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)

    原文: PHP5: mysqli 插入, 查询, 更新和删除  Insert Update Delete Using mysqli (CRUD) PHP 5 及以上版本建议使用以下方式连接 MySQL ...

  9. EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据

    ---------------------目录-------------------------- EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据  ...

随机推荐

  1. c++ use curllib send REST API request to Web server

    E.g and explaination: Pre-condition: Server is running and can reciever CURL command with json forma ...

  2. js人民币转大写

    <input type="text" oninput="OnInput (event)" value="1234567"> &l ...

  3. Spring Cloud(二):Eureka 服务注册中心

    前言 服务治理 随着业务的发展,微服务应用也随之增加,这些服务的管理和治理会越来越难,并且集群规模.服务位置.服务命名都会发生变化,手动维护的方式极易发生错误或是命名冲突等问题.而服务治理正是为了解决 ...

  4. 走近深度学习,认识MoXing:初识华为云ModelArts的王牌利器 — MoXing

    [摘要] 本文为MoXing系列文章第一篇,主要介绍什么是MoXing,MoXing API的优势以及MoXing程序的基本结构. MoXing的概念 MoXing是华为云深度学习服务提供的网络模型开 ...

  5. ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接

    问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...

  6. ios-AutoLayout(自动布局代码控制)简单总结

    转自:http://blog.sina.com.cn/s/blog_7c336a830102vaht.html 原理:IOS6.0 之后,苹果优化了UI界面的布局方式,提出了自动布局的概念,和之前的a ...

  7. Springboot结合Redis

    安装 Redis   安装 gcc Yum install gcc-c++ 解压 redis.3.0.0.tar.gz 压缩包 tar -zxvf redis-3.0.0.tar.gz 进入解压后的目 ...

  8. 使用java理解程序逻辑 试题分析

      1.编译Java Applet源程序文件产生的字节码文件的扩展名为() A:.java B..class C:Html D:Exe 正确答案:B 试题分析: 本题考查的是Java程序的开发过程.J ...

  9. [TimLinux] openpyxl 操作Excel

    from openpyxl import Workbook from openpyxl.styles import Color, PatternFill, Font from openpyxl.sty ...

  10. 基于Storm的WordCount

    Storm WordCount 工作过程 Storm 版本: 1.Spout 从外部数据源中读取数据,随机发送一个元组对象出去: 2.SplitBolt 接收 Spout 中输出的元组对象,将元组中的 ...