




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Ap riori学姓专教口号名业师算法实验报告计算机应用技术计算机学院6APRIORI实验 .1.1实验背景 .1.1.1 国内外研究概况 .1.1.2 发展趋势 .1.2实验内容与要求. .实验内容 .实验要求 .实验目的 .算法分析与实验环境1.2.11.2.21.2.3APRIORI2.1 APRIORI算法的描述.2.2 APRIORI算法的步骤.2.3开发环境 .2.3.1 软件环境 .2.3.2 硬件环境 .2.4本章小结 .算法的设计 .3.1 APRIORI算法整体框架3.2主要的数据结构与函数3.2.13.2.2数据结构 .主要的程序 .连接与剪枝操作3.2.33.3本章小结
2、 .数据库的设计与数据的来源. .4.1正确性验证数据 .4.2实验数据 .4.3本章小结 .实验结果与性能分析 .5.1 APRIORI实验界面 .5.2实验的正确性验证. .5.3实验性能分析. .5.3.1 固定最小支持度改变数据量 .5.3.2 固定数据量改变最小支持度 .5.3.3 实验结果分析 .5.4本章小结 .总结与体会 .目录1 Apriori实验1.1实验背景现在,数据挖掘作为从数据中获取信息的有效方法,越来越受到人们的重 视。关联规则挖掘首先是用来发现购物篮数据事务中各项之间的有趣联系。从那 以后,关联规则就成为数据挖掘的重要研究方向,它是要找出隐藏在数据间的相 互关系。
3、目前关联规则挖掘的研究工作主要包括:Apriori算法的扩展、数量关 联规则挖掘、关联规则增量式更新、无须生成候选项目集的关联规则挖掘、最大 频繁项目集挖掘、约束性关联规则挖掘以及并行及分布关联规则挖掘算法等。关联规则的挖掘问题就是在事务数据库D中找出具有用户给定的满足一定条件的最小支持度Minsup和最小置信度Minconf的关联规则。1.1.1国内外研究概况1993年,Agrawal等人首先提出关联规则概念,关联规则挖掘便迅速受到数 据挖掘领域专家的广泛关注.迄今关联规则挖掘技术得到了较为深入的发展。Apriori算法是关联规则挖掘经典算法。针对该算法的缺点,许多学者提出了改 进算法,主要
4、有基于哈希优化和基于事务压缩等。1.1.2发展趋势关联规则挖掘作为数据挖掘的重要研究内容之一,主要研究事务数据库、关 系数据库和其他信息存储中的大量数据项之间隐藏的、有趣的规律。关联规则挖掘最初仅限于事务数据库的布尔型关联规则,近年来广泛应用于关系数据库 因此,积极开展在关系数据库中挖掘关联规则的相关研究具有重要的意义。来,已经有很多基于Apriori算法的改进和优化。研究者还对数据挖掘的理论进 行了有益的探索,将概念格和粗糙集应用于关联规则挖掘中, 获得了显着的效果。近年到目前为止,关联规则的挖掘已经取得了令人瞩目的成绩,包括:单机环境下的 关联规则挖掘算法;多值属性关联规则挖掘;关联规则更
5、新算法;基于约束条件 的关联规则挖掘;关联规则并行及分布挖掘算法等。1.2实验内容与要求1.2.1实验内容集以及关联规则,实现可视化。并用课堂上PPT的实例测试其正确性。1.2.2实验要求1、程序结构:包括前台工具和数据库;2、设定项目种类为10个,随机产生事务,生成数据库;3、正确性验证(可用课堂上的例子)4、算法效率的研究:在支持度固定数据量不同的时候测量运行时间;在数据量固定,支持度不同的时候测量运行时间;5、注意界面的设计,输入最小支持度和最小可信度,能够输出并显示频繁项目集以及关联规则。1.2.3实验目的1、加强对Apriori算法的理解;2、锻炼分析问题、解决问题并动手实践的能力。
6、编 程 实 现Apriori算法要求使用a,b,c,d,e,f,g,h,10个项目随机产生数据记录并存入数据库。从数据库读取记录进行Apriori实验,获得频繁算法是一种找频繁项目集的基本算法。其基本原理是逐层搜索的迭 代:频繁K项Lk集用于搜索频繁(K+1)项集Lk+1,如此下去,直到不能找到维 度更高的频繁项集为止。这种方法依赖连接和剪枝这两步来实现。算法的第一次 遍历仅仅计算每个项目的具体值的数量,以确定大型l项集。随后的遍历,第k次遍历,包括两个阶段。首先,使用在第(k-1)次遍历中找到的大项集Lk-1和产 生候选项集Ck。接着扫描数据库,计算Ck中候选的支持度。用Hash树可以有效
7、地确定Ck中包含在一个给定的事务t中的候选。如果某项集满足最小支持度,则 称它为频繁项集。2.2 Apriori算法的步骤步骤如下:1、设定最小支持度s和最小置信度c;2、Apriori算法使用候选项集。首先产生出候选的项的集合,即候选项集,若候选项集的支持度大于或等于最小支持度,则该候选项集为频繁项集;3、在Apriori算法的过程中,首先从数据库读入所有的事务,每个项都被看 作候选1-项集,得出各项的支持度,再使用频繁1 -项集集合来产生候选2-项集集合,因为先验原理保证所有非频繁的1-项集的超集都是非频繁的;4、再扫描数据库,得出候选2-项集集合,再找出频繁2-项集,并利用这些频 繁2-
8、项集集合来产生候选3-项集;5、重复扫描数据库,与最小支持度比较,产生更高层次的频繁项集,再从该集 合里产生下一级候选项集,直到不再产生新的候选项集为止。2.3开发环境2.3.1软件环境(1)编程软件:Jdk开发包+eclipse集成开发环境Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而2 Apriori算法分析与实验环境2.1 Apriori算法的描述Apriori言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK。(2)数据库软件:SQ
9、L Server 2008SQLServer 2008在Microsoft的数据平台上发布, 可以组织管理任何数据。可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对数 据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备, 用管数据存储在哪里。(3)办公软件:Excel 2010Excel是一款试算表办公 软件。它是微软办公套装软件office的重要的组成部分,它是集统计分析、数据处理和辅助决策等功能于一身,现在金融、统计财 经、管理等众多领域广泛应用。本实验主要用来为固定数据量改变最小支持数以 及固定最小
10、支持数改变数据量两种情况进行时间分析提供可视化图表。2.3.2硬件环境装有Windows 7旗舰版电脑。2.4本章小结本章的内容主要是为了引出本实验的主要算法以及对算法的实现环境做了 介绍。它都可以控制数据而不3算法的设计3.1 Apriori算法整体框架图3.1 Apriori实验流程图3.2主要的数据结构与函数3.2.1数据结构class Transactionpublic int pid;public String itemset;该类表示表中的一条记录。class Daopublic ArrayList Query(String sql)该类用于访问数据库操作。class Kfppub
11、lic char kfpstr=new charApriori.ITEMSIZE;public int index=-1;public int support=0;public boolean isfp=true;HashMap KfpSuppor:频繁项目集及其对应的支持数HashMap guanlianguize:关联规则及其置信度3.2.3连接与剪枝操作对于连接操作的两个字符串(长度为k),它们必须有k-1个相同的字符才能 做连接操作。例如:abc和abd可以连接成abed,abd和bed可以连接成abed,而abc和ade就不可以做连接操作。整个连接过程类似归并排序中的归并操作对于任一
12、频繁项目集的所有非空子集也必须是频繁的,反之,如果某个候选该类代表一个频繁项目。3.2.2主要的程序Java中 最 常 用 的 集 合 类 是List和Map。List的 具 体 实 现 包 括ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List适用于按数值索引访问元素的情形。HashMap:Map接口的常用实现类,系统vkey,value当成一个整体进行处理,系统总是根据Hash算法来计算的存储位置,这样可以保证能快速存、取Map的对。ArrayList alTransactions:保存表中的所有记录ArrayList alKfp
13、sl:临时存储频繁项目的集合,存储连接后的结果ArrayList SureFpset:保存频繁k项集ArrayList SureFpsetPrio:保存频繁k-1项集ArrayList notFpList:保存一定不是频繁项目的集合,用于剪枝的非空子集不是频繁的,那么该候选集肯定不是频繁的,将其剪枝。3.3本章小结本章主要介绍了算法设计的整体流程并且也对主要程序和操作作了简要的说明。4数据库的设计与数据的来源本实验的数据均存储于数据库中。数据库yuzm中共产生6张表。表test为测试用表,用于程序的正确性验证。还有5张表存储随机产生的实验数据。其中 数据库的结构如下图所示。图4.1数据库结构正
14、确性验证数据表test为PPT上的实例,用于正确性验证。 数据的item个数为5,其中的长度等于商品种类,其中“0”表示该商品不存在, “1”全部数据如图4.2。图4.2表test实验数据5张表是通过算法随机产生的具有不同数据量的数据集,种,表的每一行都是一个“0”“1”的字符串,字符串长度等于商品种类,其中0”表示该商品不存在, “1”表示该商品存在。其中表data1共随机产生1万行数据,表data2产生5万行数据,表data3产生25万行数据,表data4产生50万行数据,表data5产生75万行数据。部分数据如图4.3。图4.3实验用表(部分)本章小结本章主要对数据库的设计与数据来源做出
15、了说明。九行数据均由SQL语句产生,表的每一行都是一个“0”1”的字符串,字符串表示该商品存在。表的假设商品种类为105实验结果与性能分析5.1 Apriori实验界面其中可信度可自由设置,默认为0.7。而支持度记为最小支持度与数据量的图5.1实验界面5.2实验的正确性验证图5.2正确性验证最终实验结果与ppt的结果相吻合,表明程序编写正确。5.3实验性能分析为了对本程序的实验进行性能分析,我们分别采用固定数据量改变最小支持数以及固定最小支持数改变数据量两种情况进行时间分析,其中最小置信度设为0.7不变。5.3.1固定最小支持度改变数据量设支持度为0.2,最小可信度为0.7。具体实验数据量与执
16、行时间如下:表5.1数据量对性能的影响数据量(万行)15255075时间(秒)48.2128.2366.9623.41032.3图5.3数据量对性能的影响5.3.2固定数据量改变最小支持度比例。实验数据可以下拉选择6张表中的任意一张。如下图所示:运行程序,我们选择表test,即可进行正确性验证,实验结果如下图:设实验数据量固定改变最小支持度,具体如下所示:表5.2最小支持度对性能的影响最小支持度0.150.200.250.300.35时间(秒/ 1万)175.64914.28.55.2时间(秒/ 5万)294.1128.258.841.525.7时间(秒/ 25万)531.3366.9246.
17、5185.6154.0图5.4最小支持度对性能的影响由以上实验我们可以看出,实验时间会随着数据量的增大而增大,并且随着 最小支持度的增大而减小。并且他们之间的变化类似于某种指数函数的变化趋 势。Apriori的时间主要消耗在4个方面:1、利用K频繁集连接产生K+1候选集时,判断连接的条件时比较的次数太多。假设项集个数为m的频繁集合Lk,判断连接条件时比较的时间复杂度为O(K*m2)。而且本实验的m都很大;2、对Ck中任意的一个c的k个(k-1)子集是否都在Lk-1中。在平均情况 下,对所有候选k项集需要扫描次数为|Ck|*|Lk-1|*k/23、为了得到所有的候选频集的支持度,需要扫描N次;4
18、、扫描一次数据库需时间0( k|T|)。|T|为交易数量,k交易长度5.4本章小结Ap riori算法因自身需要多次扫描数据库,并且经过复杂的连接剪枝操作而产生大量候选集以及进行大量的模式匹配计算的缺陷,使得其在I/O上的花费时 间很多,从而导致算法的效率不是太咼。6总结与体会通过本次实验,让我明白了什么是Apriori算法和数据之间的关联性,Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法,为以后进步学习数据挖掘知识打下了良好的基础。同时我也更加深刻理解了 原理及其实现的内部细节,同时通过实现这一经典的数据挖掘算法,也让我更深 刻的体会到数据挖掘对于知识发现的重要性,尽管实现
19、了算法,但其中可能还有 可以改进的地方,尤其是程序的运行效率方面。Apriori算法实验不仅使得我对该算法的理解更加上升了一个层次,同时也使得我更加了解了 使用更加得心应手。public class Apriori extends JFrame implements ActionListener/ public static intITEMSIZE=10;public final int FRAMEWIDTH=800;public final int FRAMEHEIGHT=600;/JPanel up=null;JPanel up_up=null;TextField textFieldNam
20、e=null;JPanel up_down=null;JPanel up_down_left=null;JLabel conflabel=null;JLabel c1=null;JLabel c2=null;Apriori算法的java编程语言,JLabel c3=null;JLabel c4=null;JLabel c5=null;JLabel c6=null;JLabel c7=null;JLabel c8=null;JTextField conf=null;JLabel supportlabel=null;JTextField support=null;JPanel up_down_ri
21、ght=null;JComboBox jComboBoxDateSize=null;/下拉框JButton jButtonMine=null;JPanel down=null;TextArea textArea=null;int fpstep=1;int fpindex=0;Dao dao=null;double MinSupport=0.20;double MinConfi=0.70;double DateSize=9.0;ArrayList alTransactions=null;ArrayList alKfps=null;ArrayList notFpList=null;ArrayLis
22、t SureFpset=null;ArrayList SureFpsetPrio=null;HashMap KfpSupport=null;ArrayList alsurekfpstr=null;HashMap guanlianguize=null;ArrayList isaddarrStrings=null;int AuxArr=null;public static void main(String args)Apriori A=new Apriori();public Apriori()JPanel up=new JPanel(new GridLayout(2, 1);JPanel up_
23、up=new JPanel(new GridLayout(1, ITEMSIZE);/TextField textFieldName=new TextFieldITEMSIZE;/for(int i=0;iITEMSIZE;i+) / / textFieldNamei=new TextField();/ up_up.add(textFieldNamei);/ c1=new JLabel( up_up.add(c1);up_up.add(c2);c3=new JLabel(up_up.add(c3);up_up.add(c4);up_up.add(c5);c6=new JLabel(up_up.
24、add(c6);up_up.add(c7);up_up.add(c8);up_down=new JPanel(new GridLayout(1, 2);up_down_left=new JPanel(new GridLayout(1, 4);conflabel=new JLabel(可信度:);conf=new JTextField();c2=new JLabel(据);c4=new JLabel(掘);c5=new JLabel(实);c7=new JLabel();c8=new JLabel(Apriori);conf.setText(0.7);supportlabel=new JLabe
25、l(支持度:);support=new JTextField();support.setText(0.2);up_down_left.add(conflabel);up_down_left.add(conf);up_down_left.add(supportlabel);up_down_left.add(support);up_down_right=new JPanel(new GridLayout(1, 2);jComboBoxDateSize=new JComboBox();/下拉框jComboBoxDateSize.addItem(test);jComboBoxDateSize.addI
26、tem(data1);jComboBoxDateSize.addItem(data2);jComboBoxDateSize.addItem(data3);jComboBoxDateSize.addItem(data4);jComboBoxDateSize.addItem(data5);jComboBoxDateSize.addActionListener(this);jButtonMine=new JButton(开始挖掘);jButtonMine.addActionListener(this);up_down_right.add(jComboBoxDateSize);up_down_righ
27、t.add(jButtonMine);up_down.add(up_down_left);up_down.add(up_down_right);up.add(up_up);up.add(up_down);down=new JPanel(new BorderLayout() ;textArea=new TextArea();/textArea.setFont(new Font(Font.DIALOG,Font.ITALIC , 20);textArea.setFont(new Font(Font.DIALOG,Font.PLAIN , 20);down.add(textArea);this.se
28、tLayout(new BorderLayout();this.setSize(FRAMEWIDTH, FRAMEHEIGHT);this.setLocation(100, 100);this.setSize(this.FRAMEWIDTH, this.FRAMEHEIGHT);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setTitle(Apriori);/up.setSize(this.FRAMEWIDTH, 100);this.add(up,BorderLayout.NORTH);/down.setLocation(0
29、, 100);/down.setSize(this.FRAMEWIDTH, this.FRAMEHEIGHT-100);this.add(down);this.setVisible(true);public void InitDate(String table)fpstep=1;AuxArr=new intITEMSIZE+1ITEMSIZE+1;alKfps=new ArrayList();notFpList=new ArrayList();SureFpset=new ArrayList();SureFpsetPrio=new ArrayList();dao=new Dao();KfpSup
30、port=new HashMap();alsurekfpstr=new ArrayList();guanlianguize=new HashMap();isaddarrStrings=new ArrayList();alTransactions=dao.Query(select * from +table);this.DateSize=alTransactions.size();public void ShowkFp(ArrayList SureFpset) intsteptemp=fpstep;textArea.a ppen d(频繁+(ste ptemp)+项集rn);for(int i=
31、0;iSureFpset.size();i+)Kfp k=SureFpset.get(i);int tempindex=k.index;public void ShowkFp2(HashMap SureFpset)textArea.append(关联规则rn);Set keys=(Set) SureFpset.keySet();for(String keyString:keys)rn);public void DataMine()int fpsteptemp=0;Stringstring=String.copyValueOf(k.kfpstr,0,+tempindex);int support
32、=KfpSupport.get(string);rn);textArea.append(keyString+SureFpset.get(keyString)+if(fpstep = 1)for(int i=0;iApriori.ITEMSIZE;i+)Kfp kfp=new Kfp();kfp.kfpstr+kfp.index=(char) (a+i);kfp.support=0;kfp.isfp=false;alKfps.add(kfp);DealSupport();SaveNotFpBySupport();SaveSureFp();ShowkFp(alKfps);fpstep+;while
33、(!alKfps.isEmpty()alKfps.clear();for (int i = 0; i SureFpset.size(); i+)0, +tempindex);Kfp k1 = SureFpset.get(i);for (int j = i + 1; j SureFpset.size();j+)Kfp k2 = SureFpset.get(j);Kfp resultKfp = Joint(k1,k2);inttempindex=resultKfp.index;Stringstring=String.copyValueOf(resultKfp.kfpstr,if(string.ch
34、arAt(0) =0)continue;SubSet subSet= new SubSet();ArrayListalStrings=subSet.displaySubSet1(string.toCharArray();int p=0;for(;palStrings.size();p+)Stringstring2=alStrings.get(p);if(notFpList.contains(string2)break;if(p !=alStrings.size()continue;if(!isaddarrStrings.contains(string)isaddarrStrings.add(s
35、tring);alKfps.add(resultKfp);SureFpsetPrio.clear();for(int i=0;iSureFpset.size();i+)SureFpsetPrio.add(SureFpset.get(i);Guanlianguize();SureFpset.clear();DealSupport();SaveNotFpBySupport();/ Cut();if (!alKfps.isEmpty()SaveSureFp();ShowkFp(SureFpset);fpstep+;public void Guanlianguize()for(int i=0;iSur
36、eFpsetPrio.size();i+)Kfp k=SureFpsetPrio.get(i);int len = k.index;String string=String.copyValueOf(k.kfpstr, 0, len+1);if(!alsurekfpstr.contains(string)alsurekfpstr.add(string);SubSet s=new SubSet();for(int i=0;ialsurekfpstr.size();i+)String kfpstr=alsurekfpstr.get(i);char kfpchararr=kfpstr.toCharAr
37、ray();ArrayListaList=s.SubSet3(kfpchararr,kfpstr.length();for(int j=0;jaList.size();j+)String guizetemp=;String kfpstr1=aList.get(j);char kfpchararr1=kfpstr1.toCharArray();int indexinkfp=0;int indexinchararr1=0;while(indexinkfp kfpchararr.length &indexinchararr1 kfpchararr1.length)if(kfpchararr1
38、indexinchararr1kfpchararrindexinkfp)guizetemp=guizetemp+kfpchararrindexinkfp;indexinkfp+;elseindexinchararr1+;indexinkfp+;while(indexinkfp MinConfi)String temp=kfpstr1+-+guizetemp;guanlianguize.put(temp,support1/support2);ShowkFp2(guanlianguize);alsurekfpstr.clear();guanlianguize.clear();public Kfp
39、Joint(Kfp k1,Kfp k2)Kfp resultKfp=new Kfp();int temp_len=k1.index+1;char temp1=new chartemp_len;char temp2=new chartemp_len;for(int i=0;i=k1.index;i+)temp1i=k1.kfpstri;temp2i=k2.kfpstri;SubSet s=new SubSet();ArrayList alStrings1=s.SubSet2(temp1,fpstep);ArrayList alStrings2=s.SubSet2(temp2,fpstep);ch
40、ar result=new chartemp_len+1;boolean flag=false;for(int i=0;itemp2q)resultj+=temp2q;q+;if(p != temp1.length & q != temp2.length & temp1p= temp2q)if(resultj+=temp2q;q+;p+;if(p != temp1.length & q != temp2.length & temp1p temp2q)resultj+=temp1p;p+;if(p temp1.length)while(p!=temp1.lengt
41、h)resultj+=temp1p+;if(q temp2.length)while(q!=temp2.length)resultj+=temp2q+;flag=true;if(flag = true)break;for(int i=0;itemp_len+1;i+)resultKfp.kfpstr+resultKfp.index=resulti;return resultKfp;public void DealSupport()int len=alTransactions.size();for(int i=0;ilen;i+)Transaction t=alTransactions.get(
42、i);String itemset=t.itemset;int num=0;char tempchar=new charITEMSIZE;for(int i1=0;i1itemset.length();i1+)if(itemset.charAt(i1) = 1)tempcharnum=(char) (a+i1);num+;if(num fpstep)continue;char of1char=new charnum;for(int i3=0;i3num;i3+)of1chari3=tempchari3;ArrayList alListsunset=null;SubSet suSet=new S
43、ubSet();alListsunset=suSet.displaySubSet(of1char, fpstep);for(int p=0;palKfps.size();p+)Kfp kfp=alKfps.get(p);int tempindex=kfp.index;if(alListsunset.contains(string)kfp.support+;+tempindex);Stringstring=String.copyValueOf(kfp.kfpstr,0,public void Cut() public void SaveSureFp()for(int i=0;ialKfps.si
44、ze();i+)Kfp k=alKfps.get(i);SureFpset.add(k);int len=k.index;String string=String.copyValueOf(k.kfpstr,0, len+1);KfpSupport.put(string, k.support);public void SaveNotFpBySupport()for(int i=0;ialKfps.size();i+)Kfp kfp=alKfps.get(i);double tempSupport=kfp.support/(double)DateSize;if(tempSupport MinSup
45、port)kfp.isfp=false;char tempchar=kfp.kfpstr;notFpList.add(string);alKfps.remove(i);i=i-1;private int Numof1intstr(String str,charof1char)int num=0;char tempchar=new charITEMSIZE;for(int i=0;istr.length();i+)if(str.charAt(i) = 1)Stringstring=String.copyValueOf(tempchar,0,+kfp.index);tempcharnum=(cha
46、r) (a+i);num+;of1char=new charnum;for(int i=0;inum;i+)of1chari=tempchari;if(num fpstep)return num;elsereturn fpstep;Override public void actionPerformed(ActionEvente) MinSupport=Double.parseDouble(support.getText();MinConfi=Double.parseDouble(conf.getText();if(e.getSource() = jComboBoxDateSize)Strin
47、gdate=jComboBoxDateSize.getSelectedItem().toString();InitDate(date);if(e.getSource() = jButtonMine)textArea.setText();long start=System.currentTimeMillis();DataMine();long end=System.currentTimeMillis();import java.sql.*;class Daopublic Connection conn=null;public ResultSet rs=null;public Statement
48、statement=null;public String databasename=yuzm;public ArrayListalTransactions=null;/public static String user = root;/public static String password = root;public Dao()try/加载驱动程序Class.forName(driver);/连续数据库conn = DriverManager.getConnection(url);if(conn = null)catch(Exception e)e.printStackTrace();pu
49、blic ArrayList Query(String sql)try statement =(Statement)conn.createStatement();rs = statement.executeQuery(sql);alTransactions=Query(rs); catch (SQLException e) e.printStackTrace();return alTransactions;/加载驱动程序private ArrayList Query(ResultSet rs)ArrayListalTransactions=newArrayList();try int pid_index=rs.findColumn(id);int item_index=rs.findColumn(item);while(rs.next()Transaction t=new Transaction();int pid=rs.getInt(pid_index);String itemset=rs.getString(item_index);t.pid=pid;t.itemset=itemset;alTransa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023四年级数学上册 六 可能性教学实录 苏教版
- 2024-2025学年高中历史下学期第1周教学实录(新中国初期的政治建设)
- 二零二四年十二月半包合同书墙纸铺贴验收流程
- 2025年电力电缆安装运维工(中级)职业技能考试题(附答案)
- 泉州疫情防控课件
- 猴年微信祝福语
- 河南疫情防控课件
- 大连城市榜样评选启动典礼活动策划案
- 2024年计算机二级考试强化训练试题及答案
- 工程质检员个人工作总结
- 最常用2000个英语单词-电子表格版
- 幼儿园消防安全演示
- 全球价值链嵌入度
- 人力资源六大模块课件
- 参军复检申请书范文
- 酒店保安服务投标方案
- 用人单位意见反馈表模板
- SVG无功补偿系统培训
- 兰州大学学生驾驶摩托车及其他机动车辆家长知情同意书
- 静脉治疗护理技术操作规范(2023版)理论考核试题及答案
- 施工质量标准及质量管理体系
评论
0/150
提交评论