zoukankan      html  css  js  c++  java
  • Python对数据库的增删改查

    #!/usr/bin/env python
     
    import MySQLdb
     
    DATABASE_NAME = 'hero'
     
    class HeroDB:
        # init class and create a database
        def __init__(self, name, conn, cur):
            self.name = name
            self.conn = conn
            self.cur = cur
            try:
                cur.execute('create database if not exists ' + name)
                conn.select_db(name)
                conn.commit()
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                             
        # create a table
        def createTable(self, name):
            try:
                ex = self.cur.execute
                if ex('show tables') == 0:
                    ex('create table ' + name + '(id int, name varchar(20), sex int, age int, info varchar(50))')
                    self.conn.commit()
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # insert single record
        def insert(self, name, value):
            try:
                self.cur.execute('insert into ' + name + ' values(%s,%s,%s,%s,%s)', value)
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # insert more records
        def insertMore(self, name, values):
            try:
                self.cur.executemany('insert into ' + name + ' values(%s,%s,%s,%s,%s)', values)
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # update single record from table
        # name: table name
        # values: waiting to update data
        def updateSingle(self, name, value):
            try:
                # self.cur.execute('update ' + name + ' set name=' + str(values[1]) + ', sex=' + str(values[2]) + ', age=' + str(values[3]) + ', info=' + str(values[4]) + ' where id=' + str(values[0]) + ';')
                self.cur.execute('update ' + name + ' set name=%s, sex=%s, age=%s, info=%s where id=%s;', value)
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # update some record from table
        def update(self, name, values):
            try:
                self.cur.executemany('update ' + name + ' set name=%s, sex=%s, age=%s, info=%s where id=%s;', values)
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # get record count from db table
        def getCount(self, name):
            try:
                count = self.cur.execute('select * from ' + name)
                return count
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # select first record from database
        def selectFirst(self, name):
            try:
                self.cur.execute('select * from ' + name + ';')
                result = self.cur.fetchone()
                return result
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # select last record from database
        def selectLast(self, name):
            try:
                self.cur.execute('SELECT * FROM ' + name + ' ORDER BY id DESC;')
                result = self.cur.fetchone()
                return result
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # select next n records from database
        def selectNRecord(self, name, n):
            try:
                self.cur.execute('select * from ' + name + ';')
                results = self.cur.fetchmany(n)
                return results
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # select all records
        def selectAll(self, name):
            try:
                self.cur.execute('select * from ' + name + ';')
                self.cur.scroll(0, mode='absolute') # reset cursor location (mode = absolute | relative)
                results = self.cur.fetchall()
                return results
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # delete a record
        def deleteByID(self, name, id):
            try:
                self.cur.execute('delete from ' + name + ' where id=%s;', id)
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
         
        # delete some record
        def deleteSome(self, name):
            pass
         
        # drop the table
        def dropTable(self, name):
            try:
                self.cur.execute('drop table ' + name + ';')
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        # drop the database
        def dropDB(self, name):
            try:
                self.cur.execute('drop database ' + name + ';')
            except MySQLdb.Error, e:
                print "Mysql Error %d: %s" % (e.args[0], e.args[1])
                 
        def __del__(self):
            if self.cur != None:
                self.cur.close()
            if self.conn != None:
                self.conn.close()

     

  • 相关阅读:
    sql查询语句
    java网络编程实现两端聊天
    Thread和Runnable的子类调用
    接口和抽象类
    ObjectOutputStream和ObjectInputStream的简单使用
    HashMap遍历和使用
    InputStreamReader读取文件出现乱码
    Neural Network
    Logistic Regression 逻辑回归
    Linear Regression 线性回归
  • 原文地址:https://www.cnblogs.com/caimuqing/p/5383029.html
Copyright © 2011-2022 走看看