赞助链接
本文《动态表格与动态表格制作的实现原理[Java编程]》是七道奇为你精心收集的,转载自网络,文章版权归文章作者所有。 本网站不对其观点和内容进行任何评价,请读者自行判断。 以下是其具体内容。
1使用场景
项目需要始终动态创建表单,可能需要添加新的数据模板。 此时,由于需求在运行时动态创建表并动态保护表的fnddc表的关系,常规的java规划变得困难。
2安装工具
hibernatespringgroovyfreemarker
Hibernate的作用很简单,负责创建数据库表,避免我们自己写复杂的sql和判断。
Spring作为桥梁发挥纽带的作用
Groovy作为一种动态语言,在项目运行时根据模板构建等待礼拜的数据库,大致掌握层代码
Freamker可以根据预定义的模板生成hibernate配置文件和Groovy代码。
3实现原理
首先,建立Form和FromAttribute两个表关系。 表单表将表单域信息(如名称、类别等)记录为表单的名称、类别,以及动态生成表单时的css模型信息。 有了窗体和窗体项的信息,就可以创建数据库表。
测试代码:
公共语音测试生成器
form form=form服务. get all ().get ) ) 0;
列表列表=格式属性服务
. getattributelistbyformid (form.getid );
form.setformattributelist (列表;
dbgeneratordg=newdb generator (form,dataSource );
dg.generator (;
}
数据库生成器
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
导入Java.SQL.sqlexception;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.sql.DataSource;
importorg.hibernate.tool.hbm2DDL.schema export;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
导入freemarker.template.configuration;
导入freemarker.template.template;
导入freemarker.template.template exception;
公共类数据库生成器{
私有数据源数据源;
保护性map root=new hashmap (;
私有状态日志gerlog=logger factory.getlogger (form generator.class;
保护性字符串路径;
保护性字符串包名称;
私密表单;
保护性配置getconfig {
配置CFG=new配置(;
CFG.set default编码(utf-8 );
CFG.setclassfortemplateloading (this.getclass )、resource );
返回CFg;
}
publicdbgenerator(formform,数据源数据源) {
this.form=form;
this .数据源=数据源;
}
公共语音生成器
if (null==form.getformattributelist (|form.getformattributelist ).size (==0) ) ) ) ) ) ) )。
返回;
}
模板t;
try {
t=getconfig(/template ) (.gettemplate ) (hibernate.ftl );
Writer out=new StringWriter (;
t .处理(getmapcontext )、out );
String xml=out.toString (;
创建表(XML;
log.debug(XML;
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}catch(templateexceptione ) {
e .打印堆栈跟踪(;
}
}
@suppresswarnings('unchecked ' ) )。
Map getMapContext (
root.put('entity ',form );
返回根;
}
公共语音创建表(字符串XML ) {
org.hibernate.CFG.configuration conf=new org.hibernate.CFG.configuration (;
conf.configure ((/hibernate/hibernate.CFG.XML );
propertiesextraproperties=new properties (;
extra properties.put (' hibernate.hbm2DDL.auto ',' create ' );
conf.add properties (extra properties );
conf.addXML(XML;
方案导出数据库导出;
try {
dbexport=new方案导出(conf,dataSource.getConnection );
//dbexport.setoutputfile(path );
dbexport.create(false,true );
}catch(sqlexceptione ) {
//todo auto-generated catch块
e .打印堆栈跟踪(;
}
}
}
类hibernate generator {
}
以上是“动态表单及动态表格创建的实现原理[Java编程]”的内容。 如果您对上述文章的内容感兴趣,请浏览七道奇推荐的以下文章。