beetBeetl是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,超过当前流行的模板引擎。而且还易学易用。
BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。使用大量内置SQL,轻易完成增删改查功能,节省50%的开发工作量。 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型。内置sql真的很棒!!!普通增删查改都不用书写直接使用内置sql,而且书写的sql也没有myBatis复杂的配置
作者:闲大赋
简单介绍结束,有想更加深入了解的,请去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的日常使用,还有写进阶写法没有具体使用过,本人持续更新,谢谢观看