Topfox 快速开发框架更新了版本 1.2.4 与 1.2.5

栏目: 软件资讯 · 发布时间: 5年前

内容简介:版本1.2.5 更新日志 2019-07-30 CamelHelper为驼峰和下划线命名互转的处理类 BeanUtil.toUnderlineName 删除, 用 CamelHelper.toUnderlineName 代替 BeanUtil.toCamelCase 删除, 用 CamelHelper.toCamel 代替 版本...

版本1.2.5 更新日志 2019-07-30

  • CamelHelper为驼峰和下划线命名互转的处理类
    BeanUtil.toUnderlineName 删除, 用 CamelHelper.toUnderlineName 代替
    BeanUtil.toCamelCase 删除, 用 CamelHelper.toCamel 代替

版本1.2.4 更新日志 2019-07-24

  • 全局缓存参数开关

    新增 一级缓存开关 top.service.thread-cache

    新增 二级缓存开关 top.service.redis-cache

    删除 top.service.open-redis

  • 多主键的支持, 包括: 更新, 删除, 查询, 数据校验组件, 修改日志组件;
  • java远程调用返回空对象的处理;
  • 技术文档修改

在 srpingboot2.x.x 和MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

编程规范参考《阿里巴巴 Java 开发手册》

借鉴 mybaties plus 部分思想

特性:

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 集成 Redis 缓存: 自带Redis缓存功能, 支持多主键模式, 自定义redis-key. 实现对数据库的所有操作, 自动更新到Redis, 而不需要你自己写任何代码; 当然也可以针对某个表关闭.
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:可自由配置,充分利用Redis提高性能, 完美解决主键问题. 支持多主键查询、修改等
  • 内置分页实现:基于 MyBatis 物理分页,开发者无需关心具体操作,写分页等同于普通查询
  • 支持devtools/jrebel热部署
  • 热加载 支持在不使用devtools/jrebel的情况下, 热加载 mybatis的mapper文件
  • 内置全局、局部拦截插件:提供delete、update 自定义拦截功能
  • 拥有预防 Sql 注入攻击功能
  • 无缝支持spring cloud: 后续提供分布式调用的例子

功能强大的查询

条件匹配器Condition 查询一

以下仅仅是条件匹配器的部分功能, 更多功能等待用户挖掘.

@RestController
@RequestMapping("/condition")
public class ConditionController {
    @Autowired
    UserService userService;

    /**
     * 条件匹配器的一个例子
     */
    @GetMapping("/query1")
    public List<UserDTO> query1(){
        //**查询 返回对象 */
        List<UserDTO> listUsers = userService.listObjects(
                Condition.create()  //创建条件匹配器对象
                    .between("age",10,20)  //生成 age BETWEEN 10 AND 20
                    .eq("sex","男")        //生成  AND(sex = '男')
                    .eq("name","C","D","E")//生成 AND(name = 'C'  OR name = 'D' OR name = 'E')
                    .like("name","A", "B") //生成 AND(name LIKE '%A%' OR name LIKE '%B%')
                    //不等
                    .ne("name","张三","李四")
                    
                     //等同于  .eq("substring(name,2)","平")
                    .add("substring(name,2)='平' ")//自定义条件
                    
                    .le("loginCount",1)//小于等于
                    .lt("loginCount",2)//小于
                    .ge("loginCount",4)//大于等于
                    .gt("loginCount",3)//大于

                    .isNull("name")
                    .isNotNull("name")
        );
        return listUsers;
    }

}

生成的WHERE条件如下:

SELECT id,code,name,password,sex,age,amount,mobile,isAdmin,loginCount,lastDate,deptId,createUser,updateUser
FROM users a
WHERE age BETWEEN 10 AND 20
  AND (sex = '男')
  AND (name = 'C' OR name = 'D' OR name = 'E')
  AND (name LIKE '%A%' OR name LIKE '%B%')
  AND (name <> '张三' AND name <> '李四')
  AND substring(name,2)='平' 
  AND (loginCount <= 1)
  AND (loginCount < 2)
  AND (loginCount >= 4)
  AND (loginCount > 3)
  AND name is null
  AND name is not null
LIMIT 0,6666

条件匹配器Condition 查询二

@RestController
@RequestMapping("/condition")
public class ConditionController {
    @Autowired
    UserService userService;
    @GetMapping("/query2")
    public List<UserDTO> query2(){
        //**查询 返回对象 */
        List<UserDTO> listUsers = userService.listObjects(
            userService.where()  // 等同于 Condition.create() 创建一个条件匹配器对象
                .eq("concat(name,id)","A1")          //生成 (concat(name,id) = 'A1')
                .eq("concat(name,id)","C1","D2","E3")//生成 AND (concat(name,id) = 'C1' OR concat(name,id) = 'D2' OR concat(name,id) = 'E3' )
        );
        return listUsers;
    }
}

生成的WHERE条件如下:

SELECT id,code,name,password,sex,age,amount,mobile,isAdmin,loginCount,lastDate,deptId,createUser,updateUser
FROM users a
WHERE (concat(name,id) = 'A1')
  AND (concat(name,id) = 'C1'
    OR concat(name,id) = 'D2'
    OR concat(name,id) = 'E3' )

高级查询 带分组, 排序, 自定select 后字段, 指定分页的查询

利用查询构造器 EntitySelect 和 Condition的查询

实体查询构造器

/**
 * 核心使用 继承了 topfox 的SimpleService
 */
@Service
public class CoreService extends SimpleService<UserDao, UserDTO> {
    public List<UserDTO> demo2(){
        List<UserDTO> listUsers=listObjects(
                select("name, count('*')") //通过调用SimpleService.select() 获得或创建一个新的 EntitySelect 对象,并返回它
                        .where()         //等同于 Condition.create()
                        .eq("sex","男")  //条件匹配器自定义条件 返回对象 Condition
                        .endWhere()      //条件结束           返回对象 EntitySelect
                        .orderBy("name") //设置 排序 的字段      返回对象 EntitySelect
                        .groupBy("name") //设置分组的字段      返回对象 EntitySelect
                        .setPage(10,5)    //设置分页(查询第10页, 每页返回5条记录)

        );
        return listUsers;
    }
}

输出sql如下:

SELECT name, count('*')
FROM users a
WHERE (sex = '男')
GROUP BY name
ORDER BY  name
LIMIT 45,5

 


以上所述就是小编给大家介绍的《Topfox 快速开发框架更新了版本 1.2.4 与 1.2.5》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

现代编译原理

现代编译原理

Andrew W.Appel、Maia Ginsburg / 人民邮电 / 2005-9 / 59.00元

《现代编译原理:C语言描述(英文版)(本科)》全面讲述了现代编译器的各个组成部分,包括:词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数据流分析、寄存器分配以及运行时系统等。与大多数编译原理的教材不同,《现代编译原理:C语言描述(英文版)(本科)》采用了函数语言和面向对象语言来描述代码生成和寄存器分配,对于编译器中各个模块之间的接口都给出了实际的 C 语言头文件。 全书分成两部分......一起来看看 《现代编译原理》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具