Class PyConnection

java.lang.Object
org.python.core.PyObject
com.ziclix.python.sql.PyConnection
All Implemented Interfaces:
Serializable, ClassDictInit, ContextManager, Traverseproc

public class PyConnection extends PyObject implements ClassDictInit, ContextManager, Traverseproc
A connection to the database.
Author:
brian zimmer
See Also:
  • Constructor Details

    • PyConnection

      public PyConnection(Connection connection) throws SQLException
      Create a PyConnection with the open connection.
      Parameters:
      connection -
      Throws:
      SQLException
  • Method Details

    • toString

      public String toString()
      Produces a string representation of the object.
      Overrides:
      toString in class PyObject
      Returns:
      string representation of the object.
    • classDictInit

      public static void classDictInit(PyObject dict)
      Method classDictInit
      Parameters:
      dict -
    • __setattr__

      public void __setattr__(String name, PyObject value)
      Sets the attribute.
      Overrides:
      __setattr__ in class PyObject
      Parameters:
      name -
      value -
      See Also:
    • __findattr_ex__

      public PyObject __findattr_ex__(String name)
      Finds the attribute.
      Overrides:
      __findattr_ex__ in class PyObject
      Parameters:
      name - the name of the attribute of interest
      Returns:
      the value for the attribute of the specified name
    • close

      public void close()
      Close the connection now (rather than whenever __del__ is called). The connection will be unusable from this point forward; an Error (or subclass) exception will be raised if any operation is attempted with the connection. The same applies to all cursor objects trying to use the connection.
    • commit

      public void commit()
      Commit any pending transaction to the database. Note that if the database supports an auto-commit feature, this must be initially off. An interface method may be provided to turn it back on.

      Database modules that do not support transactions should implement this method with void functionality.

    • rollback

      public void rollback()
      This method is optional since not all databases provide transaction support.

      In case a database does provide transactions this method causes the database to roll back to the start of any pending transaction. Closing a connection without committing the changes first will cause an implicit rollback to be performed.

    • nativesql

      public PyObject nativesql(PyObject nativeSQL)
      Converts the given SQL statement into the system's native SQL grammar. A driver may convert the JDBC sql grammar into its system's native SQL grammar prior to sending it; this method returns the native form of the statement that the driver would have sent.
      Parameters:
      nativeSQL -
      Returns:
      the native form of this statement
    • cursor

      public PyCursor cursor()
      Return a new Cursor Object using the connection. If the database does not provide a direct cursor concept, the module will have to emulate cursors using other means to the extent needed by this specification.
      Returns:
      a new cursor using this connection
    • cursor

      public PyCursor cursor(boolean dynamicFetch)
      Return a new Cursor Object using the connection. If the database does not provide a direct cursor concept, the module will have to emulate cursors using other means to the extent needed by this specification.
      Parameters:
      dynamicFetch - if true, dynamically iterate the result
      Returns:
      a new cursor using this connection
    • cursor

      public PyCursor cursor(boolean dynamicFetch, PyObject rsType, PyObject rsConcur)
      Return a new Cursor Object using the connection. If the database does not provide a direct cursor concept, the module will have to emulate cursors using other means to the extent needed by this specification.
      Parameters:
      dynamicFetch - if true, dynamically iterate the result
      rsType - the type of the underlying ResultSet
      rsConcur - the concurrency of the underlying ResultSet
      Returns:
      a new cursor using this connection
    • __enter__

      public PyObject __enter__(ThreadState ts)
      Specified by:
      __enter__ in interface ContextManager
    • __enter__

      public PyObject __enter__()
    • __exit__

      public boolean __exit__(ThreadState ts, PyException exception)
      Specified by:
      __exit__ in interface ContextManager
    • __exit__

      public boolean __exit__(PyObject type, PyObject value, PyObject traceback)
    • traverse

      public int traverse(Visitproc visit, Object arg)
      Description copied from interface: Traverseproc
      Traverses all directly contained PyObjects. Like in CPython, arg must be passed unmodified to visit as its second parameter. If Visitproc.visit(PyObject, Object) returns nonzero, this return value must be returned immediately by traverse. Visitproc.visit(PyObject, Object) must not be called with a null PyObject-argument.
      Specified by:
      traverse in interface Traverseproc
    • refersDirectlyTo

      public boolean refersDirectlyTo(PyObject ob)
      Description copied from interface: Traverseproc
      Optional operation. Should only be implemented if it is more efficient than calling Traverseproc.traverse(Visitproc, Object) with a visitproc that just watches out for ob. Must return false if ob is null.
      Specified by:
      refersDirectlyTo in interface Traverseproc