Wt: Wt::Dbo::backend::MySQL Class Reference

Wt 4.10.4

Loading...
Searching...
No Matches
Public Member Functions | List of all members
Wt::Dbo::backend::MySQL Class Reference
Database Objects (Wt::Dbo)

A MySQL connection. More...

`#include <Wt/Dbo/backend/MySQL.h>`

Inheritance diagram for Wt::Dbo::backend::MySQL:
[legend]

## Public Member Functions
| MySQL (const std::string &db, const std::string &dbuser="root", const std::string &dbpasswd="", const std::string dbhost="localhost", unsigned int dbport=0, const std::string &dbsocket="/var/run/mysqld/mysqld.sock", int fractionalSecondsPart=-1)
| Opens a new MySQL backend connection.
| MySQL (const MySQL &other)
| Copies a MySQL connection.
| ~MySQL ()
| Destructor.
virtual std::unique_ptr< SqlConnection > | clone () const override
| Returns a copy of the connection.
bool | connect (const std::string &db, const std::string &dbuser="root", const std::string &dbpasswd="", const std::string &dbhost="localhost", unsigned int dbport=0, const std::string &dbsocket="/var/run/mysqld/mysqld.sock")
| Tries to connect.
MySQL_impl * | connection ()
| Returns the underlying connection.
virtual void | executeSql (const std::string &sql) override
| Executes an SQL statement.
virtual void | startTransaction () override
| Starts a transaction.
virtual void | commitTransaction () override
| Commits a transaction.
virtual void | rollbackTransaction () override
| Rolls back a transaction.
virtual std::unique_ptr< SqlStatement > | prepareStatement (const std::string &sql) override
| Prepares a statement.
int | getFractionalSecondsPart () const
| Returns the supported fractional seconds part.
void | setFractionalSecondsPart (int fractionalSecondsPart)
| Set the supported fractional seconds part.
Methods that return dialect information
virtual std::string | autoincrementSql () const override
| Returns the 'autoincrement' SQL type modifier.
virtual std::string | autoincrementType () const override
| Returns the 'autoincrement' SQL type.
virtual std::string | autoincrementInsertSuffix (const std::string &id) const override
| Returns the suffix for an 'autoincrement' insert statement.
virtual std::vector< std::string > | autoincrementCreateSequenceSql (const std::string &table, const std::string &id) const override
| Returns the SQL statement(s) required to create an id sequence.
virtual std::vector< std::string > | autoincrementDropSequenceSql (const std::string &table, const std::string &id) const override
| Returns the SQL statement(s) required to drop an id sequence.
virtual const char * | dateTimeType (SqlDateTimeType type) const override
| Returns the date/time type.
virtual const char * | blobType () const override
| Returns the blob type.
virtual bool | supportAlterTable () const override
| Returns true if the backend support Alter Table.
virtual const char * | alterTableConstraintString () const override
| Returns the command used in alter table .. drop constraint ..
virtual bool | requireSubqueryAlias () const override
| Returns the true if the database require subquery alias.
Public Member Functions inherited from Wt::Dbo::SqlConnection
virtual | ~SqlConnection ()
| Destructor.
virtual void | executeSqlStateful (const std::string &sql)
| Executes a connection-stateful SQL statement.
virtual SqlStatement * | getStatement (const std::string &id) const
| Returns the statement with the given id.
virtual void | saveStatement (const std::string &id, std::unique_ptr< SqlStatement > statement)
| Saves a statement with the given id.
void | setProperty (const std::string &name, const std::string &value)
| Sets a property.
std::string | property (const std::string &name) const
| Returns a property.
virtual std::string | autoincrementInsertInfix (const std::string &id) const
| Returns the infix for an 'autoincrement' insert statement.
virtual void | prepareForDropTables ()
| Execute code before dropping the tables.
virtual std::string | textType (int size) const
| Returns the text type.
virtual std::string | longLongType () const
| Returns the 64-bit integer type.
virtual const char * | booleanType () const
| Returns the boolean type.
virtual bool | supportUpdateCascade () const
| Returns true if the database supports Update Cascade.
virtual bool | usesRowsFromTo () const
| Returns whether the SQL dialect uses 'ROWS ? TO ?', limit or rownum for partial select results.
virtual bool | supportDeferrableFKConstraint () const
| Returns true if the backend supports "deferrable initially deferred" foreign key constraints.

