一种自定义SQL语句的数据库查询方法及装置与流程

未命名 08-06 阅读:156 评论:0

一种自定义sql语句的数据库查询方法及装置
技术领域
1.本发明涉及数据处理技术领域,尤其涉及一种自定义sql语句的数据库查询方法及装置。


背景技术:

2.随着java开发技术的发展,多种java技术框架如雨后春笋般涌现。由于mybatis的易用性等原因,mybatis占据了中国的java持久层技术的大部分市场。mybatis主要提供了自定义sql查询,查询映射结果转换等功能。
3.使用mybatis现有的自定义sql查询功能时,每增加一个sql查询就需要在对应接口(interface)类文件中增加一个方法,然后在这个接口对应的mapper.xml文件中,写上对应的方法的sql查询语句;在日常后台开发中,这种使用方法符合开发原则,但在一些特殊场景,如单元测试,运营数据支撑查询等,需要多次写对应方法,确实比较繁琐,且无意义,增加复杂性。


技术实现要素:

4.本发明的目的在于克服现有技术的不足,本发明提供了一种自定义sql语句的数据库查询方法及装置,使用简单的几个类实现统一自定义sql查询,高效实用。
5.为了解决上述技术问题,本发明实施例提供了一种自定义sql语句的数据库查询方法,所述方法包括:
6.sqlexe组件通过sqlsession对象获得全局配置configuration对象,并基于所述全局配置configuration对象获得所需的对应数据;
7.利用所需的对应数据创建执行器executor和sqlcontext对象;
8.利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,并将所述更新mappedstatement对象当作参数传递给所述执行器executor执行;
9.调用statementhandler执行查询方法时,组装sql并调用数据库客户端执行sql查询数据;
10.在执行sql查询数据时,调用resultsethandler进行查询结果解析,并将解析的查询结果封装成实体对象并返回。
11.可选的,所述sqlexe组件通过sqlsession获得全局配置configuration对象,包括:
12.所述sqlexe组件通过sqlsession或者spring框架封装的sqlsessiontemplate对象获得全局配置configuration对象。
13.可选的,所述基于所述全局配置configuration对象获得所需的对应数据,包括:
14.基于所述全局配置configuration对象访问数据库中的数据源的方式获得所需的对应数据。
15.可选的,所述sqlsession对象的创建包括:
16.内置的defaultsessionfactory调用opensession方法穿件数据库连接,并封装成sqlsession对象。
17.可选的,所述sqlsession对象通过getmapper方法在所述全局配置configuration对象中查找创建对应mapper接口实例对象。
18.可选的,所述利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,包括:
19.所述sqlcontext对象调用mymappedstatement时,通过所述全局配置configuration对象访问数据库中的数据源,以及访问结果映射关系配置创建自定义的更新mappedstatement对象。
20.可选的,所述更新mappedstatement对象包含自定义的sql,以及访问映射关系。
21.可选的,所述sqlcontext对象由自定义sql查询上下文以及对外统一定义的sql查询方法的api封装而成。
22.可选的,所述在执行sql查询数据时,调用resultsethandler进行查询结果解析,包括:
23.在sql查询数据时,通过mybatis内部的字段映射转换成对应的实体对象,获得查询结果;
24.调用resultsethandler进行查询结果解析。
25.另外,本发明实施例还提供了一种自定义sql语句的数据库查询装置,所述装置包括:
26.获得模块:用于sqlexe组件通过sqlsession对象获得全局配置configuration对象,并基于所述全局配置configuration对象获得所需的对应数据;
27.创建模块:用于利用所需的对应数据创建执行器executor和sqlcontext对象;
28.更新模块:用于利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,并将所述更新mappedstatement对象当作参数传递给所述执行器executor执行;
29.查询模块:用于调用statementhandler执行查询方法时,组装sql并调用数据库客户端执行sql查询数据;
30.封装返回模块:用于在执行sql查询数据时,调用resultsethandler进行查询结果解析,并将解析的查询结果封装成实体对象并返回。
31.在本发明实施例中,无需引入额外的依赖包,使用简简单单的几个类就可以实现统一自定义sql查询,不会给现有项目增加过多复杂依赖,同时又能提高开发效率,非常实用。
附图说明
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
33.图1是本发明实施例中的自定义sql语句的数据库查询方法的流程示意图;
34.图2是本发明实施例中的自定义sql语句的数据库查询装置的结构组成示意图。
具体实施方式
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
36.实施例一,请参阅图1,图1是本发明实施例中的自定义sql语句的数据库查询方法的流程示意图。
37.如图1所示,一种自定义sql语句的数据库查询方法,所述方法包括:
38.s11:sqlexe组件通过sqlsession对象获得全局配置configuration对象,并基于所述全局配置configuration对象获得所需的对应数据;
39.在本发明具体实施过程中,所述sqlexe组件通过sqlsession获得全局配置configuration对象,包括:所述sqlexe组件通过sqlsession或者spring框架封装的sqlsessiontemplate对象获得全局配置configuration对象。
40.进一步的,所述基于所述全局配置configuration对象获得所需的对应数据,包括:基于所述全局配置configuration对象访问数据库中的数据源的方式获得所需的对应数据。
41.进一步的,所述sqlsession对象的创建包括:内置的defaultsessionfactory调用opensession方法穿件数据库连接,并封装成sqlsession对象。
42.进一步的,所述sqlsession对象通过getmapper方法在所述全局配置configuration对象中查找创建对应mapper接口实例对象。
43.具体的,sqlexe,封装构造sqlcontext对象的方法,具体通过sqlsession或者spring框架封装的sqlsessiontemplate对象的方式获得全局配置configuration对象,然后通过全局配置configuration对象就可以获取一切所需的数据,然后创建所需的对象等。
44.即可通过全局配置configuration对象访问数据库中的数据源的方式获得所需的对应数据。
45.其中sqlsession对象的创建为通过defaultsessionfactory调用opensession方法穿件数据库连接,并封装成的sqlsession对象。
46.并且该sqlsession对象通过getmapper方法在全局配置configuration对象中查找创建对应mapper接口实例对象。
47.s12:利用所需的对应数据创建执行器executor和sqlcontext对象;
48.在本发明具体实施过程中,通过利用全局配置configuration对象获得所需的对应数据,并通过利用所需的对应数据创建执行器executor和sqlcontext对象;其中sqlcontext对象封装自定义sql查询上下文(包含一切完成自定义sql的所需原数据)以及对外统一自定义sql查询方法api,如果别人想使用本发明的自定义sql查询,只要获取到sqlcontext对象,调用该api就可以了;内部实现方法主要是通过mymappedstatement创建自定义的新mappedstatement,然后通过executor执行即可。
49.s13:利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,并将所述更新mappedstatement对象当作参数传递给所述执行器executor执行;
50.在本发明具体实施过程中,所述利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,包括:所述sqlcontext对象调用mymappedstatement时,通过所述全局配置configuration对象访问数据库中的数据源,以及访问结果映射关系配置创建自定义的更新mappedstatement对象。
51.进一步的,所述更新mappedstatement对象包含自定义的sql,以及访问映射关系。
52.进一步的,所述sqlcontext对象由自定义sql查询上下文以及对外统一定义的sql查询方法的api封装而成。
53.具体的,sqlcontext对象调用mymappedstatement时,通过全局配置configuration对象访问数据库中的数据源,以及访问结果映射关系配置创建自定义的更新mappedstatement对象;然后将更新mappedstatement对象当作参数传递给所述执行器executor执行。
54.封装创建自定义mappedstatement方法,通过全局配置configuration数据库数据源,以及基本结果映射关系配置,创建新的mappedstatement对象,这个对象包含自定义的sql,以及结果映射关系,后续操作只要将这个对象当做参数传给执行器executor执行即可。
55.即有,更新mappedstatement对象包含自定义的sql,以及访问映射关系;sqlcontext对象由自定义sql查询上下文以及对外统一定义的sql查询方法的api封装而成。
56.s14:调用statementhandler执行查询方法时,组装sql并调用数据库客户端执行sql查询数据;
57.在本发明具体实施过程中,调用statementhandler执行查询方法时,通过组装sql并调用数据库客户端执行sql查询数据。
58.s15:在执行sql查询数据时,调用resultsethandler进行查询结果解析,并将解析的查询结果封装成实体对象并返回。
59.在本发明具体实施过程中,所述在执行sql查询数据时,调用resultsethandler进行查询结果解析,包括:在sql查询数据时,通过mybatis内部的字段映射转换成对应的实体对象,获得查询结果;调用resultsethandler进行查询结果解析。
60.具体的,在sql查询数据时,通过mybatis内部的字段映射转换成对应的实体对象,获得查询结果;调用resultsethandler进行查询结果解析;其中,mybatis解析cofig.xml,mapper.xml配置的过程包括:读取mybatis-cofig.xml配置;解析mybatis-cofig.xml配置,对xml对应的内容转换保存到java全局配置configuration对象中,如《environments/》这个节点的内容数据保存到configuration中的environment属性里;将mybatis-cofig.xml中指定的mapper.xml读取并解析保存到configuration中的mappedstatements属性里。
61.在本发明实施例中,无需引入额外的依赖包,使用简简单单的几个类就可以实现统一自定义sql查询,不会给现有项目增加过多复杂依赖,同时又能提高开发效率,非常实用。
62.实施例二,请参阅图2,图2是本发明实施例中的自定义sql语句的数据库查询装置的结构组成示意图。
63.如图2所示,一种自定义sql语句的数据库查询装置,所述装置包括:
64.获得模块21:用于sqlexe组件通过sqlsession对象获得全局配置configuration对象,并基于所述全局配置configuration对象获得所需的对应数据;
65.在本发明具体实施过程中,所述sqlexe组件通过sqlsession获得全局配置configuration对象,包括:所述sqlexe组件通过sqlsession或者spring框架封装的sqlsessiontemplate对象获得全局配置configuration对象。
66.进一步的,所述基于所述全局配置configuration对象获得所需的对应数据,包括:基于所述全局配置configuration对象访问数据库中的数据源的方式获得所需的对应数据。
67.进一步的,所述sqlsession对象的创建包括:内置的defaultsessionfactory调用opensession方法穿件数据库连接,并封装成sqlsession对象。
68.进一步的,所述sqlsession对象通过getmapper方法在所述全局配置configuration对象中查找创建对应mapper接口实例对象。
69.具体的,sqlexe,封装构造sqlcontext对象的方法,具体通过sqlsession或者spring框架封装的sqlsessiontemplate对象的方式获得全局配置configuration对象,然后通过全局配置configuration对象就可以获取一切所需的数据,然后创建所需的对象等。
70.即可通过全局配置configuration对象访问数据库中的数据源的方式获得所需的对应数据。
71.其中sqlsession对象的创建为通过defaultsessionfactory调用opensession方法穿件数据库连接,并封装成的sqlsession对象。
72.并且该sqlsession对象通过getmapper方法在全局配置configuration对象中查找创建对应mapper接口实例对象。
73.创建模块22:用于利用所需的对应数据创建执行器executor和sqlcontext对象;
74.在本发明具体实施过程中,通过利用全局配置configuration对象获得所需的对应数据,并通过利用所需的对应数据创建执行器executor和sqlcontext对象;其中sqlcontext对象封装自定义sql查询上下文(包含一切完成自定义sql的所需原数据)以及对外统一自定义sql查询方法api,如果别人想使用本发明的自定义sql查询,只要获取到sqlcontext对象,调用该api就可以了;内部实现方法主要是通过mymappedstatement创建自定义的新mappedstatement,然后通过executor执行即可。
75.更新模块23:用于利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,并将所述更新mappedstatement对象当作参数传递给所述执行器executor执行;
76.在本发明具体实施过程中,所述利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,包括:所述sqlcontext对象调用mymappedstatement时,通过所述全局配置configuration对象访问数据库中的数据源,以及访问结果映射关系配置创建自定义的更新mappedstatement对象。
77.进一步的,所述更新mappedstatement对象包含自定义的sql,以及访问映射关系。
78.进一步的,所述sqlcontext对象由自定义sql查询上下文以及对外统一定义的sql查询方法的api封装而成。
79.具体的,sqlcontext对象调用mymappedstatement时,通过全局配置configuration对象访问数据库中的数据源,以及访问结果映射关系配置创建自定义的更新mappedstatement对象;然后将更新mappedstatement对象当作参数传递给所述执行器executor执行。
80.封装创建自定义mappedstatement方法,通过全局配置configuration数据库数据源,以及基本结果映射关系配置,创建新的mappedstatement对象,这个对象包含自定义的sql,以及结果映射关系,后续操作只要将这个对象当做参数传给执行器executor执行即可。
81.即有,更新mappedstatement对象包含自定义的sql,以及访问映射关系;sqlcontext对象由自定义sql查询上下文以及对外统一定义的sql查询方法的api封装而成。
82.查询模块24:用于调用statementhandler执行查询方法时,组装sql并调用数据库客户端执行sql查询数据;
83.在本发明具体实施过程中,调用statementhandler执行查询方法时,通过组装sql并调用数据库客户端执行sql查询数据。
84.封装返回模块25:用于在执行sql查询数据时,调用resultsethandler进行查询结果解析,并将解析的查询结果封装成实体对象并返回。
85.在本发明具体实施过程中,所述在执行sql查询数据时,调用resultsethandler进行查询结果解析,包括:在sql查询数据时,通过mybatis内部的字段映射转换成对应的实体对象,获得查询结果;调用resultsethandler进行查询结果解析。
86.具体的,在sql查询数据时,通过mybatis内部的字段映射转换成对应的实体对象,获得查询结果;调用resultsethandler进行查询结果解析;其中,mybatis解析cofig.xml,mapper.xml配置的过程包括:读取mybatis-cofig.xml配置;解析mybatis-cofig.xml配置,对xml对应的内容转换保存到java全局配置configuration对象中,如《environments/》这个节点的内容数据保存到configuration中的environment属性里;将mybatis-cofig.xml中指定的mapper.xml读取并解析保存到configuration中的mappedstatements属性里。
87.在本发明实施例中,无需引入额外的依赖包,使用简简单单的几个类就可以实现统一自定义sql查询,不会给现有项目增加过多复杂依赖,同时又能提高开发效率,非常实用。
88.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
89.另外,以上对本发明实施例所提供的一种自定义sql语句的数据库查询方法及装置进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,
本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种自定义sql语句的数据库查询方法,其特征在于,所述方法包括:sqlexe组件通过sqlsession对象获得全局配置configuration对象,并基于所述全局配置configuration对象获得所需的对应数据;利用所需的对应数据创建执行器executor和sqlcontext对象;利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,并将所述更新mappedstatement对象当作参数传递给所述执行器executor执行;调用statementhandler执行查询方法时,组装sql并调用数据库客户端执行sql查询数据;在执行sql查询数据时,调用resultsethandler进行查询结果解析,并将解析的查询结果封装成实体对象并返回。2.根据权利要求1所述的数据库查询方法,其特征在于,所述sqlexe组件通过sqlsession获得全局配置configuration对象,包括:所述sqlexe组件通过sqlsession或者spring框架封装的sqlsessiontemplate对象获得全局配置configuration对象。3.根据权利要求1所述的数据库查询方法,其特征在于,所述基于所述全局配置configuration对象获得所需的对应数据,包括:基于所述全局配置configuration对象访问数据库中的数据源的方式获得所需的对应数据。4.根据权利要求1所述的数据库查询方法,其特征在于,所述sqlsession对象的创建包括:内置的defaultsessionfactory调用opensession方法穿件数据库连接,并封装成sqlsession对象。5.根据权利要求1所述的数据库查询方法,其特征在于,所述sqlsession对象通过getmapper方法在所述全局配置configuration对象中查找创建对应mapper接口实例对象。6.根据权利要求1所述的数据库查询方法,其特征在于,所述利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,包括:所述sqlcontext对象调用mymappedstatement时,通过所述全局配置configuration对象访问数据库中的数据源,以及访问结果映射关系配置创建自定义的更新mappedstatement对象。7.根据权利要求6所述的数据库查询方法,其特征在于,所述更新mappedstatement对象包含自定义的sql,以及访问映射关系。8.根据权利要求1所述的数据库查询方法,其特征在于,所述sqlcontext对象由自定义sql查询上下文以及对外统一定义的sql查询方法的api封装而成。9.根据权利要求1所述的数据库查询方法,其特征在于,所述在执行sql查询数据时,调用resultsethandler进行查询结果解析,包括:在sql查询数据时,通过mybatis内部的字段映射转换成对应的实体对象,获得查询结果;调用resultsethandler进行查询结果解析。
10.一种自定义sql语句的数据库查询装置,其特征在于,所述装置包括:获得模块:用于sqlexe组件通过sqlsession对象获得全局配置configuration对象,并基于所述全局配置configuration对象获得所需的对应数据;创建模块:用于利用所需的对应数据创建执行器executor和sqlcontext对象;更新模块:用于利用所述sqlcontext对象调用mymappedstatement创建自定义的更新mappedstatement对象,并将所述更新mappedstatement对象当作参数传递给所述执行器executor执行;查询模块:用于调用statementhandler执行查询方法时,组装sql并调用数据库客户端执行sql查询数据;封装返回模块:用于在执行sql查询数据时,调用resultsethandler进行查询结果解析,并将解析的查询结果封装成实体对象并返回。

技术总结
本发明公开了一种自定义SQL语句的数据库查询方法及装置,其中,所述方法包括:通过SQLSession对象获得全局配置对象,并获得所需的对应数据;创建执行器Executor和SQLContext对象;利用SQLContext对象创建自定义的更新MappedStatement对象,并将更新MappedStatement对象当作参数传递给执行器Executor执行;调用StatementHandler执行查询方法时,组装SQL并调用数据库客户端执行SQL查询数据;进行查询结果解析,并将解析的查询结果封装成实体对象并返回。在本发明实施例中,使用简单的几个类实现统一自定义SQL查询,高效实用。效实用。效实用。


技术研发人员:邱副添
受保护的技术使用者:蜂助手股份有限公司
技术研发日:2023.03.27
技术公布日:2023/7/26
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