Method and apparatus for obtaining full volume executable SQL statement
Patent Information
- Application Number
- CN202211407825.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-10
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2042-11-10
AI Technical Summary
[0046]本申请通过探针注入方式,在无需获取程序源代码的情况下可以获得MyBatis的Configuration实例对象,并通过SQL占位符的传参类型将其替换成对应类型的数值以此获得可以直接执行的SQL语句,使得获取SQL的工作可集中到专业人员手中实施,减少工作安排的复杂度,提升专业度。本申请对程序、代码无入侵,不会对程序或代码进行修改,在采集过程中不会影响应用程序原本的逻辑,也不会影响到应用的相关人员继续开展工作。
Smart Images

Figure CN115658725B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of data acquisition technology, specifically, it relates to a method and apparatus for acquiring a full set of directly executable SQL statements. Background Technology
[0002] During data acquisition, to prevent poorly performing SQL statements from entering the production system and degrading the overall database performance, it is necessary to analyze the SQL statements before deployment. Therefore, the problem of full SQL statement acquisition needs to be solved. Existing full SQL statement acquisition solutions use static code scanning to scan XML or Java file annotations to obtain the full set of SQL statements. However, only the owner of the source code can scan the source code to obtain the SQL statements, and the obtained SQL statements are not directly executable, posing significant challenges to subsequent SQL analysis. Therefore, finding a way to obtain directly executable SQL statements has become a pressing issue. Summary of the Invention
[0003] This application provides a method and apparatus for obtaining a full set of directly executable SQL statements, in order to at least solve the problem that currently only the owner of the program source code can obtain SQL statements by scanning the source code, and the obtained SQL statements are not directly executable.
[0004] According to the first aspect of this application, a method for obtaining a full set of directly executable SQL statements is provided, comprising:
[0005] Perform the probe injection operation in the target program;
[0006] The full preprocessed SQL statements are obtained from the target program through the injected probe;
[0007] Parse the placeholder types of the full preprocessed SQL statement and determine the corresponding values of the types in the database and JAVA respectively;
[0008] Construct the full executable SQL statement based on the numerical values.
[0009] In one embodiment, the method for obtaining a full set of directly executable SQL statements further includes:
[0010] The parsed full preprocessed SQL statements are stored into pre-established collections;
[0011] Merge all collections into a single Map collection.
[0012] In one embodiment, the full preprocessed SQL statement is obtained from the target program via an injected probe, including:
[0013] The MyBatis Configuration instance object is obtained from the target program using a probe.
[0014] Get the full prepared SQL statement from the instance object.
[0015] In one embodiment, the method for obtaining a full set of directly executable SQL statements further includes:
[0016] Determine the type of parameters passed to the preprocessed SQL placeholders.
[0017] In one embodiment, the corresponding values are determined in the database and in Java based on the placeholder parameter types of the parsed full preprocessed SQL statement, including:
[0018] Parse the placeholders in the SQL statement and determine their type in the database;
[0019] Parse the placeholders in the SQL statement and determine their type in Java.
[0020] In one embodiment, the method for obtaining a full set of directly executable SQL statements further includes:
[0021] Based on the type of the placeholder in the database, retrieve the first value corresponding to that type from the pre-established first mapping table;
[0022] Based on the type of the placeholder in Java, retrieve the second value corresponding to that type from a pre-established second mapping table.
[0023] In one embodiment, constructing a full executable SQL statement based on numerical values includes:
[0024] The first and second values are combined to obtain an executable SQL statement.
[0025] According to another aspect of this application, an apparatus for obtaining a full set of directly executable SQL statements is also provided, comprising:
[0026] The probe injection unit is used to perform probe injection operations in the target program;
[0027] The full preprocessed SQL acquisition unit is used to obtain full preprocessed SQL statements from the target program through injected probes;
[0028] A numerical determination unit is used to parse the placeholder types of the full preprocessed SQL statement and determine the numerical values corresponding to the types in the database and in JAVA, respectively.
[0029] The concatenation unit is used to concatenate a full executable SQL statement based on the numerical values.
[0030] In one embodiment, the apparatus for obtaining a full set of directly executable SQL statements further includes:
[0031] The pre-storage module is used to store the parsed, fully preprocessed SQL statements into pre-established collections.
[0032] The collection merging module is used to merge all collections into a single Map collection.
[0033] In one embodiment, the full preprocessed SQL acquisition unit includes:
[0034] The MyBatis Configuration instance object is obtained from the target program using a probe.
[0035] Get the full prepared SQL statement from the instance object.
[0036] In one embodiment, the method for obtaining a full set of directly executable SQL statements further includes:
[0037] Determine the type of parameters passed to the preprocessed SQL placeholders.
[0038] In one embodiment, the corresponding values are determined in the database and in Java based on the placeholder parameter types of the parsed full preprocessed SQL statement, including:
[0039] Parse the placeholders in the SQL statement and determine their type in the database;
[0040] Parse the placeholders in the SQL statement and determine their type in Java.
[0041] In one embodiment, the method for obtaining a full set of directly executable SQL statements further includes:
[0042] Based on the type of the placeholder in the database, retrieve the first value corresponding to that type from the pre-established first mapping table;
[0043] Based on the type of the placeholder in Java, retrieve the second value corresponding to that type from a pre-established second mapping table.
[0044] In one embodiment, constructing a full executable SQL statement based on numerical values includes:
[0045] The first and second values are combined to obtain an executable SQL statement.
[0046] This application utilizes probe injection to obtain MyBatis Configuration instances without accessing the program's source code. By replacing SQL placeholder parameters with corresponding numerical values, it generates directly executable SQL statements. This allows for the centralized acquisition of SQL statements by specialized personnel, reducing workflow complexity and enhancing professionalism. This application is non-intrusive to the program or code, does not modify the program or code, and does not affect the original logic of the application during the data collection process, nor does it hinder the work of those involved. Attached Figure Description
[0047] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0048] Figure 1 This application provides a flowchart of a method for obtaining a full set of directly executable SQL statements.
[0049] Figure 2 This is another method for obtaining a full set of directly executable SQL statements in the embodiments of this application.
[0050] Figure 3 This application describes a method for obtaining full preprocessed SQL statements from a target program using an injected probe.
[0051] Figure 4 In this embodiment of the application, the corresponding values of the placeholder parameters of the parsed full preprocessed SQL statement are determined in the database and in JAVA respectively.
[0052] Figure 5 This is another method for obtaining a full set of SQL statements that can be directly executed, as described in the embodiments of this application.
[0053] Figure 6 The architecture diagram of the SQL retrieval system provided for this application.
[0054] Figure 7 This is a flowchart for merging calculations from multiple data sources.
[0055] Figure 8 This application provides an apparatus for obtaining a full set of directly executable SQL statements.
[0056] Figure 9 This is another device in the embodiments of this application for obtaining a full set of directly executable SQL statements.
[0057] Figure 10 This is a structural diagram of the full preprocessing SQL acquisition unit in this embodiment of the application.
[0058] Figure 11 This is a structural block diagram of the numerical determination unit in an embodiment of this application.
[0059] Figure 12 This is another device in the embodiments of this application for obtaining a full set of SQL statements that can be directly executed.
[0060] Figure 13 This is a specific implementation of an electronic device in the embodiments of this application. Detailed Implementation
[0061] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0062] During data acquisition, to prevent poorly performing SQL statements from entering the production system and degrading the overall database performance, it is necessary to analyze the SQL statements before deployment. Therefore, the problem of full SQL statement acquisition needs to be solved. Existing full SQL statement acquisition solutions use static code scanning to scan XML or Java file annotations to obtain the full set of SQL statements. However, only the owner of the source code can scan the source code to obtain the SQL statements, and the obtained SQL statements are not directly executable, posing significant challenges to subsequent SQL analysis. Therefore, finding a way to obtain directly executable SQL statements has become a pressing issue.
[0063] To address the aforementioned issues, this application provides a method for obtaining a full set of directly executable SQL statements, such as... Figure 1 As shown, it includes:
[0064] S101: Complete the probe injection operation in the target program.
[0065] S102: Obtain the full preprocessed SQL statements from the target program through the injected probe.
[0066] S103: Parse the placeholder types of the full preprocessed SQL statement, and determine the corresponding values of the types in the database and JAVA respectively.
[0067] S104: Construct the full executable SQL statement based on the numerical values.
[0068] In one embodiment, such as Figure 2 As shown, other methods for obtaining a full set of directly executable SQL statements include:
[0069] S201: Store the parsed full preprocessed SQL statements into pre-established collections.
[0070] S202: Merge all collections into a single Map collection.
[0071] In one embodiment, the full preprocessed SQL statements are obtained from the target program via an injected probe, such as... Figure 3 As shown, it includes:
[0072] S301: Obtain the MyBatis Configuration instance object from the target program using a probe.
[0073] S302: Obtain the full prepared SQL statement based on the instance object.
[0074] In one embodiment, the method for obtaining a full set of directly executable SQL statements further includes:
[0075] Determine the type of parameters passed to the preprocessed SQL placeholders.
[0076] In one embodiment, the corresponding values are determined in the database and in Java based on the placeholder parameter types of the parsed full preprocessed SQL statement, such as... Figure 4 As shown, it includes:
[0077] S401: Parse the placeholders in the SQL statement and determine the type of the placeholders in the database.
[0078] S402: Parse the placeholders in the SQL statement and determine their type in Java.
[0079] In one embodiment, such as Figure 5 As shown, other methods for obtaining full, directly executable SQL statements include:
[0080] S501: Based on the type of the placeholder in the database, query the first value corresponding to that type from the pre-established first mapping table.
[0081] S502: Query the second value corresponding to the type of the placeholder in Java from the pre-established second mapping table.
[0082] In one embodiment, constructing a full executable SQL statement based on numerical values includes:
[0083] The first and second values are combined to obtain an executable SQL statement.
[0084] In one specific embodiment, such as Figure 6 The diagram shown is the architecture of the SQL retrieval system, which includes:
[0085] SQL Audit System 10 acts as the initiator of the entire SQL collection process and the storage provider for all executable SQL statements. It provides overall control over the entire process.
[0086] The target application server 20 is where SQL needs to be collected. The main logic and core components of the entire system run on this server.
[0087] Agent injection program 30 accesses the application's JVM via Java attach and injects the collection agent into the application's JVM.
[0088] The application's JVM40 runs the application's logic and stores all SQL information and database connection information. This application primarily focuses on operations within the JVM.
[0089] The main logic is implemented in the collection agent50. The collection agent loads JVMTIagent in the application JVM and obtains the target SQL and database connection information through JVMTIagent. Then, it assembles an executable SQL based on the information in the database and sends it to the SQL review system.
[0090] Figure 6 60 represents JVMITagent, and 70 represents fully executable SQL. The SQL statements obtained directly from Mybatis are not parsable by the database. By combining the collection agent with the field types in the database, the non-executable SQL is assembled into SQL that can be parsed and executed by the database.
[0091] The application database 80 stores information such as the table structure and data used by the application. The collection agent will obtain the data type of each field from this database and assemble the non-executable SQL in the application.
[0092] Based on the SQL acquisition system described above, another specific embodiment of this application provides a method for collecting all executable SQL statements, including:
[0093] The SQL auditing system remotely distributes the Agent injection program (which includes the collection Agent and JVMTIagent) to the application server that needs to collect SQL.
[0094] Start the Agent injection program, select the PID of the JVM of the application to be collected, and inject the collection Agent and JVMTIagent into the target program.
[0095] JVMTIagent: The source code is a C++ program used as a native Java method. It contains methods for obtaining JVM heap memory data.
[0096] By using S103, you can obtain the MyBatis Configuration instance object, and thus get the full set of pre-processed SQL statements.
[0097] Determine the type of parameters passed to the preprocessed SQL placeholders.
[0098] Parse the data type of the SQL statement placeholders in the database and replace them with the corresponding numerical values.
[0099] Parse the type of SQL statement placeholders in Java and replace them with the corresponding numerical values.
[0100] Returns a full set of executable SQL statements to the business system.
[0101] Specifically, by parsing the SQL syntax, the name of the database table accessed by the SQL is obtained. Statistics are queried in the database to retrieve the table structure information obtained in the previous step, including field types. A single actual record from the table is retrieved from the database. If the record obtained in the previous step is empty, it is filled with the numeric type 1 or the string "1" based on the field type; otherwise, it is filled with actual data.
[0102] Figure 7 The flowchart for merging calculations from multiple data sources is as follows: S701 Initializes an empty collection for each data source; S702 Obtains all Configuration instance objects; S703 Stores the parsed SQL statements into the collection; S704 Merges all collections into a Map, and finally returns all executable SQL statements.
[0103] Based on the same inventive concept, this application also provides an apparatus for obtaining a full set of directly executable SQL statements, which can be used to implement the method described in the above embodiments, as described in the following embodiments. Since the principle of this apparatus for obtaining a full set of directly executable SQL statements is similar to that of the method for obtaining a full set of directly executable SQL statements, the implementation of the apparatus for obtaining a full set of directly executable SQL statements can refer to the implementation of the method for obtaining a full set of directly executable SQL statements, and repeated details will not be elaborated further. As used below, the terms "unit" or "module" can refer to a combination of software and / or hardware that implements a predetermined function. Although the system described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0104] According to another aspect of this application, such as Figure 8 As shown, an apparatus for obtaining a full set of directly executable SQL statements is also provided, comprising:
[0105] The probe injection unit 801 is used to perform probe injection operations in the target program;
[0106] The full preprocessed SQL acquisition unit 802 is used to acquire full preprocessed SQL statements from the target program through the injected probe;
[0107] The numerical determination unit 803 is used to parse the placeholder type of the full preprocessed SQL statement and determine the numerical value corresponding to the type in the database and in JAVA respectively.
[0108] The splicing unit 804 is used to splice a full executable SQL statement based on the numerical values.
[0109] In one embodiment, such as Figure 9 As shown, the device for obtaining a full set of directly executable SQL statements also includes:
[0110] The pre-storage module 901 is used to store the parsed full preprocessed SQL statements into pre-established collections;
[0111] The collection merging module 902 is used to merge all collections into a single Map collection.
[0112] In one embodiment, such as Figure 10 As shown, the full preprocessing SQL acquisition unit 802 includes:
[0113] Instance acquisition module 1001 obtains the MyBatis Configuration instance object from the target program through a probe;
[0114] Full SQL module 1002 obtains the full preprocessed SQL statement based on the instance object.
[0115] In one embodiment, the method for obtaining a full set of directly executable SQL statements further includes:
[0116] Determine the type of parameters passed to the preprocessed SQL placeholders.
[0117] In one embodiment, such as Figure 11 As shown, the numerical determination unit 803 includes:
[0118] The first parsing module 1101 is used to parse the placeholders in the SQL statement and determine the type of the placeholders in the database;
[0119] The second parsing module 1102 is used to parse the placeholders in the SQL statement and determine the type of the placeholders in Java.
[0120] In one embodiment, such as Figure 12 As shown, the device for obtaining a full set of directly executable SQL statements also includes:
[0121] The first query module 1201 is used to query the first value corresponding to the type of the placeholder from the pre-established first mapping relationship table according to the type of the placeholder in the database.
[0122] The second query module 1202 is used to query the second value corresponding to the type of the placeholder from a pre-established second mapping table.
[0123] In one embodiment, the splicing unit includes:
[0124] The assembly module is used to assemble the first and second values to obtain an executable SQL statement.
[0125] This application does not require access to the program's source code and can be triggered by third parties, allowing the acquisition of SQL statements to be centralized to professionals, reducing the complexity of the workflow and enhancing professionalism. This application is non-intrusive to the program or code, will not modify the program or code, and will not affect the original logic of the application during the data collection process, nor will it hinder the work of relevant personnel. This application obtains directly executable SQL statements through a real database environment in the runtime environment, greatly facilitating subsequent SQL analysis and review.
[0126] This application also provides a specific implementation of an electronic device capable of implementing all the steps in the methods described above. See [link to implementation details]. Figure 13 The electronic device specifically includes the following:
[0127] Processor 1301, memory 1302, communications interface 1303, bus 1304, and non-volatile memory 1305;
[0128] The processor 1301, memory 1302, and communication interface 1303 communicate with each other through the bus 1304.
[0129] The processor 1301 is used to call a computer program stored in the memory 1302 and the non-volatile memory 1305. When the processor executes the computer program, it implements all the steps in the method described in the above embodiments. For example, when the processor executes the computer program, it implements the following steps:
[0130] S101: Complete the probe injection operation in the target program.
[0131] S102: Obtain the full preprocessed SQL statements from the target program through the injected probe.
[0132] S103: Determine the corresponding values in the database and JAVA respectively based on the placeholder parameter types of the parsed full preprocessed SQL statement.
[0133] S104: Construct the full executable SQL statement based on the numerical values.
[0134] Embodiments of this application also provide a computer-readable storage medium capable of implementing all steps of the methods in the above embodiments. The computer-readable storage medium stores a computer program that, when executed by a processor, implements all steps of the methods in the above embodiments. For example, when the processor executes the computer program, it implements the following steps:
[0135] S101: Complete the probe injection operation in the target program.
[0136] S102: Obtain the full preprocessed SQL statements from the target program through the injected probe.
[0137] S103: Determine the corresponding values in the database and JAVA respectively based on the placeholder parameter types of the parsed full preprocessed SQL statement.
[0138] S104: Construct the full executable SQL statement based on the numerical values.
[0139] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on its differences from other embodiments. In particular, for hardware + program embodiments, since they are basically similar to method embodiments, the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. Although the embodiments in this specification provide the method operation steps as shown in the embodiments or flowcharts, more or fewer operation steps may be included based on conventional or non-inventive means. The order of steps listed in the embodiments is merely one possible execution order among many steps and does not represent the only execution order. In actual device or terminal product execution, the methods can be executed in the order shown in the embodiments or drawings or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even a distributed data processing environment). The terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, product, or apparatus that includes a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitations, the presence of other identical or equivalent elements in the process, method, product, or apparatus that includes said elements is not excluded. For ease of description, the above devices are described in terms of function, divided into various modules. Of course, in implementing the embodiments of this specification, the functions of each module can be implemented in one or more software and / or hardware, or the module implementing the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms. This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing device to produce a machine, such that the instructions, which are executable by the processor of the computer or other programmable data processing device, produce instructions for implementing the process. Figure 1 One or more processes and / or boxes Figure 1The apparatus is designed to perform the functions specified in one or more boxes. Those skilled in the art will understand that embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, embodiments of this specification can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Furthermore, embodiments of this specification can take the form of computer program products implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The various embodiments in this specification are described in a progressive manner, with reference to each other for similar or identical parts. Each embodiment focuses on describing the differences from other embodiments. In particular, system embodiments are generally similar to method embodiments, so the description is relatively simple, and relevant parts can be referred to in the description of the method embodiments. In the description of this specification, references to terms such as "an embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example that are included in at least one embodiment or example of the embodiments of this specification. In this specification, illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of different embodiments or examples, without contradiction. The above descriptions are merely examples of embodiments of this specification and are not intended to limit the embodiments of this specification. Various modifications and variations can be made to the embodiments of this specification by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principle of the embodiments of this specification should be included within the scope of the claims of the embodiments of this specification.
Claims
1. A method for obtaining a full set of directly executable SQL statements, characterized in that, include: Perform the probe injection operation in the target program; The full preprocessed SQL statements are obtained from the target program through the injected probe; Parse the placeholder types of the full preprocessed SQL statement and determine the corresponding values of the types in the database and JAVA respectively; Construct a full executable SQL statement based on the stated values; The step of parsing the placeholder types of the full preprocessed SQL statement and determining the corresponding values for each type in the database and in Java includes: Parse the placeholders in the SQL statement and determine the type of the placeholders in the database; Parse the placeholders in the SQL statement and determine the type of the placeholders in Java; Based on the type of the placeholder in the database, query the first value corresponding to that type from the pre-established first mapping table; Based on the type of the placeholder in Java, the second value corresponding to that type is retrieved from a pre-established second mapping table; The step of constructing the full executable SQL statement based on the numerical value includes: The first and second values are assembled to obtain an executable SQL statement.
2. The method for obtaining a full set of directly executable SQL statements according to claim 1, characterized in that, Also includes: The parsed full preprocessed SQL statements are stored in pre-established collections; Combine all the aforementioned collections into a single Map collection.
3. The method for obtaining a full set of directly executable SQL statements according to claim 2, characterized in that, The process of obtaining the full preprocessed SQL statements from the target program through the injected probe includes: The probe is used to obtain the MyBatis Configuration instance object from the target program; The full preprocessed SQL statement is obtained based on the instance object.
4. An apparatus for obtaining a full set of directly executable SQL statements, characterized in that, include: The probe injection unit is used to perform probe injection operations in the target program; The full preprocessed SQL acquisition unit is used to acquire full preprocessed SQL statements from the target program through the injected probe; A numerical determination unit is used to parse the placeholder types of the full preprocessed SQL statement and determine the numerical values corresponding to the types in the database and in JAVA, respectively. The splicing unit is used to splice the full executable SQL statement based on the value; The numerical determination unit includes: a first parsing module, used to parse the placeholders in the SQL statement and determine the type of the placeholders in the database; and a second parsing module, used to parse the placeholders in the SQL statement and determine the type of the placeholders in Java. The device further includes: a first query module, used to query a first value corresponding to a type of placeholder from a pre-established first mapping table based on the type of the placeholder in the database; and a second query module, used to query a second value corresponding to a type of placeholder from a pre-established second mapping table based on the type of the placeholder in Java. The splicing unit includes: An assembly module is used to assemble the first value and the second value to obtain an executable SQL statement.
5. An electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the steps of the method for obtaining a full set of directly executable SQL statements as described in any one of claims 1 to 3.
6. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by a processor, the computer program implements the steps of the method for obtaining a full set of directly executable SQL statements as described in any one of claims 1 to 3.
Citation Information
Patent Citations
Network security risk detection method and system, computer equipment and storage medium
CN112039900A
SQL statement collection method and device
CN114625701A
Parameter type prediction in object relational mapping
US20090063435A1