python操作数据库

#coding=utf-8
__author__ = 'libai'
import MySQLdb
import traceback
import random
import string
class mysqlUtil(object):
    #获取连接和游标
    def __init__(self):
        self.conn=MySQLdb.connect(
            host='localhost',
            port=3306,
            user='root',
            passwd='root',
            charset='utf8'
        )
        self.cur=self.conn.cursor()
    #创建数据库
    def create_db(self,sql):
        self.cur.execute(sql)
        self.conn.commit()
    #获取数据库
    def user_db(self,db_name):
        self.conn.select_db(db_name)
    #创建表
    def create_table(self,db_name,sql):
        self.conn.select_db(db_name)
        self.cur.execute(sql)
        # self.conn.commit()
    #插入数据
    def insert(self,db_name,sql,values):
        self.conn.select_db(db_name)
        self.cur.execute(sql,values)
        # self.conn.commit()
    #插入多条数据
    def insert_many(self,db_name,sql,values):
        self.conn.select_db(db_name)
        self.cur.executemany(sql,values)
        self.conn.commit()
    #查询一条数据
    def select_one(self,db_name,sql):
        self.conn.select_db(db_name)
        self.cur.execute(sql)
        value=self.cur.fetchone()
        return value
    #查询多条语句
    def select_many(self,db_name,sql,n):
        self.conn.select_db(db_name)
        self.cur.execute(sql)
        return self.cur.fetchmany(n)
    #查询所有数据
    def select_all(self,db_name,sql):
        self.conn.select_db(db_name)
        self.cur.execute(sql)
        return self.cur.fetchall()
    #修改数据
    def update(self,db_name,sql):
        self.conn.select_db(db_name)
        self.cur.execute(sql)
        self.conn.commit()
    #批量修改
    def update_many(self,db_name,sql,value):
        self.conn.select_db(db_name)
        self.cur.executemany(sql,value)
        self.conn.commit()
    #关闭连接
    def quit(self):
        self.cur.close()
        self.conn.commit()
        self.conn.close()
    #删除一条数据
    def delete(self,db_name,sql):
        try:
            self.conn.select_db(db_name)
            self.cur.execute(sql)
            self.conn.commit()
        except:
            traceback.print_exc()
    #删除多条数据
    def delete_many(self,db_name,sql,values):
        try:
            self.conn.select_db(db_name)
            self.cur.executemany(sql,values)
            self.conn.commit()
        except MySQLdb.Error,e:
            print e
    #回滚操作
    def rollback(self):
        self.conn.rollback()
if __name__=='__main__':
    my_sql=mysqlUtil()
    #插入数据
    # sql="insert into student(name,age,email,tel) values(%s,%s,%s,%s)"
    # values=('baoshizhen',18,'baoshizhen@qq.com','17600340039')
    # my_sql.insert('nidaye',sql,values)
    # my_sql.quit()

    #插入多条数据
    # values=[]
    # sql="insert into student(name,age,email,tel) values(%s,%s,%s,%s)"
    # for i in range(10):
    #     name=''.join((random.sample(string.letters,5)))
    #     age=random.randint(1,100)
    #     email=name+'@qq.com'
    #     tel='1'+str(random.choice([3,5,8,9]))+str(random.random())[2:11]
    #     values.append((name,age,email,tel))
    # my_sql.insert_many('nidaye',sql,values)
    # my_sql.quit()

    #查询一条数据
    # sql='select * from student;'
    # value=my_sql.select_one('nidaye',sql)
    # print value


    #查询多条数据
    # sql='select * from student'
    # values=my_sql.select_many('nidaye',sql,5)
    # for i in values:
    #     print i

    #查询所有数据
    # sql='select * from student'
    # values=my_sql.select_all('nidaye',sql)
    # for i in values:
    #     print i

    #修改数据
    # sql='update student set name="%s" where id=11' %('end')
    # my_sql.update('nidaye',sql)
    # my_sql.quit()

    #批量修改
    # sql='update student set name=%s where id=%s'
    # values=[('first',1),('second',2)]
    # my_sql.update_many('nidaye',sql,values)
    # my_sql.quit()

    #删除一条数据
    # sql='delete from student where id=11'
    # my_sql.delete('nidaye',sql)
    # my_sql.quit()

    #删除多条数据
    # sql='delete from student where id =%s'
    # values=[(8),(9)]
    # my_sql.delete_many('nidaye',sql,values)
    # my_sql.quit()

    #回滚操作
    my_sql.user_db('nidaye')
    my_sql.cur.execute('insert into student(name,age,email,tel) values(%s,%s,%s,%s)',('bao',18,'bao@qq.com','17600340040'))
    my_sql.cur.execute('select * from student where name="bao"')
    value=my_sql.cur.fetchone()
    print value
    my_sql.rollback()
    my_sql.cur.execute('select * from student where name="bao"')
    value=my_sql.cur.fetchone()
    print value
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值