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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

数据结构

数据结构

严蔚敏、吴伟民 / 清华大学出版社 / 2007-3-1 / 30.0

《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参数教材。 本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的各种实现方法及其综合分析比较。其内容和章节编排1992年4月出版的《数据结构》(第二版)基本一致,但在本书中更突出了抽象数据类型的概念。全书采用类C语言作为数据结构和算法的描述语言。 ......一起来看看 《数据结构》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具