Metadata-Version: 2.1
Name: sqlexecutorx
Version: 0.0.5
Summary: A simple thread safe sql sqlexecutorx for Python with connection pool. Support MySQL, PostgreSQL, SQLite etc.
Home-page: https://gitee.com/summry/sqlexecutorx
Author: summy
Author-email: xiazhongbiao@126.com
License: UNKNOWN
Keywords: SQL,MySQL,PostgreSQL,SQLite,Database,Python,RDB
Platform: UNKNOWN
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE

Usage Sample
''''''''''''

.. code::

       import sqlexecutorx as db

       if __name__ == '__main__':
          db.init('test.db', driver='sqlite3', debug=True)

          # or
          db.init("postgres://user:password@127.0.0.1:5432/testdb", driver='psycopg2', pool_size=5, debug=True)

          # or
          db.init(host='127.0.0.1', port='5432', user='xxx', password='xxx', database='testdb', driver='psycopg2')

          # if driver is 'pymysql' or 'mysql.connector' of MySQL, the select_key is 'SELECT LAST_INSERT_ID()'
          select_key = "SELECT currval('person_id_seq')"

          id = db.save(select_key, 'INSERT INTO person(name, age) VALUES(%s,%s)', 'wangwu', 38)

          persons = db.select('select id, name, age from person')
          # result:
          # (3, 'zhangsan', 15)
          # (4, 'lisi', 26)
          # (5, 'wangwu', 38)
          # (6, 'zhaoliu', 45)

          persons = db.select_one('select id, name, age from person where name = %s', 'zhangsan')
          # result:
          # (3, 'zhangsan', 15)

          args = [
           ('李四', 55),
           ('王五', 35),
          ]
          db.batch_execute('INSERT INTO person(name,age) VALUES(%s,%s)', *args)

          db.close()

Transaction
''''''''''''

.. code::

       from sqlexecutorx import with_transaction, transaction

       @with_transaction
       def test_transaction():
          insert_func(....)
          update_func(....)


       def test_transaction2():
          with transaction():
              insert_func(....)
              update_func(....)


