python线程和sqli

2024-09-29 01:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,使用线程写入数据库的最佳方法是什么?写数据时使用一个简单的锁就足够了吗?或者除了使用线程之外还有更好的方法吗?在

我想这样做:

from threading import Thread
from Queue import Queue
import sqlite3

class MyThread(Thread):
    def __init__(self, val,val2):
            ''' Constructor. '''

            Thread.__init__(self)
            self.val = val
            self.val2 = val2 

    def run(self):
            db = sqlite3.connect('C:\myDB.db')
            cursor = db.cursor()
            commandText='INSERT INTO Cars(name,carId) values({0} , {1})'.format(self.val, self.val2)

            cursor.execute(commandText)
            db.commit()


class MyThread2(Thread):
    def __init__(self, val,val2):
            ''' Constructor. '''

            Thread.__init__(self)
            self.val = val
            self.val2 = val2 

    def run(self):
            db = sqlite3.connect('C:\myDB.db')
            cursor = db.cursor()
            commandText='INSERT INTO Person(name,personId) values({0} , {1})'.format(self.val, self.val2)

            cursor.execute(commandText)
            db.commit()


if __name__=='__main__':

    db='C:\CMDB\CM.db'

    myThreadOb1 = MyThread("car1",8)
    myThreadOb1.setName('Thread 1')

    myThreadOb2 = MyThread2("mark",9)
    myThreadOb2.setName('Thread 2')

# Start running the threads!
    myThreadOb1.start()
    myThreadOb2.start()

Tags: nameimportselfdbinitdefval线程