一种基于ibatis的批量录入方法及系统的制作方法

文档序号:10569964阅读:204来源:国知局
一种基于ibatis的批量录入方法及系统的制作方法
【专利摘要】本发明涉及一种基于ibatis的批量录入方法及系统,其中方法包括:步骤1:接收文件入库请求和对应请求的文件;步骤2:根据文件入库请求依次读取所述文件中的每行记录,分别将每行记录中的数据压入预先定义的LIST明细表中;步骤3:使用ibatis将所有LIST明细表批量存入数据库中;步骤4:记录此次文件存入数据库的信息,生成一条数据库操作记录,结束。本发明克服了每读一行入库一次,效率低的问题,并克服了不同业务对应的文件内容不一样,入表也不同,需要建好多功能类似的表,复用度低的问题;本发明通过一次读文件且一次性批量入库,保证效率;不同业务的文件入到一张表中,增加产品复用度。
【专利说明】
一种基于i bat i s的批量录入方法及系统
技术领域
[0001 ]本发明涉及一种基于ibatis的批量录入方法及系统。
【背景技术】
[0002]ibatis是一种用于java持久层开发技术,处于实体类和数据表之间的一个中间层,这使得它在类和数据表之间进行映射时更加灵活,而不需要数据库模型或对象模型(Object Model)的任何修改。我们所说的中间层实际上就是SQL映射层,它使得iBATIS能够更好地分离数据库和对象模型的设计,这样就相对减少了两者间的耦合。

【发明内容】

