• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

jfinal-xsql-plugin: jfinal-xsql-plugin

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

jfinal-xsql-plugin

开源软件地址:

https://gitee.com/xiyoufang/jfinal-xsql-plugin

开源软件介绍:

简介


jfinal-xsql-plugin是jfinal的一个动态SQL插件,用来简化Jfinal的ActiveRecord开发,统一管理SQL语句。遇到复杂SQL时也可以让你迎刃有余,该框架写法类似mybatis/ibatis,其实却完全不同,XSQL不是ORM框架,他是个根据规则条件动态生成SQL语句与对应预编译参数的利器,使用该框架也极度简单,框架本身只实现了foreach,isempty,isnotempty,isequal,isnoequal四类常用的规则,但他不仅仅如此,他允许外部注册任意规则。之前有开发过另外一个jfinal动态SQL插件http://git.oschina.net/h5lib/jsql 。这框架使用的是js语法,引用了rhino的js引擎,整体会比较大,渲染速度10000次在10秒左右,新插件渲染速度10000次在1秒左右,另外http://www.jfinal.com/share/75 在这文章有人表示无法接受这种写法,顾重新搞了一个类似ibatis 通过XML标签来控制规则的插件。

###MAVEN导入

<dependency>	<groupId>cn.fsdev</groupId>	<artifactId>jfinal-xsql-plugin</artifactId>	<version>2.2</version></dependency>

示例


1、SqlConfig主配置文件:

<sqlconfig>	<statements>		<statement tag="isnull" class="com.jfplugin.xsql.IsNullStatement" />	</statements>	<sqlmap path="classpath:sql-a.xml"></sqlmap>	<sqlmap path="classpath:sql-b.xml"></sqlmap>	<sqlmap path="classpath:sql-c.xml"></sqlmap></sqlconfig>

配置文件中仅有statement 和 sqlmap 节点,其中statements节点用来配置自定义规则,sqlmap用来引入sqlmap文件。

2、SqlMap配置文件

<sqlmap namespace="a">	<!-- 第一条SQL -->	<sql id="sql1">		select * from user t where		<isnotempty property="ids" prepend="">			<foreach collection="ids" item="id" open="(" close=")" separator="," prepend="t.id NOT IN " >				#{id}			</foreach>		</isnotempty>		<isempty property="ids" prepend="">			1 = 0		</isempty>		<isnull>			1 = 2		</isnull>	</sql>	<!-- 第二条SQL -->	<sql id="sql2">		select * from a where a.id = ${id} and a.name = ${name}	</sql></sqlmap>

sqlmap文件中包括sqlmap节点,sql节点与sql的规则节点,sqlmap中namespace用来规定命名空间,sql节点用来管理具体sql,通过namespace+"."+id 来确定唯一一条SQL语句。SQL语句文本中可用#{var} 和 ${var},两种形式引用变量,#{}为预编译,${}为SQL拼接。

3、JfinalConfig中启用插件

me.add(new XsqlPlugin("sql-config.xml",true));

4、调用动态SQL

返回值为SqlArgs,SqlArgs中存放着sql语句,与参数列表。

Map<String, Object> map = new HashMap<String, Object>();map.put("ids", Arrays.asList(1,2,3));SqlArgs sqlArgs = XsqlKit.getSqlArgs("a.sql1", map);

之后可以在ActiveRecord中无缝的使用下面方式执行SQL

Db.find(sqlArgs.sql, sqlArgs.args);

5、单独使用

有时我们需要通过JDBC单独使用可以参考 com.jfplugin.xsql.Test1 下的测试代码。

6、详细文档

详细文档请关注官方网站:http://www.fsdev.cn/

使用环境


虚拟机环境:JDK1.6+Jfinal版本:基于2.2编译,理论可支持2.0+

官方网站:http://www.fsdev.cn/


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap