怎么使用beetlsql的自定义方法?

一起私奔吧 发布于 2016/05/14 13:36
阅读 1K+
收藏 0

@闲大赋 你好,想跟你请教一个问题:

1 beetlsql里面怎么使用自定义方法? 按照demo里的操作方式,提示 “该方法未注册”呢 ! 郁闷!

加载中
0
0
一起私奔吧
一起私奔吧
package com.xxx;


import org.beetl.core.Context;
import org.beetl.core.Function;


public class YearFunction implements Function
{
    public String call(Object[] paras, Context ctx) {
 return "2015";
    }
} 

上面是按照文档写的function,开始时不叫YearFunction,包名也不叫xxx,不要鄙视我。


FN.db.year=com.xxx.YearFunction



这是放在src/main/resources 下的 btsql-ext.properties 里面的配置内容


package ${package};
${imports}
/*
* ${comment}
* gen by beetlsql ${date(),"yyyy-MM-dd"}
*/
public class ${className} ${!isEmpty(ext)?"extends "+ext} {
	@for(attr in attrs){
		@if(!isEmpty(attr.comment)){
			private ${attr.type} ${attr.name} ;//${attr.comment}
		@}else{
			private ${attr.type} ${attr.name} ;
		@}
	@}

	@for(attr in attrs){
		@db.year();
	@}
}



这是模板文件,调用了那个方法,期望是打印出attrs.size~个2015,可实际上却打印了该方法未注册...



package com.test;
import java.math.*;
import java.util.Date;
import java.sql.Timestamp;

/*
* 
* gen by beetlsql 2016-05-14
*/
public class User  {
			private Integer id ;
			private Integer age ;
			private Integer roleid ;//用户角色
			private String name ;
			private String username ;//用户名称
			private Timestamp date ;

<html><head><title>beetlException</title><style><!-- *{margin:0;padding:0}.main{position:absolute;margin:auto;width:100%;z-index:9999999999999999999;}H1{font-family:Consolas,Arial,sans-serif;color:white;background-color:#a0a0a0;font-size:24px;padding-left:10px}H3{font-family:Consolas,sans-serif;color:#333;font-size:13px;font-weight:lighter;margin-top:5px;font-style:italic}BODY{font-family:Consolas,Arial,sans-serif;color:black;background-color:white}xmp{margin:auto;overflow:auto;width:100%;display: block;white-space: pre-wrap;font-family:simsun,sans-serif;background:white;color:black;font-size:13px;font-weight:lighter;color:#666;line-height:25px;}A{color:black}A.name{color:black}HR{color:#525d76}.t1{margin-top:0;}a.powered:hover{color:#dd1122}--></style></head><body><div class='main'><h1>>>该方法未注册(FUNCTION_NOT_FOUND):db.year 位于17行 资源:package ${package};
${imports}
/*
* ${comment}
* gen by beetlsql ${date(),"yyyy-MM-dd"}
*/
public class ${className} ${!isEmpty(ext)?"extends "+ext} {
	@for(attr in attrs){
		@if(!isEmpty(attr.comment)){
			private ${attr.type} ${attr.name} ;//${attr.comment}
		@}else{
			private ${attr.type} ${attr.name} ;
		@}
	@}

	@for(attr in attrs){
		@db.year();
	@}
}
</h1><HR size='1' noshade='noshade' class='t1'><xmp style='padding-left:20px'>14|@}
15|
16|@for(attr in attrs){
17|@db.year();
18|@}
19|}
</xmp><HR size='1' noshade='noshade'><h3><a href="http://ibeetl.com" class="powered">Powered by ibeetl.com</a></h3><div></body></html>




 



0
闲大赋
闲大赋

代码生成用的模板跟beetlsql不一样,因此,你需要用代码生成的GroupTemplte


SourceGen.gt.regtisterFunction("xxx",new YourFunction())



然后再调用sqlManager.genxxx 方法生成代码

0
闲大赋
闲大赋

代码生成用的模板跟beetlsql不一样,因此,你需要用代码生成的GroupTemplte

SourceGen.gt.regtisterFunction("xxx",new YourFunction())




0
一起私奔吧
一起私奔吧
收到收到,多谢老板!
返回顶部
顶部