[0003]在项目开发中,经常需要基于ibatis将文件内容入库,使用传统方案会出现2个问题:问题一:每读一行入库一次,效率低;问题二:不同业务对应的文件内容不一样,入表也不同,需要建好多功能类似的表,复用度低。
[0004]本发明所要解决的技术问题是,针对现有技术中存在的以上两个问题,提供一种实现文件内容一次性批量入库的基于ibatis的批量录入方法及系统。
[0005]本发明解决上述技术问题的技术方案如下:一种基于ibatis的批量录入方法,具体包括以下步骤:
[0006]步骤I:接收文件入库请求和对应请求的文件;
[0007]步骤2:根据文件入库请求依次读取所述文件中的每行记录,分别将每行记录中的数据压入预先定义的LIST明细表中;
[0008]步骤3:使用ibatis将所有LIST明细表批量存入数据库中;
[0009]步骤4:记录此次文件存入数据库的信息,生成一条数据库操作记录,结束。
[0010]本发明的有益效果是:本发明克服了每读一行入库一次,效率低的问题,并克服了不同业务对应的文件内容不一样,入表也不同,需要建好多功能类似的表,复用度低的问题;本发明通过一次读文件且一次性批量入库,保证效率;不同业务的文件入到一张表中,增加产品复用度。
[0011]在上述技术方案的基础上,本发明还可以做如下改进。
[0012]进一步,所述步骤2具体包括以下步骤:
[0013]步骤2.1:按序选取所述文件中的第一行记录作为当前记录;
[0014]步骤2.2:读取当前记录,将当前记录中的数据压入预先定义的LIST明细表中;
[0015]步骤2.3:判断所述文件中是否还存在记录,如果是,选取下一行记录作为当前记录,执行步骤2.2;否则,执行步骤3。
[0016]进一步,所述步骤2.2具体包括以下步骤:
[0017]步骤2.2.1:将当前记录中的数据按照字段分别压入多个MAP对象中;
[0018]步骤2.2.2:将所有MAP对象压入预先定义的LIST明细表中。
[0019]采用上述进一步方案的有益效果是,java中的map其实就是以键值对形式的存放数据的容器。
[0020]进一步,所述步骤I中,接收对应文件入库请求的文件后,首先获取所述文件对应的操作类型和文件名。
[0021]进一步,所述数据库中保存的字段包括:操作类型、公共字段和文件原始内容字段;
[0022]所述操作类型通过步骤I获得;
[0023]所述公共字段为所有文件都包含的内容,存入文件数据后,公共字段字段生成;
[0024]所述文件原始内容字段为文件中所有单行记录的原始数据。
[0025]进一步,所述步骤4中的操作记录中保存文件名称和文件行数等信息,每个文件入库请求对应一条操作记录。
[0026]本发明解决上述技术问题的技术方案如下:一种基于ibatis的批量录入系统,包括请求接收模块、记录压入模块、入库模块和操作记录模块;
[0027]所述请求接收模块用于接收文件入库请求和对应请求的文件;
[0028]所述记录压入模块用于根据文件入库请求依次读取所述文件中的每行记录,分别将每行记录中的数据压入预先定义的LIST明细表中;
[0029]所述入库模块用于使用ibatis将所有LIST明细表批量存入数据库中;
[0030]所述操作记录模块用于记录此次文件存入数据库的信息,生成一条数据库操作记录,结束。
[0031]本发明的有益效果是:本发明一次读文件且一次性批量入库,保证效率;不同业务的文件入到一张表中,增加产品复用度。
[0032]在上述技术方案的基础上,本发明还可以做如下改进。
[0033]进一步,所述记录压入模块用于根据文件入库请求依次读取所述文件中的每行记录,依次将每行记录中的数据按照字段分别压入多个MAP对象中;并将所有MAP对象压入预先定义的LIST明细表中。
[0034]采用上述进一步方案的有益效果是,java中的map其实就是以键值对形式的存放数据的容器。
[0035]进一步,所述请求接收模块接收对应文件入库请求的文件后,首先获取所述文件对应的操作类型和文件名。
[0036]进一步,所述数据库中保存的字段包括:操作类型、公共字段和文件原始内容字段;
[0037]所述操作类型通过请求接收模块获得;
[0038]所述公共字段为所有文件都包含的内容,存入文件数据后,公共字段字段生成;
[0039]所述文件原始内容字段为文件中所有单行记录的原始数据。
【附图说明】
[0040]图1为本发明实施例1所述的一种基于ibatis的批量录入方法流程图;
[0041 ]图2为本发明具体示例所述的一种基于ibatis的批量录入方法流程图。
[0042]附图中,各标号所代表的部件列表如下:
[0043]丨、请求接收模块,2、记录压入模块,3、入库模块,4、操作记录模块。
【具体实施方式】
[0044]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0045]如图1所示,为本发明实施例1所述的一种基于ibatis的批量录入方法,具体包括以下步骤:
[0046]步骤I:接收文件入库请求和对应请求的文件;
[0047]步骤2:根据文件入库请求依次读取所述文件中的每行记录,分别将每行记录中的数据压入预先定义的LIST明细表中;
[0048]步骤3:使用ibatis将所有LIST明细表批量存入数据库中;
[0049]步骤4:记录此次文件存入数据库的信息,生成一条数据库操作记录,结束。
[0050]本发明实施例2所述的一种基于ibatis的批量录入方法,在实施例1的基础上,所述步骤2具体包括以下步骤:
[0051]步骤2.1:按序选取所述文件中的第一行记录作为当前记录;
[0052]步骤2.2:读取当前记录,将当前记录中的数据压入预先定义的LIST明细表中;
[0053]步骤2.3:判断所述文件中是否还存在记录,如果是,选取下一行记录作为当前记录,执行步骤2.2;否则,执行步骤3。
[0054]本发明实施例3所述的一种基于ibatis的批量录入方法,在实施例2的基础上,所述步骤2.2具体包括以下步骤:
[0055]步骤2.2.1:将当前记录中的数据按照字段分别压入多个MAP对象中;
[0056]步骤2.2.2:将所有MAP对象压入预先定义的LIST明细表中。
[0057]本发明实施例4所述的一种基于ibatis的批量录入方法,在实施例1-3任一项的基础上,所述步骤I中,接收对应文件入库请求的文件后,首先获取所述文件对应的操作类型和文件名。
[0058]本发明实施例5所述的一种基于ibatis的批量录入方法,在实施例1-4任一项的基础上,所述数据库中保存的字段包括:操作类型、公共字段和文件原始内容字段;
[0059]所述操作类型通过步骤I获得;
[0060]所述公共字段为所有文件都包含的内容,存入文件数据后,公共字段字段生成;
[0061]所述文件原始内容字段为文件中所有单行记录的原始数据。
[0062]本发明实施例6所述的一种基于ibatis的批量录入方法,在实施例1-5任一项的基础上,所述步骤4中的操作记录中保存文件名称和文件行数等信息,每个文件入库请求对应一条操作记录。
[0063]如图2所示,本发明所述方法在具体示例中,具体包括以下步骤:
[0064]1.依次读取文件,解析文件每一行,循环处理当前行每一个字段,把字段内容压入MAP中。再把MAP对象压入事先定义好的LIST。
[0065]2.使用ibatis将文件内容一次性批量入库,库中核心字段有:操作类型、公共字段、文件原始内容字段。操作类型用于指定文件类型;公共字段是所有文件都会有的,比如号码、金额;文件原始内容字段存放文件单行原始内容,既可以备份文件内容,又可以存放非公共字段。
[0066]3.记录导入文件操作信息,该信息用于记录文件名称、文件条数等信息,每次操作只记录一条记录。
[0067]本发明实施例1所述的一种基于ibatis的批量录入系统,包括请求接收模块1、记录压入模块2、入库模块3和操作记录模块4 ;
[0068]所述请求接收模块I用于接收文件入库请求和对应请求的文件;
[0069]所述记录压入模块2用于根据文件入库请求依次读取所述文件中的每行记录,分别将每行记录中的数据压入预先定义的LIST明细表中;
[0070]所述入库模块3用于使用ibatis将所有LIST明细表批量存入数据库中;
[0071]所述操作记录模块4用于记录此次文件存入数据库的信息,生成一条数据库操作记录,结束。
[0072]本发明实施例2所述的一种基于ibatis的批量录入系统,在实施例1的基础上,所述记录压入模块用于根据文件入库请求依次读取所述文件中的每行记录,依次将每行记录中的数据按照字段分别压入多个MAP对象中;并将所有MAP对象压入预先定义的LIST明细表中。
[0073]本发明实施例3所述的一种基于ibatis的批量录入系统,在实施例2的基础上,所述请求接收模块接收对应文件入库请求的文件后,首先获取所述文件对应的操作类型和文件名。
[0074]本发明实施例4所述的一种基于ibatis的批量录入系统,在实施例1-3任一项的基础上,所述数据库中保存的字段包括:操作类型、公共字段和文件原始内容字段;
[0075]所述操作类型通过请求接收模块获得;
[0076]所述公共字段为所有文件都包含的内容,存入文件数据后,公共字段字段生成;
[0077]所述文件原始内容字段为文件中所有单行记录的原始数据。
[0078]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于ibatis的批量录入方法,其特征在于,具体包括以下步骤: 步骤1:接收文件入库请求和对应请求的文件; 步骤2:根据文件入库请求依次读取所述文件中的每行记录,分别将每行记录中的数据压入预先定义的LIST明细表中; 步骤3:使用ibatis将所有LIST明细表批量存入数据库中; 步骤4:记录此次文件存入数据库的信息,生成一条数据库操作记录,结束。2.根据权利要求1所述的一种基于ibatis的批量录入方法,其特征在于,所述步骤2具体包括以下步骤: 步骤2.1:按序选取所述文件中的第一行记录作为当前记录; 步骤2.2:读取当前记录,将当前记录中的数据压入预先定义的LIST明细表中; 步骤2.3:判断所述文件中是否还存在记录,如果是,选取下一行记录作为当前记录,执行步骤2.2;否则,执行步骤3。3.根据权利要求2所述的一种基于ibatis的批量录入方法,其特征在于,所述步骤2.2具体包括以下步骤: 步骤2.2.1:将当前记录中的数据按照字段分别压入多个MAP对象中; 步骤2.2.2:将所有MAP对象压入预先定义的LIST明细表中。4.根据权利要求1-3任一项所述的一种基于ibatis的批量录入方法,其特征在于,所述步骤I中,接收对应文件入库请求的文件后,首先获取所述文件对应的操作类型和文件名。5.根据权利要求1所述的一种基于ibatis的批量录入方法,其特征在于,所述数据库中保存的字段包括:操作类型、公共字段和文件原始内容字段; 所述操作类型通过步骤I获得; 所述公共字段为所有文件都包含的内容,存入文件数据后,公共字段字段生成; 所述文件原始内容字段为文件中所有单行记录的原始数据。6.根据权利要求1所述的一种基于ibatis的批量录入方法,其特征在于,所述步骤4中的操作记录中保存文件名称和文件行数信息,每个文件入库请求对应一条操作记录。7.—种基于ibat is的批量录入系统,其特征在于,包括请求接收模块、记录压入模块、入库模块和操作记录模块; 所述请求接收模块用于接收文件入库请求和对应请求的文件; 所述记录压入模块用于根据文件入库请求依次读取所述文件中的每行记录,分别将每行记录中的数据压入预先定义的LIST明细表中; 所述入库模块用于使用ibatis将所有LIST明细表批量存入数据库中; 所述操作记录模块用于记录此次文件存入数据库的信息,生成一条数据库操作记录,结束。8.根据权利要求7所述的一种基于ibatis的批量录入系统,其特征在于,所述记录压入模块用于根据文件入库请求依次读取所述文件中的每行记录,依次将每行记录中的数据按照字段分别压入多个MAP对象中;并将所有MAP对象压入预先定义的LIST明细表中。9.根据权利要求8所述的一种基于ibatis的批量录入系统,其特征在于,所述请求接收模块接收对应文件入库请求的文件后,首先获取所述文件对应的操作类型和文件名。10.根据权利要求7-9任一项所述的一种基于ibatis的批量录入系统,其特征在于,所述数据库中保存的字段包括:操作类型、公共字段和文件原始内容字段; 所述操作类型通过请求接收模块获得; 所述公共字段为所有文件都包含的内容,存入文件数据后,公共字段字段生成; 所述文件原始内容字段为文件中所有单行记录的原始数据。
【文档编号】G06F17/30GK105930395SQ201610235780
【公开日】2016年9月7日
【申请日】2016年4月15日
【发明人】贾莎莎
【申请人】北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1