zoukankan      html  css  js  c++  java
  • 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。所以要先实列化一下。。。
    1. 需要有配置,可以在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();
    
    

    这是一个简单的开始,希望能有个好的印象。

  • 相关阅读:
    Django中前端界面实现级联查询
    二叉树遍历规则
    计算机组成原理面试总结
    用python介绍4种常用的单链表翻转的方法
    跨域资源共享(CORS)
    python中单例模式的四种实现方式
    算法和数据结构
    手写配置文件实现两套配置文件的切换
    CentOS 7 安装教程
    配置管理系统
  • 原文地址:https://www.cnblogs.com/noear/p/11978433.html
Copyright © 2011-2022 走看看