【技术实现步骤摘要】
用于生成数据库操作语句的方法、设备和介质
[0001]本公开的实施例总体涉及网络
,并且具体涉及用于生成数据库操作语句的方法、设备和介质。
技术介绍
[0002]一般来说,使用Java代码开发的业务系统都是基于关系型数据库的,因此经常需要使用诸如SQL之类的数据库操作技术来对这种数据库进行操作。目前,为了对这些数据库进行操作,必须在Java代码中嵌入相应的 SQL语句。例如,需要基于每一数据表的表格名称、相关字段的字段名称、数据操纵语言语句或者作为限制条件的关键词形成一个包括SQL语句的常量字符串写死在该Java代码里。然后,每次执行数据库操作之前,就直接执行这个字符串中的 SQL语句。但是,在这种方法中,如果需要对数据库中的任一数据表进行修改(例如,在数据库中增加数据表、在某个数据表中增加字段、从某个数据表中删除字段、更新某个数据表中的字段等),就需要手动地对相应的SQL语句进行修改。然而,依赖人工对SQL语句进行修改容易出错,而且费事费力,效率低下,尤其是在对字段及数据表的名称的引用或者对字段类型或长度的引用分布在 ...
【技术保护点】
【技术特征摘要】
1.一种用于生成数据库操作语句的方法,包括:在业务系统启动的时间段内,查询与所述业务系统相关联的Java代码中的所有Java实体类,每一Java实体类用于定义一个相应的数据表;对每一Java实体类进行解析,以从相应的Java实体类中提取属性信息,所述属性信息包括为相应的数据表定义的表格名称以及第一字段信息,所述第一字段信息包括为相应的数据表定义的每一个字段的字段名称以及字段类型;基于从每一Java实体类中提取的属性信息,对与所述业务系统相关联的数据库进行完整性检查,以基于所述完整性检查的结果,生成相应的数据库操作语句;以及执行所生成的数据库操作语句,以对所述数据库进行相应的数据库操作。2.根据权利要求1所述的方法,其中从每一Java实体类中提取的每一个字段的字段类型为Java字段类型,并且所述方法还包括:在所述完整性检查之前,将每一Java字段类型都转换为相应的数据库字段类型。3.根据权利要求2所述的方法,其中基于从每一Java实体类中提取的属性信息,对与所述业务系统相关联的数据库进行完整性检查,以基于所述完整性检查的结果,生成相应的数据库操作语句包括:基于所述表格名称搜索所述数据库,以确定所述数据库中是否包括相应的数据表;以及响应于确定所述数据库中不包括所述数据表,生成用于在所述数据库中创建所述数据表的数据库操作语句。4.根据权利要求3所述的方法,其中基于从每一Java实体类中提取的属性信息,对与所述业务系统相关联的数据库进行完整性检查,以基于所述完整性检查的结果,生成相应的数据库操作语句还包括:响应于确定所述数据库中包括所述数据表,从所述数据表中提取第二字段信息,所述第二字段信息包括所述数据表所包括的每一个字段的字段名称和字段类型;基于所述第一字段信息以及所述第二字段信息,对所述Java实体类和所述数据表进行比较;如果根据所述比较的结果,所述数据表缺少一个或多个字段,则生成用于在所述数据表中增加所缺少的一个或多个字段的数据库操作语句;如果根据所述比较的结果,所述数据表包括一个或多个额外的字段,则生成用于从所述数据表中移除所述一个或多个额外的字段的数据库操作语句;以及如果根据所述比较的结果,所述数据表包括与所述Java实体类字段名称相同但字段类型不同的一个或多个字段,则生成用于将该一个或多个字段的字段类型更新为与所述Java实体类相同的数据库操作语句。5.根据权利要求1所述的方法,还包括:在所述业务系统完成启动之后,如果针对Java实体对象调用了预先创建的语句生成函数,则对输入到所述Java实体对象的条件参数进行解析,以便生成相应的语法分析树,所述Java实...
【专利技术属性】
技术研发人员:李彬,陈文成,陈昕怡,胡碧颖,
申请(专利权)人:通联支付网络服务股份有限公司广东分公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。