如何解决将SQLite 3与python
我正在尝试在python 3程序中实现数据库。我正在使用SQLite3。我不太了解如何使用DBHelper类。
为了使用我的DBHelper,我将需要实例化一个DBHelper对象并调用一个函数(插入等)。但是,每次实例化对象时,都会对数据库建立新连接。
我很困惑,因为看起来好像我多次连接到数据库,而我感觉在程序开始时只应该连接一次。但是,如果不实例化DBHelper对象,则无法使用所需的功能。
具有这样的多个连接有时也会锁定我的数据库。
在我的程序中实现SQLite的正确方法是什么?
编辑:我需要在多个其他类中使用相同的sql db文件
import sqlite3
class DBHelper:
def __init__(self,dbname="db.sqlite"):
self.dbname = dbname
try:
self.conn = sqlite3.connect(dbname)
except sqlite3.Error as e:
log().critical('local database initialisation error: "%s"',e)
def setup(self):
stmt = "CREATE TABLE IF NOT EXISTS users (id integer PRIMARY KEY)"
self.conn.execute(stmt)
self.conn.commit()
def add_item(self,item):
stmt = "INSERT INTO users (id) VALUES (?)"
args = (item,)
try:
self.conn.execute(stmt,args)
self.conn.commit()
except sqlite3.IntegrityError as e:
log().critical('user id ' + str(item) + ' already exists in database')
def delete_item(self,item):
stmt = "DELETE FROM users WHERE id = (?)"
args = (item,)
self.conn.execute(stmt,args)
self.conn.commit()
def get_items(self):
stmt = "SELECT id FROM users"
return [x[0] for x in self.conn.execute(stmt)]
解决方法
您可以在代码中使用housing %>% filter(is.na(total_bedrooms) ) %>%
mutate(total_bedrooms == .[which(.$ocean_proximity == grouped_median_vals$ocean_proximity)],grouped_median_vals$median_vals)
设计模式。实例化一次连接,每次调用singleton
时,它将返回相同的连接。有关更多信息,请访问here。
请记住,如果要使用并发工作流访问连接,则必须在__init__
内实现对数据库连接的安全访问。阅读SQLite documents了解更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。