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.