Example applications working with YDB
This section outlines the implementation of example applications, all designed to perform similar functions, using the YDB SDKs across various programming languages. Each app is developed to demonstrate how a respective SDK can be utilized in a specific language.
Refer to YDB SDK reference documentation for more details.
A test app performs the following steps:
Initializing a database connection
To interact with YDB, create instances of the driver, client, and session:
- The YDB driver facilitates interaction between the app and YDB nodes at the transport layer. It must be initialized before creating a client or session and must persist throughout the YDB access lifecycle.
- The YDB client operates on top of the YDB driver and enables the handling of entities and transactions.
- The YDB session, which is part of the YDB client context, contains information about executed transactions and prepared queries.
C++ | C# (.NET) | Go | Java | Node.js | PHP | Python
Creating tables
Create tables to be used in operations on a test app. This step results in the creation of database tables for the series directory data model:
Series
Seasons
Episodes
After the tables are created, a method for retrieving information about data schema objects is called, and the result of its execution is displayed.
C++ | C# (.NET) | Go | Java | Node.js | PHP | Python
Adding data
Add data to the created tables using the UPSERT
statement in YQL. A data update request is sent to the server as a single request with transaction auto-commit mode enabled.
C++ | C# (.NET) | Go | Java | Node.js | PHP | Python
Retrieving data
Retrieve data using a SELECT
statement in YQL. Handle the retrieved data selection in the app.
C++ | C# (.NET) | Go | Java | Node.js | PPHP | Python
Parameterized queries
Query data using parameters. This query execution method is preferable because it allows the server to reuse the query execution plan for subsequent calls and protects against vulnerabilities such as SQL injection.
C++ | C# (.NET) | Go | Java | Node.js | PHP | Python
Multistep transactions
Multiple statements can be executed within a single multistep transaction. Client-side code can run between query steps. Using a transaction ensures that queries executed in its context are consistent with each other.
C++ | C# (.NET) | Go | Java | Node.js | PHP | Python
Managing transactions
Transactions are managed through TCL Begin
and Commit
calls.
In most cases, instead of explicitly using Begin
and Commit
calls, it's better to use transaction control parameters in execute calls. This allows to avoid additional requests to YDB server and thus run queries more efficiently.
C++ | C# (.NET) | Go | Java | Node.js | PHP | Python
Error handling
For more information about error handling, see Error handling in the API.