Как найти последний вставленный bookId из таблицы в базе данных sqllite, используя код Python? - PullRequest
0 голосов
/ 16 апреля 2020
import sqlite3
from sqlite3 import Error

class database_tasks:
    bookId = 0
    studentId = 0

    def create_connection(self):
        try:
            conn = sqlite3.connect('library Management.db')
            return conn
        except Error as e:
            print(e)             

    def insert(self, conn,dbname, name, writer='none'):
        c = conn.cursor()

        if dbname == "Book_database":            
            database_tasks.bookId += 1
            #sql= "INSERT INTO Book_database VALUES(" + database_tasks.bookId + "," + name + "," + writer + ")"
            c.execute ("INSERT INTO Book_database VALUES(?,?,?)",(database_tasks.bookId, name, writer))

bookId всегда устанавливается в 1 каждый раз, когда вставляется новая запись. Но я хочу вставить запись с bookId 1 больше, чем последняя вставленная запись.

Как мне инициализировать эту переменную класса bookId на единицу больше, чем последняя вставленная запись?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Я не уверен, что понимаю ваш вопрос. Вы уже объявляете bookId как переменную класса / переменная stati c. Методы получения и установки не работают в python, как они работают в таких языках, как java. Но для переменной класса вам не понадобятся методы получения и установки. Если вы хотите изменить переменную класса, вы можете получить к ней доступ вне класса с помощью вызова database_tasks.bookId.

0 голосов
/ 16 апреля 2020
import sqlite3
from sqlite3 import Error
class database_tasks:
    def __init__(self,bookId=0,studentId=0):
        self.bookId=bookId
        self.studentId=studentId

    def create_connection(self):
        try:
            conn = sqlite3.connect('library Management.db')
            return conn
        except Error as e:
            print(e)             

    def insert(self, conn,dbname, name, writer='none'):
        c = conn.cursor()

        if dbname == "Book_database":            
            self.bookId += 1
            #sql= "INSERT INTO Book_database VALUES(" + database_tasks.bookId + "," + name + "," + writer + ")"
            c.execute ("INSERT INTO Book_database VALUES(?,?,?)",(database_tasks.bookId, name, writer))

Вы можете инициализировать класс как:

data = database_tasks()

или

data = database_tasks(bookId=<id>,studentId=<id>)

и вставить записи:

data.insert(coon,dbname,name,writer)

, дайте мне знать, если это поможет .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...