MySQL Connector/Python を使用しています。オブジェクトを生成するオブジェクトがあり、それらのオブジェクトのいくつかはさらにオブジェクトを生成します。現時点では、合計で約 300 個のオブジェクトが完成しています。私がセットアップした方法を考えると、それは 300 のデータベース接続を意味します。一度接続して、単に接続を渡すことは可能ですか?
私はそれが次のように見えることを想像しています:
class MyObject(dict):
def __init__(self, row, conn):
self.conn = conn
self.cursor = self.conn.cursor()
# pass the connection/cursor on to some more objects
def getObjects(query, args):
conn = mysql.connector.connect(user="user", password="password", host="localhost", port="12345", database="database")
cursor = conn.cursor()
cursor.execute(query, args)
row = cursor.fetchone()
myObjects = []
while rowDict is not None:
myObj = MyObject(row, conn)
myObjects.append(myObj)
row = cursor.fetchone()
cursor.close()
conn.close()
return myObjects
しかし、このように実装すると、InternalError: Unread result found.
.