CN104881461A - 一种快速数据保存方法 - Google Patents
一种快速数据保存方法 Download PDFInfo
- Publication number
- CN104881461A CN104881461A CN201510267171.5A CN201510267171A CN104881461A CN 104881461 A CN104881461 A CN 104881461A CN 201510267171 A CN201510267171 A CN 201510267171A CN 104881461 A CN104881461 A CN 104881461A
- Authority
- CN
- China
- Prior art keywords
- user
- java
- database
- class
- name
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及JAVA技术领域,具体涉及一种数据保存方法。本发明方法通过java的反射机制,建立JAVA类与数据库表的关联关系:将JAVA类名映射至数据库表中;同理,将类的属性映射至表的字段中,同时保护字段的类型与类的属性类型一致。通过以上两步即可实现类与数据库表的对映关系。通过这种映射,JAVA即可将类的信息直接写入至数据库中,实现零配置、零开发、高效的数据保存方式;本发明的方法可以用于java***的数据保存中。
Description
技术领域
本发明涉及JAVA技术领域,具体涉及一种数据保存方法。
背景技术
目前在java***开发过程中,当需要将数据保存至数据库中时;目前流行的技术为jdbc、hibernate与ibatis。但三种技术都存在非常明显的缺点,如jdbc代码最多,数据查询与结果封装都需要写大量相应的代码。hibernate代码最少,可以直接操作对象的方式直接操作数据库,但这种方法需要大量的配置文件支持。最后ibatis是一种中间产品,代码量比jdbc少但比hibernate多,同时配置比jdbc多而比hibernate少。因此不管使用哪种方式,如果不写代码即要增加相应的配置,如果不写配置即要增加大量的代码,严重影响了开发的效率。
发明内容
本发明解决的技术问题在于提供一种零配置、零开发的数据库保存方法。
本发明解决上述技术问题的技术方案是:
所述的方法通过翻译模块,使用JAVA的反射机制,将JAVA类拼装成合法的数据库执行语言;***研发无需编写数据库保存代码,只需要按照规则编写相应的JAVA类与相关的属性;当需要保存数据时,调用翻译模块;翻译模块通过JAVA的反射机制,将类名与属性名转化为数据库执行语句,并执行。
所述的方法包括如下步骤:
第1步、在数据库中建立表,User表可包含任意属性如id和name,其类型分别为int和string;
第2步、根据User表,建立JAVA类User,其中JAVA对象User中包含id和name属性,属性类型分别为int与string;
第3步,创建User类的对象user,并将user赋值:id=1,name=’123;
第4步、JAVA调用数据库操作模块,并把user作为参数作入方法体内;
第5步、数据库模块通过JAVA反射机制,将user对象映射成相应的sql语句S1,如insert into user;
第6步、数据库模块通过反射机制,遍历对象user的所有属性与值,交继续拼装S1,如insert into user(id,name)values(1,‘123);
第7步、数据库模块通过jdbc接口,执行s1,将数据保存至数据库中。
本发明的有益效果是:本发明通过制定相应的默认规则,如表名与类名一致,表的字段名和类型与类的属性名和类型分别一一对应。通过的数据库模块,可以根据类名、属性名与值,拼装成可执行的sql语句,再通过执行相应的sql语句保存数据。而且数据库模块是通用的,只需一次研发即可。其它功能模块保存数据时,只需调用数据库模块,并把要保存的类作为参数传入即可。因此,本方法避免了数据库模块的代码研发,让项目组可以把更多的精力放在业务逻辑中;而且本方法无需配置、数据库层无需开发代码,减少了工作量、提高工作效率。通过翻译模块,把数据库层抽象成通用的功能模块,让平台研发更简单与清晰。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
具体实施方式
如附图1所示,是数据查询的主要流程图;包括如下步骤:
第1步、在数据库中建立表,如User,表可包含任意属性如id和name,其类型分别为int和string;
第2步、根据User表,建立JAVA类User,其中JAVA对象User中包含id和name属性,属性类型分别为int与string;
第3步,创建User类的对象user,并将user赋值:id=1,name=’123;
第4步、JAVA调用数据库操作模块,并把user作为参数作入方法体内;
第5步、数据库模块通过JAVA反射机制,将user对象映射成相应的sql语句S1,如insert into user。
第6步、数据库模块通过反射机制,遍历对象user的所有属性与值,交继续拼装S1,如insert into user(id,name)values(1,‘123)。
第7步、数据库模块通过jdbc接口,执行s1,将数据保存至数据库中。
Claims (2)
1.一种快速数据保存方法,其特征在于:所述的方法通过翻译模块,使用JAVA的反射机制,将JAVA类拼装成合法的数据库执行语言;***研发无需编写数据库保存代码,只需要按照规则编写相应的JAVA类与相关的属性;当需要保存数据时,调用翻译模块;翻译模块通过JAVA的反射机制,将类名与属性名转化为数据库执行语句,并执行。
2.根据权利要求1所述的快速数据保存方法,其特征在于:所述的方法包括如下步骤:
第1步、在数据库中建立表,User表可包含任意属性如id和name,其类型分别为int和string;
第2步、根据User表,建立JAVA类User,其中JAVA对象User中包含id和name属性,属性类型分别为int与string;
第3步,创建User类的对象user,并将user赋值:id=1,name=’123;
第4步、JAVA调用数据库操作模块,并把user作为参数作入方法体内;
第5步、数据库模块通过JAVA反射机制,将user对象映射成相应的sql语句S1,如insert into user;
第6步、数据库模块通过反射机制,遍历对象user的所有属性与值,交继续拼装S1,如insert into user(id,name)values(1,‘123);
第7步、数据库模块通过jdbc接口,执行s1,将数据保存至数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510267171.5A CN104881461A (zh) | 2015-05-22 | 2015-05-22 | 一种快速数据保存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510267171.5A CN104881461A (zh) | 2015-05-22 | 2015-05-22 | 一种快速数据保存方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104881461A true CN104881461A (zh) | 2015-09-02 |
Family
ID=53948954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510267171.5A Pending CN104881461A (zh) | 2015-05-22 | 2015-05-22 | 一种快速数据保存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881461A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630508A (zh) * | 2015-12-31 | 2016-06-01 | 广州亦云信息技术有限公司 | 在Java***中封装SQL语言的处理方法及*** |
CN105824634A (zh) * | 2016-03-17 | 2016-08-03 | 福建联迪商用设备有限公司 | 一种java生成数据库sequence的方法 |
CN106648569A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 目标序列化实现方法和装置 |
CN106933828A (zh) * | 2015-12-29 | 2017-07-07 | 北京国双科技有限公司 | 数据***方法和装置 |
CN109299125A (zh) * | 2018-10-31 | 2019-02-01 | 中国银行股份有限公司 | 数据库更新方法及装置 |
CN109471869A (zh) * | 2018-12-27 | 2019-03-15 | 山东浪潮商用***有限公司 | 一种本地数据库自动升级的方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044637A1 (en) * | 2002-08-30 | 2004-03-04 | Thomas Vachuska | Apparatus and method using reflection to generate database commands at runtime |
US20040044687A1 (en) * | 2002-08-30 | 2004-03-04 | Thomas Vachuska | Apparatus and method using pre-described patterns and reflection to generate a database schema |
CN101174217A (zh) * | 2007-11-22 | 2008-05-07 | 上海交通大学 | Java程序可动态更新化实现方法 |
CN103677846A (zh) * | 2013-12-25 | 2014-03-26 | 拉卡拉支付有限公司 | 一种SQLite数据库开发工具包及开发方法 |
-
2015
- 2015-05-22 CN CN201510267171.5A patent/CN104881461A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044637A1 (en) * | 2002-08-30 | 2004-03-04 | Thomas Vachuska | Apparatus and method using reflection to generate database commands at runtime |
US20040044687A1 (en) * | 2002-08-30 | 2004-03-04 | Thomas Vachuska | Apparatus and method using pre-described patterns and reflection to generate a database schema |
CN101174217A (zh) * | 2007-11-22 | 2008-05-07 | 上海交通大学 | Java程序可动态更新化实现方法 |
CN103677846A (zh) * | 2013-12-25 | 2014-03-26 | 拉卡拉支付有限公司 | 一种SQLite数据库开发工具包及开发方法 |
Non-Patent Citations (1)
Title |
---|
DECODE-LIFE: "Java反射机制简介及简单实例", 《HTTP://BLOG.CSDN.NET/ABUDEXIATIAN/ARTICLE/DETAILS/39375885》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648569A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 目标序列化实现方法和装置 |
CN106648569B (zh) * | 2015-11-02 | 2021-04-20 | 腾讯科技(深圳)有限公司 | 目标序列化实现方法和装置 |
CN106933828A (zh) * | 2015-12-29 | 2017-07-07 | 北京国双科技有限公司 | 数据***方法和装置 |
CN105630508A (zh) * | 2015-12-31 | 2016-06-01 | 广州亦云信息技术有限公司 | 在Java***中封装SQL语言的处理方法及*** |
CN105824634A (zh) * | 2016-03-17 | 2016-08-03 | 福建联迪商用设备有限公司 | 一种java生成数据库sequence的方法 |
CN109299125A (zh) * | 2018-10-31 | 2019-02-01 | 中国银行股份有限公司 | 数据库更新方法及装置 |
CN109299125B (zh) * | 2018-10-31 | 2021-05-28 | 中国银行股份有限公司 | 数据库更新方法及装置 |
CN109471869A (zh) * | 2018-12-27 | 2019-03-15 | 山东浪潮商用***有限公司 | 一种本地数据库自动升级的方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881461A (zh) | 一种快速数据保存方法 | |
CN105205105A (zh) | 一种基于storm的数据ETL***及处理方法 | |
CN103729447A (zh) | 一种数据库快速检索的方法 | |
CN105159616A (zh) | 一种磁盘空间管理方法及装置 | |
CN106202138A (zh) | 用于自主空间压缩的存储设备和方法 | |
CN103984560A (zh) | 基于大规模粗粒度嵌入式可重构***及其处理方法 | |
CN104572895A (zh) | MPP数据库与Hadoop集群数据互通方法、工具及实现方法 | |
CN104216961A (zh) | 一种数据处理方法和装置 | |
CN106933869B (zh) | 一种操作数据库的方法和装置 | |
CN106528896B (zh) | 一种数据库优化方法和装置 | |
CN104881490A (zh) | 一种web表单数据存取方法和*** | |
CN102915344B (zh) | 一种sql语句处理方法及装置 | |
CN106528898A (zh) | 将非关系型数据库数据转换到关系型数据库的方法及装置 | |
CN103914290A (zh) | 一种操作命令处理方法及装置 | |
CN104239532A (zh) | Hive中自制用户提取信息工具的方法和装置 | |
CN103425632A (zh) | 一种序列化的方法、装置及处理器 | |
CN106909554A (zh) | 一种数据库文本表数据的加载方法及装置 | |
CN108829884A (zh) | 数据映射方法及装置 | |
CN103440279A (zh) | 一种数据采集过程中的数据适配器及其数据适配方法 | |
CN106484826A (zh) | 一种操作数据库的方法及装置 | |
CN102937992A (zh) | 一种基于Java与XML数据库的对象映射转换设计方法 | |
CN105468793A (zh) | 一种仿真模型数据的自动化管理方法 | |
CN107729561A (zh) | 基于数据库表结构反向生成对数据库表操作的方法 | |
CN105786946A (zh) | 一种虚拟化的数据集成和查询***及其实现方法 | |
CN103488794A (zh) | 一种任意属性的数据库操作的Web实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150902 |
|
RJ01 | Rejection of invention patent application after publication |