weed3-2.1.开始纯java使用
Weed3 一个微型ORM框架(只有0.1Mb哦)
源码:https://github.com/noear/weed3
源码:https://gitee.com/noear/weed3
纯java使用时,有三大接口可用:
db.table(..), db.call(..), db.sql()。一般使用db.table(..)接口进行链式操作居多。它的接口采用与SQL映射的方式命名。。。使用的人,容易想到能有哪些链式接口。像:.where(..) .and(..) .innerJoin(..)等...
链式操作的套路:
以db.table(..)开始。
以.update(..)或.insert(..)或.delete(..)或.select(..)。
其中.select(..)会返回IQuery接口,提供了各种类型结果的选择。
首先,添加meven依赖
<dependency>
  <groupId>org.noear</groupId>
  <artifactId>weed3</artifactId>
  <version>3.2.3.4</version>
</dependency>
<!-- 数据库连接器,我就不管了 -->
然后,实例化数据库上下文对象
- 所有weed3的操作,都是基于DbContext。所以要先实列化一下。。。
 
- 需要有配置,可以在
application.properties获取,可以通过配置服务获取,可以临时手写一下。。 
如果是 Spring 框架,可以通过注解获取配置
如果是 solon 框架,可以通过注解 或 Aop.prop().get("xxx")获取配置
2.有配置之后开始实列化DbContext。这里临时手写一下。
//使用Properties配置的示例
DbContext db  = new DbContext(properties); 
//使用Map配置的示例
DbContext db  = new DbContext(map); 
//使用proxool线程池配置的示例(好像现在不流行了)
DbContext db  = new DbContext("user","proxool.xxx_db"); 
//使用DataSource配置的示例(一般使用连接池框架时用;推荐 Hikari 连接池)
//下行demo里用的正是 Hikari 连接池
DbContext db  = new DbContext("user",new HikariDataSource(...)); 
//还有就是用url,username,password
DbContext db  = new DbContext("user","jdbc:mysql://x.x.x:3306/user","root","1234");
/* 我平时都用配置服务,所以直接由配置提供数据库上下文对象。 */
现在,开始做简单的数据操作
- 常规查询操作
 
//统计小于10的用户数量
long num = db.table("user_info").where("user_id<?", 10).count();
//检查用户是不是存在
bool rst = db.table("user_info").where("user_id=?", 10).exists();
//获取用户性别
int sex = db.table("user_info").where("user_id=?", 10)
            .select("sex").getValue();
//获取一个用户信息
UserModel mod = db.table("user_info").where("user_id=?", 10).and("sex=1")
                  .select("*").getItem(UserModel.class);
- 再来一把全套的"增删改查"
 
//简易.增
db.table("test").set("log_time", "$DATE(NOW())").insert();
//简易.删
db.table("test").where("id=?",1).delete();
//简易.改
db.table("test").set("log_time", "$DATE(NOW())").where("id=?",1).update();
//简易.查
var map = db.table("test").where("id=?",1).select("*").getMap();
关于条件的另一套接口
//where 组
whreEq(filed,val)  //filed等于val
whereLt(filed,val) //小于
whereLte(filed,val) //小于等于
whereGt(filed,val) //大于
whereGte(filed,val) //大于等于
whereLk(filed,val) // LIKE
whereIn(filed,ary) // IN
whereNin(filed,ary) // NOT IN
//and 组
andEq(filed,val)  //filed等于val
andLt(filed,val) //小于
andLte(filed,val) //小于等于
andGt(filed,val) //大于
andGte(filed,val) //大于等于
andLk(filed,val) // LIKE
andIn(filed,ary) // IN
andNin(filed,ary) // NOT IN
//or 组
orEq(filed,val)  //filed等于val
orLt(filed,val) //小于
orLte(filed,val) //小于等于
orGt(filed,val) //大于
orGte(filed,val) //大于等于
orLk(filed,val) // LIKE
orIn(filed,ary) // IN
orNin(filed,ary) // NOT IN
//demo::
db.table("test").whereEq("id",1).delete();
db.table("test").whereEq("id",1).orEq("name","xidong").delete();
这是一个简单的开始,希望能有个好的印象。
weed3-2.1.开始纯java使用的更多相关文章
- 纯java配置SpringMVC
		
