qshinoの日記

Powershell関係と徒然なこと

python sqlite

sqlite をpyhonから使う。

# -*- coding: utf-8 -*- 

import sqlite3 
from contextlib import closing 

class Dbs:
  db = 'database.db'
  utable = 'create table users (id int, name varchar(64), age int, gender varchar(32))'

  def __init__(self):
    self.conn = sqlite3.connect(Dbs.db)
    self.c = self.conn.cursur()

  def __del__(self):
      self.commit()
      self.close()

  def close(self):
    self.conn.close()

  def newtable(self):
    self.sql( utable )

  def commit(self):
    self.conn.commit()

  def name(self,id):
    rec = self.sql("select name from users where id = ?", (id,))
    if( rec == None ):
      return None
    elif( len(rec) == 0 ):
      return None
    return rec[0]

  def find(self,Id):
    sql = "select * from users where id = ?"
    return self.sql(sql, (id,))

  def add(self,val):
    sql = "insert into users (id, name, age, gender) values (?,?,?,?)"
    self.sql(sql, val)

  def update(self, id, f, val):
      sql = "update from users where id =? set ? = ?"
      self.sql(sql, (id, f, val)) 

   def adduser(self):
     sql = 'insert into users (id, name, age, gender) values (?,?,?,?)' 
     user = (1, 'Taro', 20, 'male') 
     self.sql(sql, user) 

    def addusers(self):
      sql = 'insert into users (id, name, age, gender) values (?,?,?,?)' 
      users = [ (2, 'Shota', 54, 'male'), (3, 'Nana', 40, 'female'), (4, 'Tooru', 78, 'male'), (5, 'Saki', 31, 'female') ]
      self.sqlm(sql, users)    

    def seluser(self):
      sql = 'select * from users' 
      for row in self.sql(sql):  
        print(row)

    def sql(self, sql, param=None):
      return self.c.execute(sql, param)

    def sqlm(self, sql, param=None):
      return self.c.executemany(sql, param)

    def test():
      self.newtable()
      self.adduser()
      self.addusers()
      self.commit()
      self.seluser()
      self.close()

参考

https://qiita.com/mas9612/items/a881e9f14d20ee1c0703