pythonカプセル化mysqlデータベース接続操作ベースクラス(pymysqlライブラリを使用)
2245 ワード
タイトルpymysqlモジュールパッケージのデータベース操作ベースクラス
タイトルはJSONで書かれた構成パラメータファイルを使用します.
‘pymysql.json’ {“host”:“127.0.0.1”, “user”:“root”,“password”:“root”, “database”:“db_test_shop1”, “port”:3306, “charset”:“utf8”}
# pymysql
import pymysql
import json
import logging
import os
class BaseDao(): # DAO: database access object
def __init__(self, configFile='pymysql.json'):
self.__connection = None
self.__cursor = None
self.__config = json.load(open(os.path.dirname(__file__) + os.sep + configFile, 'r')) # json
print(self.__config)
pass
#
def getConnection(self):
# ,
if self.__connection:
return self.__connection
#
try:
self.__connection = pymysql.connect(**self.__config)
return self.__connection
except pymysql.MySQLError as e:
print("Exception:" + str(e))
pass
pass
# sql # sql
def execute(self, sql, params):
try:
self.__cursor = self.getConnection().cursor()
# result sql
if params: # sql
result = self.__cursor.execute(sql, params)
else: # sql
result = self.__cursor.execute(sql)
return result
except (pymysql.MySQLError, pymysql.DatabaseError, Exception) as e:
print(" :" + str(e))
self.rollback()
pass
finally:
pass
pass
def fetch(self):
if self.__cursor:
return self.__cursor.fetchall()
pass
def commit(self):
if self.__connection:
self.__connection.commit()
pass
def rollback(self):
if self.__connection:
self.__connection.rollback()
pass
#
def getLastRowId(self):
if self.__cursor:
return self.__cursor.lastrowid
pass
def close(self):
if self.__cursor:
self.__cursor.close()
if self.__connection:
self.__connection.close()
pass
pass
タイトルはJSONで書かれた構成パラメータファイルを使用します.
‘pymysql.json’ {“host”:“127.0.0.1”, “user”:“root”,“password”:“root”, “database”:“db_test_shop1”, “port”:3306, “charset”:“utf8”}