一般情况下,我们会在web.xml下配置好Spring和SpringMVC,并指定好它们的配置文件 是最常用的也是最方便的方法 例如: web.xml <!-- The definition o ...
 - spring纯java注解式开发(一)
		
习惯了用XML文件来配置spring,现在开始尝试使用纯java代码来配置spring. 其实,spring的纯java配置,简单来说就是将bean标签的内容通过注解转换成bean对象的过程,没什么神 ...
 - 纯java从apk文件里获取包名、版本号、icon
		
简洁:不超过5个java文件 依赖:仅依赖aapt.exe 支持:仅限windows 功能:用纯java获取apk文集里的包名,版本号,图标文件[可获取到流直接保存到文件系统] 原理:比较上一篇文章里 ...
 - 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置
		
经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...
 - 纯JAVA驱动:sqlserver版本不同,驱动与连接也有所区别
		
纯JAVA驱动:// 2005 版本:驱动:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");连接:”jd ...
 - Android 使用纯Java代码布局
		
java布局 java代码布局和xml布局的区别 1.Java纯布局更加的灵活,比如自定义控件或一些特殊要求时,使用java代码布局 2.常用的xml布局是所见即所得的编写方式,以及xml本身拥有一些 ...
 - simpleImageTool又纯java图片水印、缩放工具
		
simpleImageTool又一个简单.好用的图片格式转换.缩放水印叠加等功能的纯Java图片工具库. simpleImageTool的由来,近期需要用到图片处理,通过网上的图片流直接进行缩放水印叠 ...
 - DataX通过纯Java代码启动
		
DataX是阿里巴巴团队开发的一个很好开源项目,但是他们对如何使用只提供了python命令启动方式,这种方式对于只是想简单的用下DataX的人来说很是友好,仅仅需要几行代码就可以运行,但是如果你需要在 ...
 - 帧动画的创建方式 - 纯Java代码方式
		
废话不多说,先看东西 帧动画的创建方式主要以下2种: * 用xml创建动画: * 纯Java代码创建动画: 本文内容主要关注 纯java代码创建帧动画 的方式: 用xml创建帧动画:http:// ...
 
随机推荐
- PHP数组总汇
			
数组,顾名思义,本质上就是一系列数据的组合.在这个组合中,每个数据都是独立的,可以对每个单独的数据进行分配和读取.PHP对数据的操作能力非常强大,尤其是PHP为程序开发人员提供了大量方便.易懂的数组操 ...
 - hospital:广西大学生计算机设计大赛
			
html 当时做到的就是这些了 <!DOCTYPE html><html lang="en"><head> <title>病人信息查 ...
 - Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署
			
关于pipenv 昨天介绍了pipenv这个相比于virtualenv更高端大气上档次的虚拟环境管理软件,但看了下流量貌似不是很受欢迎,也许是我介绍的不够好吧.那么今天就拿它做一个例子,开发一款天气预 ...
 - 快速理解spark-on-k8s中的external-shuffle-service
			
[摘要] external-shuffle-service是Spark里面一个重要的特性,有了它后,executor可以在不同的stage阶段动态改变数量,大大提升集群资源利用率.但是这个特性当前在k ...
 - 深入理解Android异步消息处理机制
			
一.概述 Android 中的异步消息处理主要分为四个部分组成,Message.Hndler.MessageQueue 和 Looper.其关系如下图所示: 1. Message 是线程之间传递的消息 ...
 - mac终端基本命令
			
一 基本命令 1.列出文件 ls 参数 目录名 参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件 例: 看看驱动目录下有什么:ls /System/Library/Extensions 2. ...
 - [TimLinux] JavaScript 模态框可拖动功能实现——jQuery版
			
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
 - 1010 Radix (25 分),PTA
			
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536 题意:给定n1.n2两个数,求可以是两 ...
 - 《java面试十八式》--引子
			
爪哇城中 “喂,你等等我啊”少女气喘吁吁的喊道 “大小姐,你可快点吧,报名马上就要结束了.” 这是爪哇城一年一度的大选比赛,被选上的人会留下来任职,享有名誉和金钱,所以大家都在积极准备. ...
 - 各种常用js函数实现
			
1.bind function bind(fn, context) { var args = Array.prototype.slice.call(arguments, 2); retur ...