spring Boot+beetl +beetlSql 内置sqlManager的简单使用

beetBeetl是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,超过当前流行的模板引擎。而且还易学易用。
BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。使用大量内置SQL,轻易完成增删改查功能,节省50%的开发工作量。 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型。内置sql真的很棒!!!普通增删查改都不用书写直接使用内置sql,而且书写的sql也没有myBatis复杂的配置

作者:闲大赋
简单介绍结束,有想更加深入了解的,请去beetl官网自习了解,下面就切入正题

beetl
在这里插入图片描述
咱们先看一下Dao层的分页与条件查询, @SqlResource注解表明去哪里寻找sql文件
这里的PageQuery 是拿取到与数据库交互的数据,

import org.beetl.sql.core.annotatoin.SqlResource;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.core.mapper.BaseMapper;


@SqlResource("emermanager.emermanager")
public interface StandDao extends BaseMapper<实体类> {
    
    
    void standList(PageQuery query);
}

service以及impl实现类书写

import com.xike.emmaback.emermanager.entity.Datum;
import org.beetl.sql.core.engine.PageQuery;

public interface EmermanagerService {
    
    
    PageQuery standList(PageQuery query,Datum da);
}
/*impl实现类*/
@Override
    public PageQuery standList(PageQuery query, Datum da) {
    
    
        query.setParas(da);
        standDao.standList(query);
        return query;
    }

controller调用,直接调用内置方法,自动分页。

  @RequestMapping(value="/",method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity<Result<PageResult<实体类>>> funcList(@ModelAttribute 实体类, @ModelAttribute PageEntity pageEntity) {
    
    
        PageQuery query = new PageQuery();
        query.setPageNumber(pageEntity.getPage());
        query.setPageSize(pageEntity.getRows());
        PageQuery pageQuery = emermanagerService.standList(query, 实体类);
        return success("获取成功", PageUtil.page(pageQuery));
    }

sql文件书写,这里的方法名字一定要与Dao层内的方法名字一致,因为你Dao层内只是告诉它去哪里找这个sql文件, 方法名字下面一定要有一个=号,表明其是方法名字。表内字段一定包含在@pageTag内,@if(){@} 是beetlSql判断方式,这里用来条件查询,#字段#为书写方式*

standList
===
   SELECT 
   @pageTag(){
    
    
   DATUM_ID,DATUM_PID,DATUM_PATH,DATUM_PDFPATH,DATUM_PDFNAME,DATUM_TYPE 
   @}
 FROM SYS_DATUM  t
      left join  SYS_DICT s on t.datum_TYPE=s.dict_id 
   WHERE 1=1
   @if(!isEmpty(datumPdfname)&&datumPdfname!=""){
    
    
    AND t.DATUM_PDFNAME LIKE #'%'+datumPdfname+'%'# 
   @}
   @if(!isEmpty(datumPid)&&datumPid!=""){
    
    
     AND t.DATUM_TYPE = #datumPid# 
   @}
 

sqlManager内置了大量的sql语句,可以帮助我们完成较为简单的增删查改

/*使用的页面注入sqlManager,如果使用sqlManager,咱们Dao层 、service、impl都不用书写*/
 @Autowired
    private SQLManager sqlManager;
    
 //新增数据到数据库内,返回类型为int,以此判断是否插入成功
 int a = sqlManager.insertTemplate(实体类);
//获取实体类SysRoleMiddle的数据,ROLE_ID为数据库内的主键
 List<SysRoleMiddle> rms = sqlManager.query(SysRoleMiddle.class).andEq("ROLE_ID",id).select();
 //通过主键ID修改对象,返回类型为int,以此判断是否修改成功
  int a = sqlManager.updateTemplateById(实体类);
  //通过ID查询单个实体对象
   SysDict dc = sqlManager.single(SysDict.class, id);
   //通过主键删除对象,返回类型为int,以此判断是否删除成功
   int a = sqlManager.deleteObject(da);
   int a = sqlManager.deleteById(Datum.class,da);

使用beetl+beetlSql有一段时间,这些只是sqlManager的日常使用,还有写进阶写法没有具体使用过,本人持续更新,谢谢观看

猜你喜欢

转载自blog.csdn.net/bojikeqian/article/details/103238659