您现在的位置是:今夕何夕> JAVA 文章详情

jFinal enjoy 模板语法搞定sql查询

久伴轻尘 2019-09-08 19:54 JAVA 0人已浏览

一:jFinal enjoy语法基础学习

jFinal enjoy 模板语法

#sql() 定义sql模板
#namespace() 指定命名空间,不同的命名空间可以让#sql指令使用相同的key值去定义sql,有利于模块化管理
#if() 判断语句 需要以#end结尾
#para() 得到参数
#define xxx() 定义一个可以被调用的方法
#@ xxx() 可以调用#define 定义的方法

二:在config中加入配置

arp.addSqlTemplate("admin.sql");

三:定义模板语法

  • #namespace定义文章sql文件key值

###文章
#namespace("news")
   #include("sql/news.sql")
#end
  • #sql初体验

#sql("list") 
SELECT 
	`blog_news`.*
FROM 
	blog_news AS `blog_news`
#end
  • #define搞定where 动态条件查询

#define newsWheres()
	#if(id)
		AND `blog_news`.newsId=#para(id)
	#end
	#if(categoryId)
		AND `blog_news`.categoryId=#para(categoryId)
	#end
	#if(authorName)
		AND `admin_user`.userName LIKE concat('%',#para(authorName),'%')
	#end
	#if(title)
		AND `blog_news`.title LIKE concat('%',#para(title),'%')
	#end
	#if(recommend)
		AND `blog_news`.recommend=#(recommend)
	#end
#end
  • #@调用newsWheres()

#sql("list")
SELECT 
	`blog_news`.*
FROM 
	blog_news AS `blog_news`
WHERE 1=1
	#@newsWheres()
#end

四:进行sql调用

  • getKv()获取查询条件

public void page() throws Exception{
    //news.list news==>#namespace("news")  list ==>#sql("list")
    newsService.page("news.list", 1, 10, getKv());
}
  • paginate进行分页查询

public Page<Record> page(String sqlKey, int pageNum, int limit, Kv kv) throws Exception {
		return Db.template(sqlKey, kv).paginate(pageNum, limit);
}