mirror of
https://github.com/boostorg/mysql.git
synced 2025-05-12 14:11:41 +00:00
390 lines
9.1 KiB
Plaintext
390 lines
9.1 KiB
Plaintext
[/
|
|
Copyright (c) 2019-2024 Ruben Perez Hidalgo (rubenperez038 at gmail dot com)
|
|
|
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
]
|
|
|
|
[/ This file was auto-generated by examples_qbk.py. Do not edit directly ]
|
|
|
|
[section:examples Examples]
|
|
|
|
To run the examples, please go through the [link mysql.examples.setup setup] first.
|
|
|
|
Here is a list of available examples:
|
|
|
|
[heading Tutorials]
|
|
|
|
Self-contained programs demonstrating the basic concepts.
|
|
|
|
* [link mysql.examples.tutorial_sync Tutorial 1 listing: hello world!]
|
|
* [link mysql.examples.tutorial_async Tutorial 2 listing: going async with C++20 coroutines]
|
|
* [link mysql.examples.tutorial_with_params Tutorial 3 listing: queries with parameters]
|
|
* [link mysql.examples.tutorial_static_interface Tutorial 4 listing: the static interface]
|
|
* [link mysql.examples.tutorial_updates_transactions Tutorial 5 listing: UPDATEs, transactions and multi-queries]
|
|
* [link mysql.examples.tutorial_connection_pool Tutorial 6 listing: connection pools]
|
|
* [link mysql.examples.tutorial_error_handling Tutorial 7 listing: error handling]
|
|
|
|
[heading Simple programs]
|
|
|
|
Self-contained programs demonstrating more advanced concepts and techniques.
|
|
|
|
* [link mysql.examples.inserts INSERTs, last_insert_id() and NULL values]
|
|
* [link mysql.examples.deletes DELETEs and affected_rows()]
|
|
* [link mysql.examples.prepared_statements Prepared statements]
|
|
* [link mysql.examples.disable_tls Disabling TLS for a connection]
|
|
* [link mysql.examples.tls_certificate_verification Setting TLS options: enabling TLS certificate verification]
|
|
* [link mysql.examples.metadata Metadata]
|
|
* [link mysql.examples.multi_function Reading rows in batches with multi-function operations]
|
|
* [link mysql.examples.callbacks Callbacks (async functions in C++11)]
|
|
* [link mysql.examples.coroutines_cpp11 Stackful coroutines (async functions in C++11)]
|
|
* [link mysql.examples.unix_socket UNIX sockets]
|
|
* [link mysql.examples.batch_inserts Batch inserts using client-side query formatting]
|
|
* [link mysql.examples.batch_inserts_generic Generic batch inserts with Boost.Describe]
|
|
* [link mysql.examples.dynamic_filters Queries with dynamic filters]
|
|
* [link mysql.examples.patch_updates Dynamic UPDATE queries with PATCH-like semantics]
|
|
* [link mysql.examples.source_script Sourcing a .sql file using multi-queries]
|
|
* [link mysql.examples.pipeline (Experimental) Pipelines]
|
|
|
|
[heading Advanced examples]
|
|
|
|
Programs implementing real-world functionality.
|
|
|
|
|
|
# [@https://github.com/anarthal/servertech-chat The BoostServerTech chat project uses Boost.MySQL and Boost.Redis to implement a chat server]
|
|
|
|
[heading Setup]
|
|
|
|
To run the examples, you need a MySQL server you can connect to.
|
|
Examples make use of a database named `boost_mysql_examples`.
|
|
The server hostname and credentials (username and password) are passed
|
|
to the examples via the command line.
|
|
|
|
You can spin up a server quickly by using Docker:
|
|
|
|
[!teletype]
|
|
```
|
|
# Remove the "-v /var/run/mysqld:/var/run/mysqld" part if you don't need UNIX sockets
|
|
> docker run --name some-mysql -p 3306:3306 -v /var/run/mysqld:/var/run/mysqld -d -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -d mysql
|
|
|
|
# All the required data can be loaded by running example/db_setup.sql.
|
|
# If you're using the above container, the root user has a blank password
|
|
> mysql -u root < example/db_setup.sql
|
|
```
|
|
|
|
Please note that this container is just for demonstrative purposes,
|
|
and is not suitable for production.
|
|
|
|
The root MySQL user for these containers is `root` and has an empty password.
|
|
|
|
|
|
[section:tutorial_sync Tutorial 1 listing: hello world!]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tutorial_sync]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:tutorial_async Tutorial 2 listing: going async with C++20 coroutines]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tutorial_async]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:tutorial_with_params Tutorial 3 listing: queries with parameters]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tutorial_with_params]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:tutorial_static_interface Tutorial 4 listing: the static interface]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tutorial_static_interface]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:tutorial_updates_transactions Tutorial 5 listing: UPDATEs, transactions and multi-queries]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tutorial_updates_transactions]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:tutorial_connection_pool Tutorial 6 listing: connection pools]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tutorial_connection_pool]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:tutorial_error_handling Tutorial 7 listing: error handling]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tutorial_error_handling]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:inserts INSERTs, last_insert_id() and NULL values]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_inserts]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:deletes DELETEs and affected_rows()]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_deletes]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:prepared_statements Prepared statements]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_prepared_statements]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:disable_tls Disabling TLS for a connection]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_disable_tls]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:tls_certificate_verification Setting TLS options: enabling TLS certificate verification]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_tls_certificate_verification]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:metadata Metadata]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_metadata]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:multi_function Reading rows in batches with multi-function operations]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_multi_function]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:callbacks Callbacks (async functions in C++11)]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_callbacks]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:coroutines_cpp11 Stackful coroutines (async functions in C++11)]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_coroutines_cpp11]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:unix_socket UNIX sockets]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_unix_socket]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:batch_inserts Batch inserts using client-side query formatting]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_batch_inserts]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:batch_inserts_generic Generic batch inserts with Boost.Describe]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_batch_inserts_generic]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:dynamic_filters Queries with dynamic filters]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_dynamic_filters]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:patch_updates Dynamic UPDATE queries with PATCH-like semantics]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_patch_updates]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:source_script Sourcing a .sql file using multi-queries]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_source_script]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:pipeline (Experimental) Pipelines]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_pipeline]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:http_server_cpp20 A REST API server that uses C++20 coroutines]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_http_server_cpp20_main_cpp]
|
|
|
|
[example_http_server_cpp20_types_hpp]
|
|
|
|
[example_http_server_cpp20_error_hpp]
|
|
|
|
[example_http_server_cpp20_error_cpp]
|
|
|
|
[example_http_server_cpp20_repository_hpp]
|
|
|
|
[example_http_server_cpp20_repository_cpp]
|
|
|
|
[example_http_server_cpp20_handle_request_hpp]
|
|
|
|
[example_http_server_cpp20_handle_request_cpp]
|
|
|
|
[example_http_server_cpp20_server_hpp]
|
|
|
|
[example_http_server_cpp20_server_cpp]
|
|
|
|
[endsect]
|
|
|
|
|
|
|
|
|
|
[section:http_server_cpp11_coroutines A REST API server that uses asio::yield_context]
|
|
|
|
This example assumes you have gone through the [link mysql.examples.setup setup].
|
|
|
|
[example_http_server_cpp11_coroutines_main_cpp]
|
|
|
|
[example_http_server_cpp11_coroutines_types_hpp]
|
|
|
|
[example_http_server_cpp11_coroutines_repository_hpp]
|
|
|
|
[example_http_server_cpp11_coroutines_repository_cpp]
|
|
|
|
[example_http_server_cpp11_coroutines_handle_request_hpp]
|
|
|
|
[example_http_server_cpp11_coroutines_handle_request_cpp]
|
|
|
|
[example_http_server_cpp11_coroutines_server_hpp]
|
|
|
|
[example_http_server_cpp11_coroutines_server_cpp]
|
|
|
|
[example_http_server_cpp11_coroutines_log_error_hpp]
|
|
|
|
[endsect]
|
|
|
|
|
|
[endsect]
|
|
|