`
flybird1985
  • 浏览: 8054 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

BeanGenerator_3

 
阅读更多
	/**
	 * Step 1:根据beanExcelPath路径,导入所有Bean到beans
	 */
	private void importBeans() {
		Bean bean = null;
		//获取页签个数,从第二个页签开始,每个页签为一个bean
		int sum = this.hssfWorkbook.getNumberOfSheets();
		for (int excelBeanIndex = 1; excelBeanIndex < sum; excelBeanIndex++) {
			//将页签内容解析生成bean
			bean = importBean(excelBeanIndex);
			beans.add(bean);
		}
	}

	private Bean importBean(int excelBeanIndex) {
		Bean bean = null;
		String beanName = null;
		String beanNote = null;
		String since = null;
		String version = null;
		String author = null;
		List<Parameter> parameters = new ArrayList<Parameter>();
		Parameter parameter = null;
		String parameterName = null;
		String parameterNote = null;
		String parameterClazz = null;
		int beginParameter = 1;

		hssfSheet=hssfWorkbook.getSheetAt(excelBeanIndex);
		beanName = hssfWorkbook.getSheetName(excelBeanIndex);
		beanNote = cellValue(0, 1);
		since = Util.date2String(new Date(), "yyyy/MM/dd");
		version = cellValue(0, 3);
		author = cellValue(0, 4);

		while (true) {
			parameterName = cellValue(beginParameter+1, 0);
			if (Util.isNullOrEmpty(parameterName))
				break;
			parameterNote = cellValue(beginParameter+1, 4);
			// TODO 数据库字段类型转换成java基本类型
			parameterClazz = cellValue(beginParameter+1, 1);
			parameter = new Parameter(parameterName, parameterNote,
					parameterClazz);
			parameters.add(parameter);
			beginParameter++;
		}

		bean = new Bean(beanName, beanNote, since, version, author, parameters);
		return bean;
	}

	/**
	 * Step 2:根据模板地址,返回模板的字符串
	 * @param templatePath 某一个模板地址
	 * @return 读出模板的所有字符
	 */
	private String importTemplate(String templatePath, Bean bean) {
		String s, temp = new String(), result = new String();
		try {
			bufferedReader = new BufferedReader(new FileReader(templatePath));
			while ((s = bufferedReader.readLine()) != null) {
				if (s.indexOf(PARAMETER_FOR_BEGIN) > 0) {
					while (true) {
						s = bufferedReader.readLine();
						if (s == null || s.indexOf(PARAMETER_FOR_END) > 0)
							break;
						temp += s + "\n";
					}
					result += convertBean(temp, bean);
					temp = "";
				} else {
					result += convert(s, bean) + "\n";
				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return result;
	}

	private String convertBean(String s, Bean bean) {
		String result = "";
		String temp;
		List<Parameter> parameters = bean.getParameters();
		for (Parameter parameter : parameters) {
			temp = s;
			result += converParameter(temp, parameter);
		}
		return result;
	}

 

分享到:
评论

相关推荐

    cglib 动态代理

    cglib 动态代理 完整代码

    Database Bean Generator-开源

    generator 是一个 Java 实用程序,用于从 DataBase 生成 Java bean,以自动创建基于数据库的小应用程序,不需要很大的持久性问题

    JavaBeanGenerator

    直接输入java SqlToBean会出现如下帮助信息:H:BeanGenerator&gt;java SqlToBean/**@author godblessyou@Date: 2005-05-06@OICQ: 345343747@param s:sourceFile &quot;demo.sql&quot; NaviCat导出的sql脚本文件,最好与...

    基于jsp+servlet+mysql的javaweb健身房俱乐部系统

    包括系统管理后台和前端动态网页的设计搭建。系统管理后台提供给俱乐部员工使用,可以对俱乐部的课程、器材、房间等进行管理维护;前端网页主要提供给消费者使用,可以在线浏览课程、预约上课等。 技术栈:JavaScript,Mysql 数据库,JSP、tomcat、HTML、CSS。

    Tomcat安装配置基础详细教程讲解.docx

    tomcat安装及配置教程 Tomcat安装配置基础详细教程讲解.docx

    51单片机智能百叶窗项目

    51单片机智能百叶窗项目

    PHP课程网站络管理系统

    PHP课程网站络管理系统

    2023年上半年度TikTok行业白皮书电子版.zip

    2023年上半年度TikTok行业白皮书电子版.zip

    扩展卡尔曼滤波算法的python代码实现与解读.docx

    卡尔曼滤波算法 扩展卡尔曼滤波(Extended Kalman Filter, EKF)是卡尔曼滤波的一种扩展,用于解决非线性系统的状态估计问题。EKF通过局部线性化非线性函数来近似非线性系统的行为,从而应用标准的卡尔曼滤波算法。下面是一个简单的扩展卡尔曼滤波算法的Python实现示例,以及对其核心步骤的解读。 ### Python代码实现 ```python import numpy as np def ekf(x, P, measurement_func, measurement_jacobian, control_input=None, control_jacobian=None, measurement=None, R=None, Q=None): """ 扩展卡尔曼滤波算法实现 参数: x: 上一时刻的状态估计值,维度为(n,)的np.array P: 上一时刻的协方差矩阵,维度为(n,n)的np.array measurement_func: 非线性测量模型函数,输入状态输出测量值 measureme

    tomcat安装及配置教程

    tomcat安装及配置教程

    《2022_电商出海营销白皮书》.zip

    《2022_电商出海营销白皮书》.zip

    Python课设-学生信息管理系统

    Python课设-学生信息管理系统

    产品设计塑胶类螺丝柱设计标准,适合新手使用

    适合塑胶类产品设计:内容1:自攻螺丝塑胶孔设计,塑胶螺丝孔设计尺寸要求,十二种经典的螺栓防松设计,螺纹及螺纹连接件 ,螺丝柱设计,螺丝制作工艺及设计准则详述.,螺丝与塑胶柱的基本设计要求,螺丝设计选用规范,螺丝设计标准解析,螺丝孔设计标准,螺丝及塑胶螺丝柱的设计.,螺丝标准,螺丝柱设计,等

    QT实时数据曲线Plot

    1、QT界面布局学习 2、Custom Plot组件学习 3、Custom Plot组件示例 4、Custom Plot组件二次开发

    基于uni-app的垃圾分类精灵的设计与实现源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    TikTok直播运营分享1_20231126105338.zip

    TikTok直播运营分享1_20231126105338.zip

    CANON打印机清零软件合集

    目前为止几乎包含 Service Tool 工具的所有版本,支持CANON目前为止的所有型号

    FPGA Verilog PLL锁相环 FIFO同步 ip核调用 仿真工程

    FPGA Verilog PLL锁相环 FIFO同步 ip核调用 仿真工程 FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,允许用户根据设计需求配置其内部逻辑。在FPGA中,Verilog是一种硬件描述语言,用于编写数字电路的逻辑设计。PLL(Phase-Locked Loop)是FPGA中常用的一种频率合成技术,它通过锁定相位来同步不同信号源,常用于时钟管理和频率分频。 锁相环(PLL)在Verilog中实现通常包括电压控制振荡器(VCO)、分频器、鉴相器和低通滤波器等模块。PLL设计的关键在于调整这些模块参数,以达到所需的输出频率和相位关系。 FIFO(First-In-First-Out)是一种常用的存储结构,用于在不同时钟域之间传递数据,解决时钟域间的同步问题。在FPGA设计中,FIFO的Verilog实现会涉及到读写指针管理和深度控制,确保数据的正确存取。 在FPGA设计中,经常需要调用预定义的IP(Intellectual Property)核,如PLL和FIFO IP,这些核由供应商提供,经过验证,可以直接集成到设计中。

    《2023_TikTok_for_Business_社群电商爆品营销白皮书》.zip

    《2023_TikTok_for_Business_社群电商爆品营销白皮书》.zip

    高校思想政治理论课教师研究专项教学方法改革择优推广项目.doc

    高校思想政治理论课教师研究专项教学方法改革择优推广项目.doc

Global site tag (gtag.js) - Google Analytics