CN106446182A - 一种数据库引擎 - Google Patents
一种数据库引擎 Download PDFInfo
- Publication number
- CN106446182A CN106446182A CN201610860097.2A CN201610860097A CN106446182A CN 106446182 A CN106446182 A CN 106446182A CN 201610860097 A CN201610860097 A CN 201610860097A CN 106446182 A CN106446182 A CN 106446182A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- data source
- database engine
- thread
- 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
- G06F16/211—Schema design and management
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
本发明公开一种数据库引擎,其包括负载均衡取数据器、数据库实体bean,其特征在于;通过数据源配置文件,建立多个能与不同类型的数据库相连接的数据源池,以数据源名称从数据源池中获取数据连接,将数据连接放入线程数据连接池,所述的数据源池与数据连接池依次与基础sql执行层、持久化对象sql转换层、外部操作接口层相连,本发明能达到更高的SQL执行效率、可减少不必要的重复数据库连接和jdbc处理相关操作,为开发人员赢得时间和效率。
Description
技术领域
本发明涉及一种数据库引擎,属于数据库技术领域。
背景技术
企业项目开发中,为了提高开发效率,降低开发成本,可从数据库处理方面切入,当前常用的数据库处理方案有两种:一是采用开源ORM,如Hibernate,此方案依赖包太多,而且上手难度大,效率也不太高;二是采用纯JDBC操作,虽然此方案执行效率最高,但是在处理复杂数据表的时候开发人员要记住字段名称或者序号,很容易出错,错误后很难排查,而且,当前的数据处理方案,大多存在着大量的重复数据库连接和jdbc操作的问题,为此,应结合实际需求,开发一套数据库操作引擎,减少不必要的重复数据库连接和jdbc处理相关操作,为开发人员赢得时间和效率。
发明内容
本实用型要解决的技术问题是提供一种数据库引擎,可达到更高的SQL执行效率、可减少不必要的重复数据库连接和jdbc处理相关操作,为开发人员赢得时间和效率,克服现有技术的不足。
本发明的技术方案是:一种数据库引擎,其包括负载均衡取数据器、数据库实体bean,通过数据源配置文件,建立多个能与不同类型的数据库相连接的数据源池,以数据源名称从数据源池中获取数据连接,将数据连接放入线程数据连接池,所述的数据源池与数据连接池依次与基础sql执行层、持久化对象sql转换层、外部操作接口层相连。
上述线程数据连接池的同一个线程中只存在同一个连接。
上述的实体bean中,以反射机制解析出数据库表名和表字段。
上数据源池所创建的数据库通过负载均衡取数据器连回数据源池。
现有技术比较,本发明的数据库引擎,通过数据源配置文件,建立多个能与不同类型的数据库相连接的数据源池,以数据源名称从数据源池中获取数据连接,将数据连接放入线程数据连接池,这样能建立一个轻量化的底层数据库操作框架,达到更高的SQL执行效率,减少不必要的重复数据库连接和jdbc处理相关操作,更重要的是,引擎在同一应用中提供多数据源操作,为数据库集群、读写分离、数据库负载均衡等高可用、高负载的数据库解决方案提供程序应用级别的支持,为开发人员赢得时间和效率。
所述的数据源池与数据连接池依次与基础sql执行层、持久化对象sql转换层、外部操作接口层相连,这样在自动创建数据库表过程中:通过数据源名称从数据源池中获取数据连接,并放入线程数据连接池,在同一个线程中只存在同一个连接,以此来保证同一个线程请求的事务提交,组织查询数据表信息的sql语句,调用外部操作接口层的接口查询出数据库中的所有表结构信息,加载数据库实体bean,通过反射机制解析出实体bean的数据库表名和表字段,判断数据库中是否存在解析出的实体beanr的数据库表名,不存在则执行创建操作,根据解析出的数据库表名和字段,组装创建数据库表的sql语句,调用外部操作接口层的接口,通过取线程连接池中的连接执行sql语句,完成数据库表创建;在保存数据过程中:将需要保存的内容放入实体bean中,通过反射机制解析出实体bean的表结构和填充内容,组将成数据库表的***sql语句,通过数据源名称取得线程池中的数据连接,通过取得的数据连接执行数据库表的***sql语句,完成数据保存入库;在查询数据过程中:组装查询sql语句,通过数据源名称取得线程池中的数据连接,通过取得的数据连接执行数据库表的查询sql语句,将查询结果组装成对应的实体列表。
上述线程数据连接池的同一个线程中只存在同一个连接,这样能在同一个线程过来获取连接的时候,确保取到的是同一连接,以此来保证同一个线程请求的事务提交。
上述的实体bean中,以反射机制解析出数据库表名和表字段,这样能很容易反响生成数据库表以及字段的相关信息,最主要的是字段注解也一并生成。
上数据源池所创建的数据库通过负载均衡取数据器连接回数据源池,这样可以不断的保留与扩充数据库,同时,负载均衡取数据器的使用能实现多条网络链路分担数据流量。
附图说明
图1是本发明的连接结构示意图;
具体实施方式
实施例1. 如图1所示,一种数据库引擎,其包括负载均衡取数据器、数据库实体bean,其特征在于;通过数据源配置文件,建立多个能与不同类型的数据库相连接的数据源池,以数据源名称从数据源池中获取数据连接,将数据连接放入线程数据连接池,所述的数据源池与数据连接池依次与基础sql执行层、持久化对象sql转换层、外部操作接口层相连,线程数据连接池的同一个线程中只存在同一个连接,在实体bean中,以反射机制解析出数据库表名和表字段,数据源池所创建的数据库通过负载均衡取数据器连接回数据源池。
其运转过程
1.自动创建数据库表过程:
①建立数据库实体bean,并在实体中加入自定义的表名和字段注解。
②通过数据源配置文件,建立多数据源池,在同一个应用中可使用不同类型的数据库。
③通过数据源名称从数据源池中获取数据连接,并放入线程数据连接池,在同一个线程中只存在同一个连接,以此来保证同一个线程请求的事务提交。
④组织查询数据表信息的sql语句,调用外部操作接口层的接口查询出数据库中的所有表结构信息。
⑤加载数据库实体bean,通过反射机制解析出实体bean的数据库表名和表字段。
⑥判断数据库中是否存在解析出的实体beanr的数据库表名。不存在则执行创建操作。
⑦根据解析出的数据库表名和字段,组装创建数据库表的sql语句。
⑧调用外部操作接口层的接口,通过取线程连接池中的连接执行sql语句,完成数据库表创建。
2.保存数据过程:
①建立实体bean。
②将需要保存的内容放入实体bean中。
③通过反射机制解析出实体bean的表结构和填充内容。
④组将成数据库表的***sql语句。
⑤通过数据源名称取得线程池中的数据连接。
⑥通过取得的数据连接执行数据库表的***sql语句。
⑦完成数据保存入库。
3. 查询数据过程:
①组装查询sql语句。
②通过数据源名称取得线程池中的数据连接。
③通过取得的数据连接执行数据库表的查询sql语句。
④将查询结果组装成对应的实体列表。
Claims (4)
1.一种数据库引擎,其包括负载均衡取数据器、数据库实体bean,其特征在于;通过数据源配置文件,建立多个能与不同类型的数据库相连接的数据源池,以数据源名称从数据源池中获取数据连接,将数据连接放入线程数据连接池,所述的数据源池与数据连接池依次与基础sql(sql)执行层、持久化对象sql转换层、外部操作接口层相连。
2.根据权利1要求所述的数据库引擎,其特征在于:所述线程数据连接池的同一个线程中只存在同一个连接。
3.根据权利1要求所述的数据库引擎,其特征在于:在所述的实体bean中,以反射机制解析出数据库表名和表字段。
4.根据权利3要求所述的数据库引擎,其特征在于:数据源池所创建的数据库(数据库连接)通过负载均衡器取数据连接回数据源池。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860097.2A CN106446182A (zh) | 2016-09-29 | 2016-09-29 | 一种数据库引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610860097.2A CN106446182A (zh) | 2016-09-29 | 2016-09-29 | 一种数据库引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106446182A true CN106446182A (zh) | 2017-02-22 |
Family
ID=58171084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610860097.2A Pending CN106446182A (zh) | 2016-09-29 | 2016-09-29 | 一种数据库引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106446182A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061801A (zh) * | 2019-12-25 | 2020-04-24 | 天津南大通用数据技术股份有限公司 | 一种事务型数据库读写分离实现方法 |
CN113535149A (zh) * | 2021-07-27 | 2021-10-22 | 在线途游(北京)科技有限公司 | 一种基于自定义bean的多数据源配置与解析方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567301A (zh) * | 2003-06-23 | 2005-01-19 | 华为技术有限公司 | 访问数据库的方法及装置 |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN102214092A (zh) * | 2010-10-11 | 2011-10-12 | 新太科技股份有限公司 | 一种软件开发辅助工具包 |
CN104598840A (zh) * | 2015-02-04 | 2015-05-06 | 新余兴邦信息产业有限公司 | 基于Http协议的多数据源的数据处理方法及*** |
CN104991824A (zh) * | 2015-08-03 | 2015-10-21 | 上海斐讯数据通信技术有限公司 | 一种动态切换应用程序数据源的方法及*** |
CN105549982A (zh) * | 2016-01-14 | 2016-05-04 | 国网山东省电力公司物资公司 | 一种基于模型配置的自动化开发平台 |
CN105677323A (zh) * | 2015-12-31 | 2016-06-15 | 合肥大多数信息科技有限公司 | 一种自动生成数据库操作层代码的方法 |
CN105677324A (zh) * | 2015-12-31 | 2016-06-15 | 合肥大多数信息科技有限公司 | 一种自动生成实体类代码的方法 |
CN105808776A (zh) * | 2016-03-29 | 2016-07-27 | 中国建设银行股份有限公司 | 一种分布式数据库的数据管理***及方法 |
CN106446127A (zh) * | 2016-09-19 | 2017-02-22 | 济南浪潮高新科技投资发展有限公司 | 一种在数据库中利用二维矩阵表保护数据一致性的方法 |
-
2016
- 2016-09-29 CN CN201610860097.2A patent/CN106446182A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567301A (zh) * | 2003-06-23 | 2005-01-19 | 华为技术有限公司 | 访问数据库的方法及装置 |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN102214092A (zh) * | 2010-10-11 | 2011-10-12 | 新太科技股份有限公司 | 一种软件开发辅助工具包 |
CN104598840A (zh) * | 2015-02-04 | 2015-05-06 | 新余兴邦信息产业有限公司 | 基于Http协议的多数据源的数据处理方法及*** |
CN104991824A (zh) * | 2015-08-03 | 2015-10-21 | 上海斐讯数据通信技术有限公司 | 一种动态切换应用程序数据源的方法及*** |
CN105677323A (zh) * | 2015-12-31 | 2016-06-15 | 合肥大多数信息科技有限公司 | 一种自动生成数据库操作层代码的方法 |
CN105677324A (zh) * | 2015-12-31 | 2016-06-15 | 合肥大多数信息科技有限公司 | 一种自动生成实体类代码的方法 |
CN105549982A (zh) * | 2016-01-14 | 2016-05-04 | 国网山东省电力公司物资公司 | 一种基于模型配置的自动化开发平台 |
CN105808776A (zh) * | 2016-03-29 | 2016-07-27 | 中国建设银行股份有限公司 | 一种分布式数据库的数据管理***及方法 |
CN106446127A (zh) * | 2016-09-19 | 2017-02-22 | 济南浪潮高新科技投资发展有限公司 | 一种在数据库中利用二维矩阵表保护数据一致性的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061801A (zh) * | 2019-12-25 | 2020-04-24 | 天津南大通用数据技术股份有限公司 | 一种事务型数据库读写分离实现方法 |
CN113535149A (zh) * | 2021-07-27 | 2021-10-22 | 在线途游(北京)科技有限公司 | 一种基于自定义bean的多数据源配置与解析方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123374B (zh) | 分布式数据库中聚合查询的方法及装置 | |
US10585887B2 (en) | Multi-system query execution plan | |
Bajda-Pawlikowski et al. | Efficient processing of data warehousing queries in a split execution environment | |
US8719312B2 (en) | Input/output efficiency for online analysis processing in a relational database | |
US9754010B2 (en) | Generation of cube metadata and query statement based on an enhanced star schema | |
CN109446279A (zh) | 基于neo4j大数据血缘关系管理方法、***、设备及存储介质 | |
US20140280030A1 (en) | Method of converting query plans to native code | |
US9195456B2 (en) | Managing a catalog of scripts | |
JP2013503381A5 (zh) | ||
CN107784026A (zh) | 一种etl数据处理方法及装置 | |
CN107818181A (zh) | 基于Plcient交互式引擎的索引方法及其*** | |
CN106446182A (zh) | 一种数据库引擎 | |
US8886659B2 (en) | Data framework to enable rich processing of data from any arbitrary data source | |
Guntupally et al. | Automated indexing of structured scientific metadata using apache solr | |
US9275103B2 (en) | Optimization of JOIN queries for related data | |
Zhang et al. | Unified SQL query middleware for heterogeneous databases | |
CN109753533A (zh) | 一种多源关系型数据库客户端开发方法及装置 | |
CN109376154A (zh) | 数据读取、写入方法及数据读取、写入*** | |
US11636113B2 (en) | Method for performing multi-caching on data sources of same type and different types by using cluster-based processing system and device using the same | |
CN108073584B (zh) | 一种数据处理方法及服务器 | |
Gao et al. | Exploiting sharing join opportunities in big data multiquery optimization with Flink | |
Xu et al. | A unified computation engine for big data analytics | |
CN111079391B (zh) | 一种报表的生成方法及装置 | |
US11977582B2 (en) | Global index with repartitioning operator | |
CN114416784B (zh) | 处理数据库查询语句的方法、装置及原生分布式数据库 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |