`
木哥哥
  • 浏览: 7624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

大家都进来看看,这两种方案哪个可行?哪个效率更高?

阅读更多
场景描述:

大伙不都搞数据库嘛,数据库里总要设置参数的吧?嗯,对,这两个方案就是设置参数用的。
我不是一直搞.net的嘛,所以对SqlHelper有好感,这两种实现就是其中的一个方法。

方案一:(这个是我在网上找到的)
/**
	 * @param pstmt
	 * @param cmdtext
	 * @param params
	 *            Object[]
	 * @throws Exception
	 */
	private static void prepareCommand(PreparedStatement pstmt, Object[] params)	throws Exception 
	{
		if(params == null || params.length == 0)
		{
			return;
			
			
		}
		for (int i = 0; i < params.length; i++) 
		{
			try 
			{
				pstmt.setDate(i + 1, java.sql.Date.valueOf(params[i]));
			}
			catch (Exception e) 
			{
				try 
				{
					pstmt.setDouble(i + 1, Double.parseDouble(params[i]));
				}
				catch (Exception e1) 
				{
					try 
					{
						pstmt.setInt(i + 1, Integer.parseInt(params[i]));
					}
					catch (Exception e2) 
					{
						try 
						{
							pstmt.setString(i + 1, params[i]);
						} 
						catch (Exception e3) 
						{
							System.out.print("SQLHelper-PrepareCommand Err1:"	+ e3);
						}
					}
				}
			}
		}
	}




方案二:(这个是我写的,因为我感觉那么多try...catch简直要摧毁我的意志,虽然反射也很费吧……)
/**
	 * 
	 * @param pstm
	 * @param params
	 */
	public static void prepareCommand(PreparedStatement pstm,Object[] params)
	{
		if(params == null || params.length == 0)   
        {   
            return;   
        }   

		try
		{
			for(int i = 0;i < params.length;i++)
			{
				int parameterIndex = i + 1;
				//String
				if(params[i].getClass() == String.class)
				{
					pstm.setString(parameterIndex, params[i].toString());
				}
				//Short
				else if(params[i].getClass() == short.class)
				{
					pstm.setShort(parameterIndex, Short.parseShort(params[i].toString()));
				}
				//Long
				else if(params[i].getClass() == long.class)
				{
					pstm.setLong(parameterIndex, Long.parseLong(params[i].toString()));
				}
				//Integer
				else if(params[i].getClass() == Integer.class)
				{
					pstm.setInt(parameterIndex, Integer.parseInt(params[i].toString()));
				}
				//Date
				else if(params[i].getClass() == Date.class)
				{
					java.util.Date dt = (java.util.Date)params[i];
					pstm.setDate(parameterIndex, new java.sql.Date(dt.getTime()));
				}
				//Byte
				else if(params[i].getClass() == byte.class)
				{
					pstm.setByte(parameterIndex, (Byte)params[i]);
				}
				//Float
				else if(params[i].getClass() == float.class)
				{
					pstm.setFloat(parameterIndex, Float.parseFloat(params[i].toString()));
				}
				//Boolean
				else if(params[i].getClass() == boolean.class)
				{
					pstm.setBoolean(parameterIndex, Boolean.parseBoolean(params[i].toString()));
				}
				else
				{
					throw new Exception("参数准备出错:数据类型不可见" + params[i].getClass().toString());
				}
			}
		}
		catch(Exception e)
		{
		}
	} 
分享到:
评论
5 楼 andot 2009-02-12  
try是性能杀手!
4 楼 抛出异常的爱 2009-02-12  
木哥哥 写道
场景描述:

分类:笑话.
andot 写道
try是性能杀手!

一点优默感没有
3 楼 xuyao 2009-02-12  
真的很有技术含量,hang~~~~
2 楼 gembler 2009-02-12  
木哥哥 写道
对于一个.net转java的新手来说,能写出这么有技术含量的帖子是很不容易的,还请不要扔到分类里……

完了·世界末日了
1 楼 木哥哥 2009-02-12  
对于一个.net转java的新手来说,能写出这么有技术含量的帖子是很不容易的,还请不要扔到分类里……

相关推荐

    驾驶检测方案可行性分析报告1

    驾驶检测方案可行性分析报告主要探讨了两种不同的驾驶模式检测方法,分别是基于SVM的驾驶习惯检测和参照Duke大学论文的分步动作检测。以下是这两种方案的详细分析: 方案一:基于SVM的驾驶习惯检测 该方案的核心是...

    黑蕃茄可行性研究方案报告.doc

    【黑蕃茄可行性研究方案报告】 本报告详细探讨了新洲区集街新河村实施黑番茄种植项目的可行性,旨在挖掘黑番茄的经济效益与健康效益,推动农业科技发展,提升农产品竞争力,同时也为当地农业工业化进程贡献力量。 ...

    超市购物管理系统可行性分析报告

    总的来说,这个超市购物管理信息系统结合了实体超市与网络购物的优势,旨在提供更高效、更便捷的购物体验,同时也考虑到了经济可行性。尽管面临挑战,但其潜在的利益和市场前景使其值得进一步研发和完善。希望这个...

    校园综合信息管理系统可行性研究

    又考虑到所有计算机硬件软件都是存在出错可能的(具体到这个系统,由于其需要不间断的运行,所以其出错的可能就会变得更大),因此整个系统应该考虑使用双机热备份技术。使用两台服务器同时运行,一个为主一个作备份...

    济南客车技术整备所方案设计的体会.pdf

    下行系统的混合式方案虽然初期投资较高,但由于运营成本低、能够有效利用既有资源,在长远角度来看更具可行性。 #### 四、结论 通过对济南客车技术整备所方案设计的深入探讨,可以发现: - **整体布局**:综合考虑...

    电子商务网站可行性研究报告

    - **现有模式**:当前行业B2B网站主要依靠广告和会员服务两种模式盈利,这也是最为成熟的业务模式。 - **未来趋势**:除了现有的业务模式外,还可以尝试在线交易、行业社区服务、技术咨询服务等多种形式,虽然这些...

    两种VIENNA整流器控制策略比较.docx

    VIENNA整流器的控制策略,尤其是传统型和采用空间电压矢量脉宽调制(SVPWM)技术的VIENNA整流器,是两种典型的代表,它们在电力电子转换系统中有着不同的应用场景和性能表现。 传统VIENNA整流器的拓扑结构为三相三...

    迷宫问题(栈及递归两种实现方式)

    这两种方法各有特点,下面将详细介绍这两种实现方式及其优缺点。 首先,我们来看递归实现。递归是一种强大的编程技巧,它通过函数自身调用自身来解决问题。在迷宫问题中,我们可以定义一个函数,该函数接受当前位置...

    精品专题(2021-2022年收藏)LNG加气站建设方案.doc

    针对不同的建站条件和需求,这两种卸车方式可以灵活组合,以平衡成本和效率。 储罐调压流程的优化同样是确保加气站高效运作的重要环节。调压流程的设计需充分考虑储罐内的饱和蒸气压,以及加气站的特定需求。潜液泵...

    运输模型方案的评估.pptx

    有两种主要的测试方法: 1. **踏石法**:评估矩阵中的每一个未分配单元格,看看通过调整这些单元格的分配是否可以降低总成本。例如,如果将1-A单元格增加一个单位,会引发一系列的连锁反应,需要检查这是否会导致总...

    居民供暖天然气锅炉方案.docx

    本篇文章将从多个维度分析居民供暖天然气锅炉方案的可行性,以期为****县乃至更广范围内的供暖问题提供参考。 首先,该方案的提出是基于对当前供暖现状的深入分析。****县的供暖面积达到160万平方米,主要由两家...

    花作文之花卉可行性报告.docx

    蝴蝶兰分为白花和桃红两种,经过改良后,出现了更多色彩和图案的品种。此外,报告还暗示了其他几种花卉品种,但未具体列出。 工程效益部分强调了花卉种植的多重价值。首先,花卉种植可以提升科技水平,促进农户的...

    垃圾垃圾碳化可行性报告.pdf

    《垃圾碳化可行性研究报告》提出了一种新型的垃圾处理技术——垃圾碳化技术,旨在将可燃垃圾转化为“人造碳”,提供了一条环保与资源利用并重的新路径。 垃圾碳化技术的核心在于通过一系列的物理和化学变化,实现...

    改方案随笔——传统住宅及装配式住宅建筑设计方法之不同.doc

    【传统住宅与装配式住宅设计方法比较】 随着建筑业的不断发展,装配式住宅作为一种新型建筑模式,正逐渐改变着...然而,这也对设计师提出了更高的要求,需要他们在满足功能和美观的同时,兼顾预制构件的生产与安装。

    球罐搬迁施工方案.pdf

    球罐是储存大量易燃易爆液体化学品的重要设备,其搬迁不仅涉及复杂的工艺流程,还必须确保安全性、高效率和低成本。本文将围绕华鲁恒升化工股份有限公司大型氮肥装置国产化技术改造工程中两台400立方米球罐的搬迁...

    基于大数据处理的模式匹配算法效率分析.pdf

    这两种模型有助于明确不同模式匹配算法的特点和差异,并为后续分析提供理论基础。 文章中还提及了多种用于判断匹配过程状态的表格,比如Goto表、Fail表、Output表。这些表格对于算法实现中的状态转移和输出判断至关...

    2001101_商业计划书_可行性报告.doc

    在敷设技术的选择上,无补偿直埋和一次性补偿两种方式,各有其适用的场景和优势。无补偿直埋方式在城市生活小区等对经济性和安全性有较高要求的场合尤为适用,其依靠土壤与外套管之间的摩擦阻力来固定管道,无需额外...

    企业清洁生产审核培训考试题(参考答案)借鉴.pdf

    中/高费方案虽然在初期需要较大的投资,但长期来看会带来更大的环境和经济效益;而无/低费方案则更易于短期内实施,能够快速见到成效。无论哪种方案,都应基于定量分析,充分考虑物流、能源流、水平衡以及污染因子...

    均匀设计法与有限元网格划分结合的可行性

    如果两种方法得到的应力变化图基本吻合,那么就可以证明均匀设计与有限元网格划分结合的可行性。 均匀设计法与有限元网格划分结合的方法,不仅提供了一个自动化的网格划分优化方案,还提供了一种将理论分析与计算...

Global site tag (gtag.js) - Google Analytics