CN103677846A - 一种SQLite数据库开发工具包及开发方法 - Google Patents
一种SQLite数据库开发工具包及开发方法 Download PDFInfo
- Publication number
- CN103677846A CN103677846A CN201310727273.1A CN201310727273A CN103677846A CN 103677846 A CN103677846 A CN 103677846A CN 201310727273 A CN201310727273 A CN 201310727273A CN 103677846 A CN103677846 A CN 103677846A
- Authority
- CN
- China
- Prior art keywords
- java
- data
- database
- language
- sql
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种SQLite数据库开发工具包及开发方法,在JAVA环境中调用对象的方法,通过JAVA反射机制获得所述对象的信息和属性,在JAVA环境中设置所述对象的信息或属性,将设置后的所述对象由JAVA语言转换成SQLite数据库对应的SQL语言,并输出至SQLite数据库保存,供下次JAVA调用,使开发人员在开发过程省去了开发SQL语言代码的麻烦,提高了开发效率,也保证了开发的准确性和稳定性。
Description
技术领域
本发明涉及软件开发,尤其涉及一种SQL i te数据库开发工具包及开发方法。
背景技术
SQLite数据库是一款轻型的数据库,是遵守ACID(Atomici ty ConsistencyIsolation Durability,数据库实务正确执行的四个基本要素:原子性、一致性、隔离性、持久性)的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用,它占用资源非常的低,在嵌入式设备中,只需要几百K的内存就够了,能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,还有ODBC(Open DatabaseConnectivity,开放数据库连接)接口,同样其处理速度较快。
目前,对于SQLite数据库方面的开发,都是使用的操作系统平台提供的SDK提供的SQLite包,为了提供最大的开发空间,对于一些简单的数据操作也要按照SDK(Software Development Kit,软件开发工具包)中的较为复杂的代码编写步骤一步一步实现,任何对数据库表的操作都要写SQL(StructureQuery Language,结构化查询语言)代码来实现,给软件开发带来了难度和复杂度。这样就会影响开发效率,甚至会产生更多的代码编写错误。
现有SQLite开发中存在的问题是,要按照SDK的中复杂的代码编写方法实现,要开发人员对数据库表的操作写出SQL代码,操作难度较大且复杂,不利于提高软件开发效率,且会产生较多的代码编写、编译错误。
发明内容
本发明针对上述问题,提出了一种SQLite数据库开发工具包及开发方法。
在一个方面,本发明提供了一种SQLi te数据库开发工具包,其包括:
接口单元,用于向JAVA环境提供SQLite数据库调用接口;
语言转换单元,用于完成JAVA语言与SQL语言的转换;
执行单元,用于执行由语言转换单元转换输出的SQL语言,并将执行所述SQL语言得到的数据存储至SQLite数据库。
在另一个方面,本发明提供了一种SQLite数据库开发工具包的开发方法,其包括:
在JAVA环境中调用对象的方法;
通过JAVA反射机制从Java对象中获得所述对象的信息、方法和属性;
在JAVA环境中设置所述对象的信息或属性;
将设置后的所述对象由JAVA语言转换成对应的SQL语言,并输出至SQLite数据库保存。
本发明提供了一种SQLi te数据库开发工具包及开发方法,通过在JAVA环境中调用对象的方法,通过JAVA反射机制从JAVA对象中获得所述对象的信息、方法和属性,在JAVA环境中对所述对象的信息或属性其进行设置,将设置后的所述对象由JAVA语言转换成对应的SQL语言,并输出至SQLite数据库保存,供下次JAVA调用,使开发人员在开发过程省去了开发SQL语言代码的麻烦,提高了开发效率,也保证了开发的准确性和稳定性。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1为本发明实施例提供的一种SQLite数据库开发工具包示意图;
图2为本发明实施例提供的SQLite数据库开发工具包的实例图;
图3为本发明实施例提供的一种利用SQLite数据库开发工具包的开发方法。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
如图1所示,为了简化SQLi te数据库的开发,本发明的实施例提供了一种SQLi te数据库开发工具包,其包括:
接口单元101,用于向JAVA环境提供SQLit e数据库调用接口。具体如图2所示,所述接口单元101是SQLi te数据库开发工具包与外部开发环境的接口,其具体用于接收JAVA环境调用对象请求并输出数据,还用于接收设置后的对象数据。接口单元101接收到外部开发环境对对象数据的调用请求后,将该调用请求输出至语言转换单元102,将外部开发环境的语言如JAVA语言转换成SQLi te数据库可识别的SQL语言后,输出至执行单元103,执行单元103根据该调用请求查询出与请求调用的对象数据相对应的SQLi te数据库数据输出至语言转换单元102,经语言转换单元102将SQL语言的SQLite数据库数据转换成外部开发环境可识别的语言,如JAVA语言后,输出至接口单元101,由接口单元101反馈给外部开发环境,比如JAVA环境。
若外部开发环境将设置后的对象数据输出至接口单元101,具体对象数据的设置包括增加、删除、修改和查询,由接口单元101将设置后的对象数据输出至语言转换单元102,经语言转换单元102转换成SQL语言后输出至执行单元103执行后保存至SQLi te数据库中。
语言转换单元102,用于完成JAVA语言与SQL语言的转换。所述语言转换单元102,具体用于在接口单元101接收调用对象请求并输出数据时,将SQLite数据库数据的SQL语言转换成JAVA语言输出至接口单元;在接口单元101接收设置后的对象数据时,将从接口单元101获取设置后的对象数据的JAVA语言转换成SQL语言输出至执行单元103。
执行单元103,用于执行由语言转换单元转换后输出的SQL语言,并将执行所述SQL语言得到的数据存储至SQLi te数据库。所述执行单元103还包括版本管理单元,用于当数据库的数据结构发生改变时,更新所述SQLi te数据库的版本信息。执行单元103接收语言转换单元102从接口单元101获取设置后的对象数据的JAVA语言转换成对应的sQL语言,若设置后的SQLite数据库数据结构发生改变时,例如,设置前SQLi te数据库数据的属性包括姓名、年龄、手机号,设置后SQLite数据库数据属性变成:姓名、年龄、手机号、邮箱,或者变成:姓名、手机号、邮箱,即数据库的数据结构发生了变化,则更新所述SQLi te数据库的版本信息。执行单元103保存设置后的数据并更新数据库版本信息,可以将不同版本的数据库开来,方便后续开发的调用。
如图3所示,为了解决SQLi te数据库开发中存在的问题,例如,即使进行一些简单的数据库操作也要编写复杂的代码,效率较低,且难度和复杂度较高,本发明实施例提供了一种利用SQLi te数据库开发工具包的开发方法,其包括:
步骤S301:在JAVA环境中调用对象的方法。操作数据库时,相当于当前主流的ORM(Object/Relat ion MaPPPing,对象-关系映射)框架结构,对于对数据库开发不熟练的开发人员和面向对象的开发理念非常适用,通过操作JAVA环境中的对象就可以更改SQ Li te数据库中的数据。
步骤S302:通过JAVA反射机制从JAVA对象中获得所述对象的信息、方法和属性。程序运行时,允许改变程序结构或变量类型的语言称为动态语言。JAVA不是动态语言,但是JAVA有着一个非常突出的动态相关机制:JAVA反射机制。JAVA反射机制用在JAVA环境中指的是可以在运行时加载、探知、使用编译期间完全未知的类,即,JAVA环境中可以加载一个运行时才得知名称的类,获悉其完整构造(但不包括方法定义),并生成其对象实体、或对其fields设值、或唤起其方法。就是说JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性,在步骤S301中利用JAVA反射机制从JAVA对象中获得所有对象的信息、方法和属性。
在步骤S302之前,可以将SQLite数据库中的数据读取到JAVA环境中以建立SQ Li te数据库数据与JAVA对象的映射关系,JAVA反射机制根据该映射关系获取所述对象的信息、方法和属性,并将SQLi te数据库版本信息作为参数信息输出至JAVA环境中,这样就可以将不同版本的数据区别开来,方便开发时对不同版本数据相对应的对象进行调用、设置等开发工作。
其中建立SQLite数据库数据与JAVA对象映射关系是将SQLi te数据库中数据的SQL语言读取出来并转换成JAVA语言后输出至JAVA环境中,建立SQLite数据库数据与JAVA对象的映射关系。
S303:在JAVA环境中对所述对象的信息、属性其进行设置。在JAVA环境中调用某一对象的方法,并对该对象的信息或属性并对其进行设置,具体的设置包括对数据表的插入、修改、删除、查询等方法,可以直接使用该工具包中的方法,这些方法的特点是:开发人员不需要写这些操作的SQL代码,而是将该表对应的JAVA环境中的对象属性值修改后,调用工具包中封装好的插入、修改、删除、查询等方法,利用对象中的属性值做为这些操作的条件和设置的值,就可以实现想要的结果。步骤S303中,在JAVA环境中设置所述对象的信息或属性,具体包括:在JAVA环境中调用某一对象的方法,对其信息或属性进行的设置包括增加、删除、修改和查询。例如,以增加为例,说明一下,采用本发明实施例所提供的SQLit e数据库开发的方法向用户表中插入一条数据,代码实现如下:
采用本实施例中提供的SQ Li te数据库开发的方法,加如下代码就可以将上述插入的用户表实例保存至SQ Li te数据中,可供后续开发调用,而不需要开发人员写SQL代码,具体代码实现如下:
当对大量数据库对象的数据进行查询时,为了执行的效率和显示效果,可能要将查询结果分批显示出来,那么就需要开发人员在执行查询的SQL代码,对数据库数据分批查询出来,本发明实施例提供了方便开发人员调用的分页查询的方法,将页码和每页的数据条数作为参数,以使对对象进行查询时,对查询结果进行分页显示。
S304:将设置后的所述对象由JAVA语言转换成对应的SQL语言,并输出至SQLi te数据库保存。经过步骤S304将设置后的对象由JAVA语言转换成SQL语言,输出至SQLi te数据库保存,即使设置后的对象持久化到SQLite数据库中,以便后续开发调用。每次将设置后的对象由JAVA语言转换成SQL语言的SQLite数据库数据,若设置后的的SQLite数据库数据结构发生了改变,则输出至SQLi te数据库的同时将SQLite数据库的版本信息进行更新,即当SQLite数据库的数据被调用设置后,其结构发生了改变,例如,设置前SQLite数据库数据结构的属性包括姓名、年龄、手机号,设置后SQLi te数据库数据的属性变成:姓名、年龄、手机号、邮箱,或者变成:姓名、手机号、邮箱,则SQLite数据库的版本信息就升级了,将新的版本信息作为SQLite数据库参数,不同版本间的SQLi te数据库可以区分开来,方便SQLi te数据库的开发。
开发人员在管理数据库的数据时,基本都需要做事务处理。事务处理,即对数据库执行多条修改或插入数据的SQL代码时,如果中间有一条SQL语句执行发生异常或失败时,则这一系列的修改或插入数据的SQL语句都会失败,数据会回滚到所有语句执行前的状态。当用户需要使用事务处理时,就可以将这条SQL语句做为参数,再调用该方法就可以实现数据库的事务处理了。
本发明实施例提供的一种利用SQ Li te数据库开发工具包的开发方法,通过在JAVA环境中调用对象的方法,通过JAVA反射机制从JAVA对象中获得对象的信息、方法和属性,在JAVA环境中对所述对象的信息或属性其进行设置,将设置后的所述对象由JAVA语言转换成对应的SQL语言,并输出至SQLite数据库保存,供下次JAVA调用设置,使开发人员在开发过程省去了开发SQL语言代码的麻烦,提高了开发效率,也保证了开发的准确性和稳定性。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。
Claims (10)
1.一种SQ Li te数据库开发工具包,其包括:
接口单元,用于向JAVA环境提供SQLite数据库调用接口;
语言转换单元,用于完成JAVA语言与SQL语言的转换;
执行单元,用于执行由语言转换单元转换输出的SQL语言,并将执行所述SQL语言得到的数据存储至SQLi te数据库。
2.如权利要求1所述的工具包,其特征在于,所述接口单元,具体用于接收调用对象请求并输出对象数据,还用于接收设置后的对象数据。
3.如权利要求1或2所述的工具包,其特征在于,所述语言转换单元,具体用于在接口单元接收调用对象请求并输出对象数据时,将执行单元从SQLite数据库读取的数据转换成JAVA对象输出至接口单元;在接口单元接收设置后的JAVA对象数据时,将从接口单元获取到的设置后的JAVA对象转换成SQL语言输出至执行单元。
4.如权利要求3所述的工具包,其特征在于,所述执行单元还包括版本管理单元,用于当数据结构发生改变时,更新所述SQLite数据库的版本信息。
5.一种利用如权利要求1至4任一所述的SQLite数据库开发工具包的开发方法,其特征在于,
在JAVA环境中调用对象的方法;
通过JAVA反射机制从Java对象中获得所述对象的信息、方法和属性;
在JAVA环境中设置所述对象的信息或属性;
将设置后的所述对象由JAVA语言转换成对应的SQL语言,并输出至SQLite数据库保存。
6.如权利要求5所述的方法,其特征在于,通过JAVA反射机制从Java对象中获得所述对象的信息、方法和属性之前,还包括:
将SQLite数据库中的数据读取到JAVA环境中以建立SQLite数据库数据与JAVA对象的映射关系,JAVA反射机制根据对象的所述映射关系获取JAVA对象的信息、方法和属性。
7.如权利要求6所述的方法,其特征在于,将SQLite数据库中的数据读取到JAVA环境中以建立SQLi te数据库数据与JAVA对象的映射关系,具体包括:将描述SQLite数据库中数据的SQL语言读取出来并转换成JAVA语言后输出至JAVA环境中,建立SQL ite数据库数据与JAVA对象的映射关系。
8.如权利要求5所述的方法,其特征在于,当数据结构发生改变时,将SQLite数据库的版本信息进行更新。
9.如权利要求5所述的方法,其特征在于,在JAVA环境中设置所述对象的信息或属性,具体包括:在JAVA环境中调用某一对象的信息、方法或属性后,对其进行的设置包括增加、删除、修改和查询。
10.如权利要求9所述的方法,其特征在于,对SQLi t e数据库的数据进行查询时,对查询结果进行分页显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310727273.1A CN103677846A (zh) | 2013-12-25 | 2013-12-25 | 一种SQLite数据库开发工具包及开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310727273.1A CN103677846A (zh) | 2013-12-25 | 2013-12-25 | 一种SQLite数据库开发工具包及开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103677846A true CN103677846A (zh) | 2014-03-26 |
Family
ID=50315513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310727273.1A Pending CN103677846A (zh) | 2013-12-25 | 2013-12-25 | 一种SQLite数据库开发工具包及开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677846A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881461A (zh) * | 2015-05-22 | 2015-09-02 | 国云科技股份有限公司 | 一种快速数据保存方法 |
CN110740291A (zh) * | 2018-07-20 | 2020-01-31 | 视联动力信息技术股份有限公司 | 一种基于视联网监控数据的同步方法及装置 |
CN111966704A (zh) * | 2020-07-09 | 2020-11-20 | 杭州传化智能制造科技有限公司 | Orm框架实现方法、系统、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289125A1 (en) * | 2004-06-23 | 2005-12-29 | Oracle International Corporation | Efficient evaluation of queries using translation |
CN102681852A (zh) * | 2012-05-16 | 2012-09-19 | 河南辉煌科技股份有限公司 | 基于JavaEE的敏捷开发方法 |
-
2013
- 2013-12-25 CN CN201310727273.1A patent/CN103677846A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289125A1 (en) * | 2004-06-23 | 2005-12-29 | Oracle International Corporation | Efficient evaluation of queries using translation |
CN102681852A (zh) * | 2012-05-16 | 2012-09-19 | 河南辉煌科技股份有限公司 | 基于JavaEE的敏捷开发方法 |
Non-Patent Citations (2)
Title |
---|
张秀宏: "基于反射机制的轻量级Java持久层框架设计与实现", 《万方学位论文》 * |
黄睿: "基于Java技术的ORM工具接口的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881461A (zh) * | 2015-05-22 | 2015-09-02 | 国云科技股份有限公司 | 一种快速数据保存方法 |
CN110740291A (zh) * | 2018-07-20 | 2020-01-31 | 视联动力信息技术股份有限公司 | 一种基于视联网监控数据的同步方法及装置 |
CN111966704A (zh) * | 2020-07-09 | 2020-11-20 | 杭州传化智能制造科技有限公司 | Orm框架实现方法、系统、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841841B (zh) | 一种测试中的断言处理方法及系统 | |
CN109062617A (zh) | 一种支持多类型设备的平台的应用方法、移动终端 | |
CN111104421A (zh) | 一种基于数据接口标准配置的数据查询方法及装置 | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
CN111797073A (zh) | 数据库管理方法、电子设备与计算机可读存储介质 | |
CN106796521B (zh) | 独立于产品发布的api版本控制 | |
CN112698888A (zh) | 应用程序的组件化、组件调用和组件初始化方法及其装置 | |
CN111158741A (zh) | 监控业务模块对第三方类库依赖关系变化的方法及装置 | |
CN110597896A (zh) | 一种数据展示方法、数据展示装置及终端设备 | |
CN110968296B (zh) | 一种数据获取方法、装置、设备及可读存储介质 | |
CN110457013B (zh) | 程序组件配置装置及方法 | |
CN103677846A (zh) | 一种SQLite数据库开发工具包及开发方法 | |
CN111078213A (zh) | 一种代码生成方法及代码生成装置 | |
CN111324803B (zh) | 搜索引擎的查询请求处理方法、装置及客户端 | |
CN116432185B (zh) | 一种异常检测方法、装置、可读存储介质及电子设备 | |
CN109669735B (zh) | 基于延时注册的应用启动方法、装置和存储介质 | |
CN107844360B (zh) | 一种硬盘执行应用代码的方法及装置 | |
CN116466915A (zh) | 一种基于MVP架构的iOS开发框架构建方法和装置 | |
CN112445851A (zh) | 一种插拔式orm框架实现方法、装置、电子设备和存储介质 | |
CN116414689A (zh) | 一种基于反射机制的接口参数校验方法及系统 | |
CN113568603B (zh) | 组件对象创建及接口方法调用方法、终端及存储装置 | |
CN109144620B (zh) | 一种悬浮窗权限设置界面的跳转方法及装置 | |
CN113110885A (zh) | 一种应用软件连接数据库的方法、存储介质及终端设备 | |
CN113050962A (zh) | 移动服务升级方法、装置和终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100080 Beijing city Haidian District Danleng Street No. 6 Building 1 6 706 Applicant after: Kara payment Limited by Share Ltd Address before: 100080 Beijing city Haidian District Danleng Street No. 6 Building 1 7 808 Applicant before: Lakala Payment Co., Ltd. |
|
COR | Change of bibliographic data | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |
|
RJ01 | Rejection of invention patent application after publication |