`
soundycui
  • 浏览: 85811 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Birt动态设置sql中的?

阅读更多
1.build DataSource
2.String sql
    
String sql = "select * from test where time between ? and ?";
    
3.build Parameter
             int timeStart = xxx;
             int timeEnd = xxx;
             void buildParameters() throws SemanticException
	     {
		      ScalarParameterHandle startTimeHandle = efactory.newScalarParameter("startTimeStr");
		      startTimeHandle.setDefaultValue(timeStart+""); 
		      startTimeHandle.setAllowNull(false);
		      startTimeHandle.setAllowBlank(false);
		      startTimeHandle.setHidden(true);
		      startTimeHandle.setValueType(DesignChoiceConstants.PARAM_VALUE_TYPE_STATIC);
		      startTimeHandle.setDataType(DesignChoiceConstants.PARAM_TYPE_STRING);//PARAM_TYPE_INTEGER
		     
	          ScalarParameterHandle endTimeHandle = efactory.newScalarParameter("endTimeStr");
	          endTimeHandle.setDefaultValue(timeEnd+""); 
	          endTimeHandle.setAllowNull(false);
	          endTimeHandle.setAllowBlank(false);
	          endTimeHandle.setHidden(true);
	          startTimeHandle.setValueType(DesignChoiceConstants.PARAM_VALUE_TYPE_STATIC);
	          endTimeHandle.setDataType(DesignChoiceConstants.PARAM_TYPE_STRING);//float
	          
	          designHandle.getParameters().add(startTimeHandle);
	          designHandle.getParameters().add(endTimeHandle);  
	     }


4.build DataSet  [创建数据集(即:某些执行sql语句)]
 	void buildDataSet(String sql,String dataSourceName,String dataSetName) throws SemanticException
 	{ 
 		OdaDataSetHandle dsHandle = efactory.newOdaDataSet( dataSetName,
 		               "org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" );
 		dsHandle.setDataSource( dataSourceName); 
 		dsHandle.setQueryText( sql ); 
 		designHandle.getDataSets( ).add( dsHandle ); 
 		buildDataSetParameter(dsHandle);		
 	}


5.build DataSetParameter  [创建数据集合的参数]
	  private void buildDataSetParameter(OdaDataSetHandle dsHandle) throws SemanticException{
		  OdaDataSetParameter dataSetStartTimeParam = StructureFactory.createOdaDataSetParameter();
	 		dataSetStartTimeParam.setName("param1"); 
	 		dataSetStartTimeParam.setParamName("startTimeStr");
	 		dataSetStartTimeParam.setPosition(1); 
	 		dataSetStartTimeParam.setDataType(DesignChoiceConstants.PARAM_TYPE_STRING);
	 		dataSetStartTimeParam.setAllowNull(false);
	 		dataSetStartTimeParam.setDefaultValue(System.currentTimeMillis()/1000 - 1000+"");
	 		dataSetStartTimeParam.setIsInput(true);
	 		dataSetStartTimeParam.setIsOutput(false); 
	 		dataSetStartTimeParam.setIsOptional(false);
	     	 
	     	OdaDataSetParameter dataSetEndTimeParam = StructureFactory.createOdaDataSetParameter();
	     	dataSetEndTimeParam.setName("param2"); 
	     	dataSetEndTimeParam.setParamName("endTimeStr");
	     	dataSetEndTimeParam.setPosition(2); 
	     	dataSetEndTimeParam.setDataType(DesignChoiceConstants.PARAM_TYPE_STRING);
	     	dataSetEndTimeParam.setAllowNull(false);
	     	dataSetEndTimeParam.setDefaultValue(System.currentTimeMillis()+"");
	     	dataSetEndTimeParam.setIsInput(true);
	     	dataSetEndTimeParam.setIsOutput(false); 
	     	dataSetEndTimeParam.setIsOptional(false);

	     	PropertyHandle parameterHandle = dsHandle.getPropertyHandle(DataSetHandle.PARAMETERS_PROP);
//	 		 parameterHandle.insertItem(dataSetStartTimeParam, 0);   
//	 		 parameterHandle.insertItem(dataSetEndTimeParam, 1);
	 		 parameterHandle.addItem(dataSetStartTimeParam);
	 		parameterHandle.addItem(dataSetEndTimeParam);
	  }


6.modify report parameter
	      int timeStart = xxx;
              int timeEnd = xxx;
	       void setReportParameterValue(ReportDesignHandle designHandle) throws SemanticException, IOException{
		((ScalarParameterHandle) designHandle.findParameter("startTimeStr"))
				.setDefaultValue(timeStart+ "");
		((ScalarParameterHandle) designHandle.findParameter("endTimeStr"))
				.setDefaultValue(timeEnd+ "");
		designHandle.save();
	       }   



若修改完后,打开或导出,则:
                reportEngine.shutdown();
Platform.shutdown();
分享到:
评论

相关推荐

    fire bird常用sql语句

    fire bird常用sql语句 一、分页写法小例: 二、显示表名和表结构 三、使用ISQL连接数据库 四、更新字段注释 五、显示字段注释 六、更新表注释 七、查询所有的表和视图(包括系统表和系统视图) 八、查询所有的用户表...

    Text2SQL_语义解析数据集、解决方案、paper资源整合项目_NL2SQL.zip

    在数据库领域中,将自然语言转换为SQL查询的能力是近年来人工智能研究的热点之一。Text2SQL,即自然语言到结构化查询语言(SQL)的转换,旨在通过理解自然语言描述的数据库查询请求,自动构建相应的SQL语句。这不仅...

    自然语言到SQL的曙光:我们准备好了吗?

    然而,这引发了一个关键问题: 我们是否已准备好在生产环境中部署nl2sql模型? 为了解决这些问题,我们提出了一个多角度的nl2sql评估框架, NL2SQL360 , 以帮助研究人员设计和测试新的nl2sql方法。通过 NL2SQL360 ,...

    Alpha-SQL:使用蒙特卡洛树搜索的零样本Text-to-SQL转换

    随着大型语言模型(LLMs)的发展,诸如CHASE-SQL (Pourreza等,2024) 和XiYan-SQL (高云等,2024) 等方法在BIRD基准测试中取得了新的最先进成果 (李金阳等,2023) 。使用LLMs进行Text-to-SQL可以分为训练方法和零...

    SQL-o1:一种用于Text-to-SQL的自奖励启发式动态搜索方法

    广泛的实验表明,SQL-o1在复杂的Bird数据集上的执行准确率比最新的基线方法提高了10.8%,甚至超过了基于GPT-4的方法。此外,SQL-o1在少量样本学习场景中表现出色,并且具有强大的跨模型迁移能力。

    OpenSearch-SQL:通过动态少样本和一致性对齐增强Text-to-SQL

    实验结果表明,OpenSearch-SQL在BIRD开发集上实现了69.3%的执行准确率(EX),在测试集上达到72.28%,奖励有效性评分(R-VES)为69.36%,三项指标均排名第一。这些结果展示了所提方法在有效性和效率方面的全面优势。

    NL2SQL-BUGs:用于检测NL2SQL翻译中语义错误的基准

    自然语言到SQL(即 NL2SQL)翻译...尽管如此,这些模型成功检测到了广泛使用的 NL2SQL 数据集 BIRD 中的 106 个错误(占 6.91% ),这些错误之前是基准中的标注错误。这突显了语义错误检测在 NL2SQL 系统中的重要性。

    java实现Flappy bird

    在Java中实现Flappy Bird涉及以下关键知识点: 1. **Java GUI编程**:Flappy Bird游戏的界面通常是使用Java的Swing或JavaFX库构建的。这些库提供了创建窗口、按钮、图像和动画的工具。开发者需要了解如何使用这些...

    V-SQL:一种基于视图的两阶段Text-to-SQL框架

    Text-to-SQL任务旨在无偏地将自然语言转换为结构化查询语言(SQL)。...在权威数据集Bird上的结果表明,V-SQL与现有的最先进的方法相比具有竞争力。 关键词:大语言模型,Text-to-SQL,情境学习,数据库,NLP。

    BASE-SQL:一种强大的开源Text-to-SQL基准方法

    然而,在实际应用场景中,需要考虑数据隐私、SQL生成效率和成本等因素。SFT方法在这些方面具有一定优势。当前基于开源模型微调的方法缺乏易于实现且有效的(成本效益高的)基准方法。我们提出了一种基于开源模型微调...

    模式链接的终结?在语言模型时代下的文本到SQL转换

    模式链接是文本到SQL管道中的关键步骤。其目标是在用户查询时检索目标数据库中相关的表和列,而忽略不相关的部分。然而,不完善的模式链接常常会排除生成准确查询所需的列。在这项工作中,我们重新审视了使用最新...

    MCS-SQL:利用多提示和多选题选择进行文本到SQL生成

    近年来,大型语言模型(LLMs)的进步使得基于上下文学习(ICL)的方法在文本到SQL任务中显著优于微调方法。然而,它们在包含复杂模式和查询的基准测试中的表现仍然远低于人类专家的表现,例如BIRD基准测试。本研究...

    Feather-SQL:一种针对小型语言模型的双模型协作轻量级NL2SQL框架

    自然语言到SQL(NL2SQL)任务在大型语言...实验结果表明,Feather-SQL在BIRD数据集上提高了SLMs的NL2SQL性能,对于未微调的模型,性能提升了约10%。所提出的范式将SLMs的准确率上限提高到了54.76%,证明了其有效性。

    大型语言模型能否作为数据库接口? 一个用于大规模数据库支持的Text-to-SQL基准测试

    为了缓解这一差距,我们提出了 BIRD , 一个针对大规模数据库支持的文本到SQL任务的大规模基准测试,包含 12,751 个文本到SQL对和 95 个数据库,总大小为 33.4 GB , 涵盖 37 个专业领域。我们强调数据库值的重要性,...

    flybird-windows-arm64.exe window平台arm64架构免费数据库MySQL管理软件

    FlyBird Database Manager 是一款MySQL管理工具。 推荐度5颗星,非常值的尝试的MySQL管理软件。 优点有: 免安装, 基于浏览器,支持导出Excel, CSV, SQL多种格式数据。 相比navicat dbeaver , workbench 更加轻量化...

    ### 【自然语言处理】基于强化学习的部分奖励优化Text-to-SQL任务:推理-SQL系统设计与性能提升

    实验结果显示,该方法在多个基准测试中超越了现有方法,特别是在BIRD基准测试中,14B参数的模型性能优于更大规模的专有模型。 适合人群:具备一定机器学习和自然语言处理基础的研究人员和技术人员,尤其是对强化学习...

    ExCoT:通过执行反馈优化Text-to-SQL的推理

    尽管大型语言模型(LLMs)在许多推理任务中表现出色,但它们在Text-to-SQL任务中利用链式思维(CoT)推理的能力仍需进一步探索。我们发现了几个关键限制:零样本CoT几乎没有改进,而直接偏好优化(DPO)在不结合CoT...

    LinkAlign: 针对真实世界大规模多数据库文本转SQL任务的可扩展模式链接方法

    模式链接是实现文本转SQL任务中人类水平性能的关键瓶颈,特别是在真实世界的大规模多数据库场景中。解决模式链接面临两个主要挑战:(1) 数据库检索 : 在多数据库设置中从大量模式池中选择正确的数据库,同时过滤掉...

    Text-to-SQL的理性化模型

    在人工智能领域,Text-to-SQL(T2S)技术旨在将自然语言问题转换为结构化查询语言(SQL)查询,以便从数据库中检索信息。随着大语言模型(LLMs)的不断发展,T2S任务取得了显著进展,但与人类水平相比仍有差距。为了...

    蛋蛋助手v1.50+DOscan+Bird

    本文将深入探讨“蛋蛋助手v1.50”、“DOscan”以及“Bird”这三款工具的功能特性及其在实际工作中的应用,帮助读者更好地理解和利用这些工具。 首先,让我们关注“蛋蛋助手v1.50”。这个版本的更新主要在于新增了...

Global site tag (gtag.js) - Google Analytics