## Detailed Description

A MySQL connection.

This class provides the backend implementation for mariadb databases. It has been tested against MySQL 5.6.

In order to work properly with Wt::Dbo, MySQL must be configured with InnoDB (for MySQL) or XtraDB (for mariadb) as the default database engine - so that the transaction based functionality works.

Note
  There is a bug in the implementation of milliseconds in mariadb C client which affects WTime and posix::time_duration values – it goes berserk when fractional part = 0.

## Constructor & Destructor Documentation

## ◆ MySQL() [1/2]

Wt::Dbo::backend::MySQL::MySQL | ( | const std::string & | db,
|  | const std::string & | dbuser = "root",
|  | const std::string & | dbpasswd = "",
|  | const std::string | dbhost = "localhost",
|  | unsigned int | dbport = 0,
|  | const std::string & | dbsocket = "/var/run/mysqld/mysqld.sock",
|  | int | fractionalSecondsPart = -1 )

Opens a new MySQL backend connection.

For the connection parameter description, please refer to the connect() method.

Parameters

  fractionalSecondsPart | The number of fractional units (0 to 6). A value of -1 indicates that the fractional part is not stored. Fractional seconds part are supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

## ◆ MySQL() [2/2]

Wt::Dbo::backend::MySQL::MySQL | ( | const MySQL & | other | ) |

Copies a MySQL connection.

This creates a new connection with the same settings as another connection.

See also
  clone()

## ◆ ~MySQL()

Wt::Dbo::backend::MySQL::~MySQL | ( |  | ) |

Destructor.

Closes the connection.

## Member Function Documentation

## ◆ alterTableConstraintString()

virtual const char * Wt::Dbo::backend::MySQL::alterTableConstraintString | ( |  | ) | const
| overridevirtual

Returns the command used in alter table .. drop constraint ..

This method will return "constraint" by default. Default: ALTER TABLE .. DROP CONSTRAINT ..

Reimplemented from Wt::Dbo::SqlConnection.

## ◆ autoincrementCreateSequenceSql()

virtual std::vector< std::string > Wt::Dbo::backend::MySQL::autoincrementCreateSequenceSql | ( | const std::string & | table,
|  | const std::string & | id ) const
| overridevirtual

Returns the SQL statement(s) required to create an id sequence.

This is used by Session::createTables() to create the id sequence for a table. The table's name and primary key are passed as arguments to this function and can be used to construct an SQL sequence that is unique for the table.

Implements Wt::Dbo::SqlConnection.

## ◆ autoincrementDropSequenceSql()

virtual std::vector< std::string > Wt::Dbo::backend::MySQL::autoincrementDropSequenceSql | ( | const std::string & | table,
|  | const std::string & | id ) const
| overridevirtual

Returns the SQL statement(s) required to drop an id sequence.

This is used by Session::dropTables() to drop the id sequence for a table. The table's name and primary key are passed as arguments to this function and can be used to construct an SQL sequence that is unique for the table.

Implements Wt::Dbo::SqlConnection.

## ◆ autoincrementInsertSuffix()

virtual std::string Wt::Dbo::backend::MySQL::autoincrementInsertSuffix | ( | const std::string & | id | ) | const
| overridevirtual

Returns the suffix for an 'autoincrement' insert statement.

This is appended to the `insert` statement, since some back-ends need to be indicated that they should return the autoincrement id.

Implements Wt::Dbo::SqlConnection.

## ◆ autoincrementSql()

virtual std::string Wt::Dbo::backend::MySQL::autoincrementSql | ( |  | ) | const
| overridevirtual

Returns the 'autoincrement' SQL type modifier.

This is used by Session::createTables() to create the id column.

Implements Wt::Dbo::SqlConnection.

## ◆ autoincrementType()

virtual std::string Wt::Dbo::backend::MySQL::autoincrementType | ( |  | ) | const
| overridevirtual

Returns the 'autoincrement' SQL type.

This is used by Session::createTables() to create the id column.

Implements Wt::Dbo::SqlConnection.

## ◆ blobType()

virtual const char * Wt::Dbo::backend::MySQL::blobType | ( |  | ) | const
| overridevirtual

Returns the blob type.

See also
  SqlStatement::bind(int, const std::vector<unsigned char>&)

Implements Wt::Dbo::SqlConnection.

## ◆ commitTransaction()

virtual void Wt::Dbo::backend::MySQL::commitTransaction | ( |  | ) |
| overridevirtual

Commits a transaction.

This function commits a transaction.

Implements Wt::Dbo::SqlConnection.

## ◆ connect()

bool Wt::Dbo::backend::MySQL::connect | ( | const std::string & | db,
|  | const std::string & | dbuser = "root",
|  | const std::string & | dbpasswd = "",
|  | const std::string & | dbhost = "localhost",
|  | unsigned int | dbport = 0,
|  | const std::string & | dbsocket = "/var/run/mysqld/mysqld.sock" )

Tries to connect.

Parameters

  db | The database name.
  dbuser | The username for the database connection - defaults to "root".
  dbpasswd | The password for the database conection - defaults to an empty string.
  dbhost | The hostname of the database - defaults to localhost.
  dbport | The portnumber - defaults to a default port.
  dbsocket | The socket to use.

Throws an exception if there was a problem, otherwise true.

## ◆ dateTimeType()

virtual const char * Wt::Dbo::backend::MySQL::dateTimeType | ( | SqlDateTimeType | type | ) | const
| overridevirtual

Returns the date/time type.

See also
  SqlStatement::bind(int, const std::chrono::system_clock::time_point&, SqlDateTimeType)

Implements Wt::Dbo::SqlConnection.

## ◆ executeSql()

virtual void Wt::Dbo::backend::MySQL::executeSql | ( | const std::string & | sql | ) |
| overridevirtual

Executes an SQL statement.

This is a convenience method for preparing a statement, executing it, and deleting it.

Reimplemented from Wt::Dbo::SqlConnection.

## ◆ getFractionalSecondsPart()

int Wt::Dbo::backend::MySQL::getFractionalSecondsPart | ( |  | ) | const

Returns the supported fractional seconds part.

By default return -1: fractional part is not stored. Fractional seconds part is supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

See also
  setFractionalSecondsPart()

## ◆ prepareStatement()

virtual std::unique_ptr< SqlStatement > Wt::Dbo::backend::MySQL::prepareStatement | ( | const std::string & | sql | ) |
| overridevirtual

Prepares a statement.

Returns the prepared statement.

Implements Wt::Dbo::SqlConnection.

## ◆ requireSubqueryAlias()

virtual bool Wt::Dbo::backend::MySQL::requireSubqueryAlias | ( |  | ) | const
| overridevirtual

Returns the true if the database require subquery alias.

This method will return false by default.

Reimplemented from Wt::Dbo::SqlConnection.

## ◆ rollbackTransaction()

virtual void Wt::Dbo::backend::MySQL::rollbackTransaction | ( |  | ) |
| overridevirtual

Rolls back a transaction.

This function rolls back a transaction.

Implements Wt::Dbo::SqlConnection.

## ◆ setFractionalSecondsPart()

void Wt::Dbo::backend::MySQL::setFractionalSecondsPart | ( | int | fractionalSecondsPart | ) |

Set the supported fractional seconds part.

The fractional seconds part can be also set in the constructor Fractional seconds part is supported for MySQL 5.6.4 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

Parameters

  fractionalSecondsPart | Must be in the range 0 to 6.

See also
  setFractionalSecondsPart()

## ◆ startTransaction()

virtual void Wt::Dbo::backend::MySQL::startTransaction | ( |  | ) |
| overridevirtual

Starts a transaction.

This function starts a transaction.

Implements Wt::Dbo::SqlConnection.

## ◆ supportAlterTable()

virtual bool Wt::Dbo::backend::MySQL::supportAlterTable | ( |  | ) | const
| overridevirtual

Returns true if the backend support Alter Table.

This method will return false by default.

Reimplemented from Wt::Dbo::SqlConnection.