NAME
    DBIx::Sunny - Simple DBI wrapper

SYNOPSIS
        use DBIx::Sunny;

        my $dbh = DBIx::Sunny->connect(...);

        # or 

        use DBI;

        my $dbh = DBI->connect(.., {
            RootClass => 'DBIx::Sunny',
            PrintError => 0,
            RaiseError => 1,
        });

DESCRIPTION
    DBIx::Sunny is a simple DBI wrapper. It provides better usability for
    you. This module based on Amon2::DBI. DBIx::Sunny supports only SQLite
    and MySQL.

FEATURES
    Set AutoInactiveDestroy to true.
        DBIx::Sunny sets AutoInactiveDestroy as true.

    [SQLite/MySQL] Auto encode/decode utf-8
        DBIx::Sunny sets sqlite_unicode and mysql_enable_utf8 automatically.

    [SQLite] Performance tuning
        DBIx::Sunny sets sqlite_use_immediate_transaction to true, and
        executes these PRAGMA statements

          PRAGMA journal_mode = WAL
          PRAGMA synchronous = NORMAL

    Nested transaction management.
        DBIx::Sunny supports nested transaction management based on RAII
        like DBIx::Class or DBIx::Skinny. It uses DBIx::TransactionManager
        internally.

    Error Handling
        DBIx::Sunny sets RaiseError and ShowErrorStatement as true.
        DBIx::Sunny raises exception and shows current statement if your
        $dbh occurred exception.

    SQL comment
        DBIx::Sunny adds file name and line number as SQL comment that
        invokes SQL statement.

    Easy access to last_insert_id
        DBIx::Sunny's last_insert_id needs no arguments. It's shortcut for
        mysql_insertid or last_insert_rowid.

    Auto expanding arrayref bind parameters
        select_(one|row|all) and query methods support auto-expanding
        arrayref bind parameters.

          $dbh->select_all('SELECT * FROM id IN (?)', [1 2 3])
          #SQL: 'SELECT * FROM id IN (?,?,")'
          #@BIND: (1, 2, 3)

ADDITIONAL METHODS
    $col = $dbh->select_one($query, @bind);
        Shortcut for prepare, execute and fetchrow_arrayref->[0]

    $row = $dbh->select_row($query, @bind);
        Shortcut for prepare, execute and fetchrow_hashref

    $rows = $dbh->select_all($query, @bind);
        Shortcut for prepare, execute and selectall_arrayref(.., { Slice =>
        {} }, ..)

    $dbh->query($query, @bind);
        Shortcut for prepare, execute.

AUTHOR
    Masahiro Nagano <kazeburo KZBRKZBR@ gmail.com>

SEE ALSO
    DBI, Amon2::DBI

LICENSE
    Copyright (C) Masahiro Nagano

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.