本发明涉及一种数据库引擎,属于数据库技术领域。
背景技术:
企业项目开发中,为了提高开发效率,降低开发成本,可从数据库处理方面切入,当前常用的数据库处理方案有两种:一是采用开源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语句。
④将查询结果组装成对应的实体列表。