CN117372182A - 一种基于快速开发持久层代码辅助方法的保险管理系统 - Google Patents

一种基于快速开发持久层代码辅助方法的保险管理系统 Download PDF

Info

Publication number
CN117372182A
CN117372182A CN202311561792.5A CN202311561792A CN117372182A CN 117372182 A CN117372182 A CN 117372182A CN 202311561792 A CN202311561792 A CN 202311561792A CN 117372182 A CN117372182 A CN 117372182A
Authority
CN
China
Prior art keywords
data
database
module
sub
primary key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311561792.5A
Other languages
English (en)
Inventor
李娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guoren Property Insurance Co ltd
Original Assignee
Guoren Property Insurance Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guoren Property Insurance Co ltd filed Critical Guoren Property Insurance Co ltd
Priority to CN202311561792.5A priority Critical patent/CN117372182A/zh
Publication of CN117372182A publication Critical patent/CN117372182A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/08Insurance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computational Linguistics (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种基于快速开发持久层代码辅助方法的保险管理系统,所述系统包括:模板获取子模块,用于获取持久层Mapper接口对应的数据库语句模板;实体创建子模块,用于依据所述数据库中的数据库表信息创建对应的实体类;语句生成子模块,用于依据所述实体类和所述数据库语句模板构建出数据库操作语句。通过获取数据库语句模板和数据库表字段,生成数据库操作语句,进而快速开发持久层代码,解决了sql语句难以修改的问题,减少了手写重复代码的工作量,达到了提高开发效率的目的,从而节省资源与成本。

Description

一种基于快速开发持久层代码辅助方法的保险管理系统
技术领域
本申请涉及数据库访问技术领域,特别是一种基于快速开发持久层代码辅助方法的保险管理系统。
背景技术
针对Java连接数据库,JDBC(Java DataBase Connectivity,Java数据库连接)为开发人员提供了标准的访问数据库的接口。但是,随着时间的推移,数据库的访问量越来越大,对于数据库访问层的需求就越来越高。现有的持久层代码,多通过MyBatis、Hibernate和JPA等框架构建,但由于实体与数据表字段耦合度较高,导致sql语句大量冗余且修改繁琐易出错的问题。
发明内容
鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种基于快速开发持久层代码辅助方法的保险管理系统,包括:
一种基于快速开发持久层代码辅助方法的保险管理系统,所述系统包括数据处理模块和数据存储模块,所述数据存储模块包括数据库;所述数据处理模块包括:
模板获取子模块,用于获取持久层Mapper接口对应的数据库语句模板;
实体创建子模块,用于依据所述数据库中的数据库表信息创建对应的实体类;
语句生成子模块,用于依据所述实体类和所述数据库语句模板构建出数据库操作语句。
进一步地,所述数据处理模块还包括主键生成子模块,用于在插入数据时,依据主键策略和所述数据库表信息生成主键id。
进一步地,所述主键生成子模块包括:
自增策略单元,用于依据待插入数据的目标数据表信息按顺序生成所述主键id;
默认策略单元,用于通过雪花算法生成一个10位的数字所述主键id;
雪花策略单元,用于当实体类中的主键属性值为空时,通过雪花算法生成所述主键id;
识别码策略单元,用于当实体类中的主键属性值为空时,通过通用唯一识别码生成法生成所述主键id。
进一步地,所述数据处理模块还包括:
数据监测子模块,用于在更新数据时,通过注解和条件构造器判断是否发生数据更新冲突;当发生数据更新冲突时,停止更新所述数据。
进一步地,所述数据监测子模块包括:
注解监测单元,用于获取数据更新前后待更新数据的注解字段,若所述注解字段没有按照预设规律变化,则发生数据更新冲突。
进一步地,所述数据处理模块还包括:
自动填充子模块,用于在插入或更新数据时,依据填充策略填充指定字段。
进一步地,所述数据处理模块还包括:
数据查询子模块,用于通过链式调用查询条件语句,拼接查询条件。
进一步地,所述数据处理模块和所述数据存储模块通过API接口连接。
进一步地,所述系统还包括前端模块,所述前端模块包括前端页面、web和API网关;其中,所述前端通过所述API网关与所述数据处理模块连接。
进一步地,所述数据库为mysql分布式关系型数据库。
本申请具有以下优点:
在本申请的实施例中,针对于现有技术中sql语句大量冗余且修改繁琐易出错的问题,本申请提供了通过自动生成数据库操作语句快速开发持久层代码的解决方案,具体为:模板获取子模块,用于获取持久层Mapper接口对应的数据库语句模板;实体创建子模块,用于依据所述数据库中的数据库表信息创建对应的实体类;语句生成子模块,用于依据所述实体类和所述数据库语句模板构建出数据库操作语句。通过获取数据库语句模板和数据库表字段,生成数据库操作语句,进而快速开发持久层代码,解决了sql语句难以修改的问题,减少了手写重复代码的工作量,达到了提高开发效率的目的,从而节省资源与成本。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种基于快速开发持久层代码辅助方法的保险管理系统的结构框图。
具体实施方式
为使本申请的所述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人通过分析现有技术发现:目前的持久层代码,多通过MyBatis、Hibernate和JPA等框架构建,但由于持久层中的实体与数据表字段耦合度较高,在创建和修改数据表字段时,需要同步创建和修改持久层中对应实体的有关代码,同时,对于不同数据表中的同一字段,仍然需要创建一个对应的实体,而保险管理系统的数据库中常常存储有大量数据表字段,导致其持久层代码中的sql语句大量冗余且修改繁琐易出错的问题。
参照图1,示出了本申请一实施例提供的一种新非车承保核心系统,所述系统包括数据处理模块110和数据存储模块120,所述数据存储模块120包括数据库;所述数据处理模块110包括:
模板获取子模块111,用于获取持久层Mapper接口对应的数据库语句模板;
实体创建子模块112,用于依据所述数据库中的数据库表信息创建对应的实体类;
语句生成子模块113,用于依据所述实体类和所述数据库语句模板构建出数据库操作语句。
在本申请的实施例中,针对于现有技术中sql语句大量冗余且修改繁琐易出错的问题,本申请提供了通过自动生成数据库操作语句快速开发持久层代码的解决方案,具体为:模板获取子模块111,用于获取持久层Mapper接口对应的数据库语句模板;实体创建子模块112,用于依据所述数据库中的数据库表信息创建对应的实体类;语句生成子模块113,用于依据所述实体类和所述数据库语句模板构建出数据库操作语句。通过获取数据库语句模板和数据库表字段,生成数据库操作语句,进而快速开发持久层代码,解决了sql语句难以修改的问题,减少了手写重复代码的工作量,达到了提高开发效率的目的,从而节省资源与成本。
下面,将对本示例性实施例中一种基于快速开发持久层代码辅助方法的保险管理系统作进一步地说明。
在本发明一实施例中,所述数据处理模块110还包括:
主键生成子模块,用于在插入数据时,依据主键策略和所述数据库表信息生成全局唯一的主键id;
数据监测子模块,用于在更新数据时,通过注解和条件构造器判断是否发生数据更新冲突;
自动填充子模块,用于在插入或更新数据时,依据填充策略填充指定字段;
数据查询子模块,用于通过链式调用查询条件语句,拼接查询条件。
作为一种示例,在插入数据时,依据主键策略和所述数据库表信息生成全局唯一的主键id,所述主键策略预设在所述主键生成子模块中;在更新数据时,通过注解和条件构造器判断是否发生数据更新冲突;在插入或更新数据时,依据填充策略填充指定字段,所述填充策略预设在所述自动填充子模块中,用户可以通过自动填充子模块修改所述填充策略;通过链式调用查询条件语句,拼接查询条件。
在本发明一实施例中,所述数据处理模块110还包括主键生成子模块,用于在插入数据时,依据主键策略和所述数据库表信息生成主键id。
作为一种示例,在插入数据时,依据主键策略和所述数据库表信息生成全局唯一的主键id,所述主键策略预设在所述主键生成子模块中,依据所述主键策略选择对应的主键策略单元。
在本发明一实施例中,所述主键生成子模块包括:
自增策略单元,用于依据待插入数据的目标数据表信息按顺序生成所述主键id;
默认策略单元,用于通过雪花算法生成一个10位的数字所述主键id;
雪花策略单元,用于当实体类中的主键属性值为空时,通过雪花算法生成所述主键id;
识别码策略单元,用于当实体类中的主键属性值为空时,通过通用唯一识别码生成法生成所述主键id。
作为一种示例,用户可以通过所述主键生成子模块指定目标主键策略单元,当没有指定目标主键策略时,所述主键生成子模块使用默认策略单元。
在本发明一实施例中,所述数据处理模块110还包括:
数据监测子模块,用于在更新数据时,通过注解和条件构造器判断是否发生数据更新冲突;当发生数据更新冲突时,停止更新所述数据。
作为一种示例,在更新数据时,通过注解和条件构造器判断是否发生数据更新冲突,当发生数据更新冲突时,停止更新所述数据并返回错误信息,否则继续更新数据直至执行完成。
在本发明一实施例中,所述数据监测子模块包括:
注解监测单元,用于获取数据更新前后待更新数据的注解字段,若所述注解字段没有按照预设规律变化,则发生数据更新冲突。
作为一种示例,在实体类中需要进行数据监测的目标字段添加注解,当使用条件构造器进行更新操作时,将所述目标字段的注解与参数中的注解进行比较,只有当比较结果为真时才会执行更新操作,以此实现对数据库中字段的数据监测功能。
在一具体实现中,当查询目标数据时,复制所述目标数据的当前版本号,所述当前版本号为1。当更新所述目标数据时,用所述当前版本号1与数据库当前的所述目标数据的版本号比较,若版本号还为1,代表所述目标数据未被其他线程更新,未发生数据更新冲突,此次操作被允许执行。若版本号不为1,代表所述目标数据已被更新,则发生数据更新冲突,此次操作不合法
在本发明一实施例中,所述数据处理模块110还包括:
自动填充子模块,用于在插入或更新数据时,依据填充策略填充指定字段。
作为一种示例,在插入或更新数据时,依据填充策略填充指定字段,所述填充策略预设在所述自动填充子模块中,用户可以通过自动填充子模块修改所述填充策略。
在一具体实现中,通过自动填充子模块将填充策略设置为:在插入或更新数据时,为所述数据填充插入或更新数据的时间。
在本发明一实施例中,所述数据处理模块110还包括:
数据查询子模块,用于通过链式调用查询条件语句,拼接查询条件。
作为一种示例,先定义一个条件接口,其中,接口内包含等于、大于、小于、小于等于和大于等于等运算逻辑,再定义一个抽象类实现所述条件接口,返回值为所述抽象类本身;以此实现链式拼接查询条件。
在一具体实现中,定义一个查询对象,调用其条件接口输入保险单号次,条件接口会返回所述查询对象,再次调用其条件接口资源类型,条件接口再次返回所述查询对象,此时可以通过条件接口再次输入查询条件,重复上述流程直至查询条件输入完成。
在本发明一实施例中,所述数据处理模块110和所述数据存储模块120通过API接口连接。
作为一种示例,所述数据处理模块110通过JDBC与所述数据存储模块120连接,通过JDBC提供的API接口,所述数据处理模块110操作可以所述数据存储模块120执行SQL查询和更新操作、处理结果集、管理事务以及执行其他数据库操作。
需要说明的是,在使用JDBC之前,需要加载适当的数据库驱动程序,以使Java程序能够与特定的数据库管理系统通信。加载驱动程序通常通过Class.forName()方法完成;一旦驱动程序加载完毕,Java程序可以使用DriverManager.getConnection()方法建立与数据库的连接。此方法需要提供数据库的URL、用户名和密码作为参数;建立连接后,Java程序可以使用PreparedStatement接口创建SQL语句并设置参数,其中,SQL语句可以是查询语句或更新语句;然后,使用Statement或PreparedStatement的executeQuery()方法执行查询语句,并使用ResultSet接口处理结果集;结果集可以使用next()方法遍历并检索结果。完成数据库操作后,应该关闭ResultSet、Statement和Connection对象,以释放资源。在执行SQL操作时,可能会发生异常或错误。JDBC提供了try-catch语句块来捕获和处理这些异常,以保证程序的健壮性。
在本发明一实施例中,所述系统还包括前端模块,所述前端模块包括:前端页面、web和API网关;其中,所述前端通过所述API网关与所述数据处理模块连接。
作为一种示例,通过前端模块获取用户输入的数据和操作指令,并通过基于http协议的所述web调用所述API网关与所述数据处理模块进行数据交互。
在本发明一实施例中,所述数据库为mysql分布式关系型数据库。
在本发明一实施例中,所述持久层Mapper接口通过继承BaseMapper类构建。
在本发明一实施例中,所述持久层Mapper接口通过泛型实现对通用数据库操作语句的支持。
作为一种示例,通过Mapper接口传入实体类的泛型,依据具体传入的类型确定所述Mapper接口在数据库中对应的实体。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种基于快速开发持久层代码辅助方法的保险管理系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种基于快速开发持久层代码辅助方法的保险管理系统,其特征在于,所述系统包括数据处理模块和数据存储模块,所述数据存储模块包括数据库;所述数据处理模块包括:
模板获取子模块,用于获取持久层Mapper接口对应的数据库语句模板;
实体创建子模块,用于依据所述数据库中的数据库表信息创建对应的实体类;
语句生成子模块,用于依据所述实体类和所述数据库语句模板构建出数据库操作语句。
2.根据权利要求1所述的系统,其特征在于,所述数据处理模块还包括:
主键生成子模块,用于在插入数据时,依据主键策略和所述数据库表信息生成主键id。
3.根据权利要求2所述的系统,其特征在于,所述主键生成子模块包括:
自增策略单元,用于依据待插入数据的目标数据表信息按顺序生成所述主键id;
默认策略单元,用于通过雪花算法生成一个10位的数字所述主键id;
雪花策略单元,用于当实体类中的主键属性值为空时,通过雪花算法生成所述主键id;
识别码策略单元,用于当实体类中的主键属性值为空时,通过通用唯一识别码生成法生成所述主键id。
4.根据权利要求1所述的系统,其特征在于,所述数据处理模块还包括:
数据监测子模块,用于在更新数据时,通过注解和条件构造器判断是否发生数据更新冲突;当发生数据更新冲突时,停止更新所述数据。
5.根据权利要求4所述的系统,其特征在于,所述数据监测子模块包括:
注解监测单元,用于获取数据更新前后待更新数据的注解字段,若所述注解字段没有按照预设规律变化,则发生数据更新冲突。
6.根据权利要求1所述的系统,其特征在于,所述数据处理模块还包括:
自动填充子模块,用于在插入或更新数据时,依据填充策略填充指定字段。
7.根据权利要求1所述的系统,其特征在于,所述数据处理模块还包括:
数据查询子模块,用于通过链式调用查询条件语句,拼接查询条件。
8.根据权利要求1所述的系统,其特征在于,所述数据处理模块和所述数据存储模块通过API接口连接。
9.根据权利要求5所述的系统,其特征在于,所述系统还包括前端模块,所述前端模块包括前端页面、web和API网关;其中,所述前端通过所述API网关与所述数据处理模块连接。
10.根据权利要求1所述的系统,其特征在于,所述数据库为mysql分布式关系型数据库。
CN202311561792.5A 2023-11-21 2023-11-21 一种基于快速开发持久层代码辅助方法的保险管理系统 Pending CN117372182A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311561792.5A CN117372182A (zh) 2023-11-21 2023-11-21 一种基于快速开发持久层代码辅助方法的保险管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311561792.5A CN117372182A (zh) 2023-11-21 2023-11-21 一种基于快速开发持久层代码辅助方法的保险管理系统

Publications (1)

Publication Number Publication Date
CN117372182A true CN117372182A (zh) 2024-01-09

Family

ID=89396769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311561792.5A Pending CN117372182A (zh) 2023-11-21 2023-11-21 一种基于快速开发持久层代码辅助方法的保险管理系统

Country Status (1)

Country Link
CN (1) CN117372182A (zh)

Similar Documents

Publication Publication Date Title
US9465590B2 (en) Code generation framework for application program interface for model
US10452645B2 (en) Modification and validation of spatial data
US7484223B2 (en) System and method for building a run-time image from components of a software program
US11726969B2 (en) Matching metastructure for data modeling
US20220147326A1 (en) Automated api code generation
US7162502B2 (en) Systems and methods that synchronize data with representations of the data
US7490098B2 (en) Apparatus, system, and method for processing hierarchical data in disparate data repositories
US9043757B2 (en) Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files
US8381176B1 (en) Software build orchestration framework
US20080270343A1 (en) Processing database queries embedded in application source code from within integrated development environment tool
US7831614B2 (en) System and method for generating SQL using templates
US20030041069A1 (en) System and method for managing bi-directional relationships between objects
Keith et al. Pro JPA 2
US8707260B2 (en) Resolving interdependencies between heterogeneous artifacts in a software system
US20090204953A1 (en) Transforming data structures between different programming languages
CN114138748A (zh) 数据库映射文件生成方法、装置、设备及存储介质
CN112650526B (zh) 版本一致性的检测方法、装置、电子设备和介质
CN116974581A (zh) 代码生成方法、装置、电子设备和存储介质
US10338891B2 (en) Migration between model elements of different types in a modeling environment
JP2014504469A (ja) ネットワーク要素の構成管理
US20080172659A1 (en) Harmonizing a test file and test configuration in a revision control system
US20100332548A1 (en) Databases from models
CN117372182A (zh) 一种基于快速开发持久层代码辅助方法的保险管理系统
CN114138815A (zh) 一种应用程序的多数据库兼容实现方法、设备及介质
WO2020027930A1 (en) Property filtering

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination