python内置轻量级数据库sqlite3操作

来源:互联网 发布:xbox 健身软件 编辑:程序博客网 时间:2024/05/16 17:27
#encoding: utf-8import sqlite3#import time#createtabsql1 = "create table if not exists scriptdata(id integer primary key autoincrement, name varchar(128), info varchar(128))"class DBDriver:  '''  The DBDriver class use to write the script data that parse from Excel file  '''      def __init__(self, dbfile, tabledesc):    self.tablename = tabledesc[0]    self.tablefield = tabledesc[1]    self.dbfile = dbfile  def cerateDB(self):    createlist = ["create table if not exists ", self.tablename, "(id integer primary key autoincrement, ", self.tablefield, ")"]    createsql = "".join(createlist)    self.conn = sqlite3.connect(self.dbfile)    self.conn.isolation_level = None     #self.conn.execute("drop table if exists " + self.tablename)  ###delete the eixst table    self.conn.execute(createsql)  ####create new table    #conn.execute("delete from " + tablename) ####delete all the recoreds    return     def execDB(self, execsql):      self.conn.execute(execsql)    self.conn.commit()    return  def getResult(self, selectsql):    self.cur = self.conn.cursor()    self.cur.execute(selectsql)    self.res = self.cur.fetchall()    return self.res      def getCount(self):    return len(self.res)  def closeDB(self):    self.cur.close()    self.conn.close()'''The example for using the DBDriver class'''if __name__ == '__main__':  dbfile = "D:/aaa.db"  tabledesc = ("scriptdata", "name varchar(128), info varchar(128)")  insertsql = "insert into scriptdata(name,info) values ('zhaowei1', 'only a test')"  selectsql = "select * from scriptdata"    dbd = DBDriver(dbfile, tabledesc)  dbd.cerateDB()  dbd.execDB(insertsql)  res = dbd.getResult(selectsql)  rows = dbd.getCount()  dbd.closeDB()  print 'row:', rows  for line in res:    for col in line:      print col