LISHUZUOXUN_yangjiang/SQLDataBase/sql_server.py

57 lines
1.5 KiB
Python
Raw Normal View History

2024-09-23 14:54:15 +08:00
import os
import sqlite3
from multiprocessing import Lock
class SQLServer:
def __init__(self, server_name, server_dir):
db_dir = '{}/{}'.format(server_dir, server_name)
if not os.path.exists(server_dir):
os.makedirs(server_dir)
self.sql_conn = sqlite3.connect(db_dir, check_same_thread=False)
self.sql_cur = self.sql_conn.cursor()
self.lock = Lock()
# 执行sql
def execute(self, sql, data=None):
try:
self.lock.acquire()
if data is None:
data = []
result = self.sql_cur.execute(sql, data).fetchall()
self.lock.release()
return result
except Exception as e:
self.lock.release()
raise e
# 执行sql
def executemany(self, script, data):
try:
self.lock.acquire()
self.sql_cur.executemany(script, data)
self.lock.release()
except Exception as e:
self.lock.release()
raise e
# 提交事件
def commit(self):
try:
self.lock.acquire()
self.sql_conn.commit()
self.lock.release()
except Exception as e:
self.lock.release()
raise e
def stop(self):
try:
self.lock.acquire()
self.sql_cur.close()
self.sql_conn.close()
self.lock.release()
except Exception as e:
self.lock.release()
raise e