减少 Sql 让开发更灵活高效,Sqlbean1.5.9 发布

科技资讯 投稿 42500 0 评论

减少 Sql 让开发更灵活高效,Sqlbean1.5.9 发布

Sqlbean 是一款使用 Java 面向对象思想来编写并生成 Sql 语句的工具,在此基础上对 Mybatis 和 Spring Jdbc 实现了类似于 JPA 的轻量级插件支持。其中内置大量常用 SQL 执行的方法,可以非常方便的达到你想要的目的,相对复杂的 SQL 语句也得以支持,在常规的项目开发几乎做到不写 DAO 层,可以有效的提高项目开发的效率,让开发者更专注于业务代码的编写。

特点:零入侵,多数据源,动态 Schema, 读写分离,自动建表,连表查询,乐观锁,分页,支持 Mybatis 和 Spring Jdbc

环境: JDK8+, Mybatis3.2.4+, (Spring MVC 4.1.2+, Spring Boot 1.x, Spring Boot 2.x

数据库: Mysql, MariaDB, Oracle, Sqlserver2008+, PostgreSQL, DB2, Derby, Sqlite, HSQL, H2

Sqlbean1.5.9 本次更新内容

1:优化 orderBy 方法;

2:修复创建表没有 id 时的错误;

3:重载 xxxByCondition 方法为 xxxBy;

4:xxxByCondition 等方法标记为过时未来删除;

5:Select 新增 table 方法重载父类并返回 Select;

6:修复简单条件链式条件时没有返回调用者的类型

Sqlbean 简单上手

1. 引入 Maven 依赖

<dependency>
    <groupId>cn.vonce</groupId>
    <artifactId>vonce-sqlbean-spring</artifactId>
    <version>1.5.9</version>
</dependency>

2. 标注实体类

@SqlTable("d_essay"
public class Essay {
    @SqlId(type = IdType.SNOWFLAKE_ID_16
    private Long id;
    private String userId;
    private String content;
    private Date creationTime;
    private Date updateTime;
    /**省略get set方法*/
}

 3. 无需 Dao 层,Service 层接口只需继承 SqlBeanService <实体类,id 类型>

public interface EssayService extends SqlBeanService<Essay, Long> {
    //已内置大量常用查询、更新、删除、插入方法,这里可以写自己封装的方法
}

 4.Service 实现类只需继承 MybatisSqlBeanServiceImpl <实体类,id 类型> 和实现你的 Service 接口

//使用Spring Jdbc的话将继承的父类改成SpringJdbcSqlBeanServiceImpl即可
@Service
public class EssayServiceImpl extends MybatisSqlBeanServiceImpl<Essay, Long> implements EssayService {
}

 5.Controller 层

@RequestMapping("essay"
@RestController
public class EssayController {
    @Autowired
    private EssayService essayService;
    //查询
    @GetMapping("select"
    public RS select( {
        //查询列表
        List<Essay> list = essayService.select(;
        list = essayService.selectBy(Wrapper.where(gt(Essay$.id, 10.and(lt(Essay$.id, 20;
        //查询一条
        Essay essay = essayService.selectById(1L;
        essay = essayService.selectOneBy(Wrapper.where(eq(Essay$.id, 333;
        //复杂查询
        Select select = new Select(;
        select.column(Essay$.id.column(Essay$.content;
        select.where(.gt(Essay$.id, 1.and(.eq(Essay$.content, "222";
        select.orderByDesc(Essay$.creation_time;
        list = essayService.select(select;
        //用于查询Map
        Map<String, Object> map = essayService.selectMap(select;
        List<Map<String, Object>> mapList = essayService.selectMapList(select;
        return super.successHint("获取成功", list;
    }
    //分页
    @GetMapping("getList"
    public Map getList(HttpServletRequest request {
        // 查询对象
        Select select = new Select(;
        ReqPageHelper<Essay> pageHelper = new ReqPageHelper<>(request;
        pageHelper.paging(select, essayService;
        return pageHelper.toResult("获取列表成功";
    }
    //更新
    @PostMapping("update"
    public RS update(Essay essay {
        //根据bean内部id更新
        long i = essayService.updateByBeanId(essay;
        //根据条件更新
        //i = essayService.updateBy(Wrapper.where(gt(Essay$.id, 1.and(eq(Essay$.content, "222";
        if (i > 0 {
            return super.successHint("更新成功";
        }
        return super.othersHint("更新失败";
    }
    //删除
    @PostMapping("deleteById"
    public RS deleteById(Integer[] id {
        //根据id删除
        long i = essayService.deleteById(id;
        //根据条件删除
        //i = essayService.deleteBy(Wrapper.where(gt(Essay$.id, 1.and(eq(Essay$.content, "222";
        if (i > 0 {
            return super.successHint("删除成功";
        }
        return super.othersHint("删除失败";
    }
    //插入
    @PostMapping("add"
    public RS add( {
        List<Essay> essayList = new ArrayList<>(;
        for (int i = 0; i < 100; i++ {
            Essay essay = new Essay(i, "name" + i;
            essayList.add(essay;
        }
        essayService.insert(essayList;
        return successHint("成功";
    }
}

编程笔记 » 减少 Sql 让开发更灵活高效,Sqlbean1.5.9 发布

赞同 (26) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