2019独角兽企业重金招聘Python工程师标准>>>
# -*- coding: utf-8 -*-
import MySQLdb
import uuid
DBKWARGS = {'db': 'yy2.0', 'user': 'root', 'passwd': 'root',
'host': 'localhost', 'use_unicode': True, 'charset': 'utf8'}
getRC = lambda cur: cur.rowcount if hasattr(cur, 'rowcount') else -1
class handleDataBase:
def __init__(self, kwargs):
self.conn = MySQLdb.connect(**kwargs)
self.cur = self.conn.cursor()
# 插入操作
def insert_one(self, sql, value):
res = self.cur.execute(sql, value)
# 插入成功,res 返回值为1
if 1 != res:
print 'failed'
else:
print 'success'
# 插入多条记录
def insert_many(self, sql, values):
res = self.cur.executemany(sql, values)
# 插入成功,res 返回值为1
if 1 != res:
print 'failed'
else:
print 'success'
# 更新操作
def update(self, sql, params):
self.cur.execute(sql, params)
return getRC(self.cur)
# 删除操作
def delete(self, sql, params):
self.cur.execute(sql, params)
return getRC(self.cur)
# 只获取一条记录,返回的是一个元组
def fetch_one(self, sql):
count = self.cur.execute(sql)
print count
result = self.cur.fetchone()
return result
# 获取多条数据;返回的是二维元组;
def fetch_all(self, sql):
count = self.cur.execute(sql)
print count
results = self.cur.fetchall()
'''
print results
for r in results:
print r
'''
return results
# 提交的完成操作
def finish(self):
self.conn.commit()
self.conn.close()
# 实战
if __name__ == "__main__":
# 接下来就访问数据库了
handle_db = handleDataBase(DBKWARGS)
select_sql = 'select id from las_question'
insert_sql = 'INSERT INTO las_question_use_count (id,paperCount,questionId,resolveCount,wrongCount) VALUES (%s,0,%s,0,0)'
results = handle_db.fetch_all(select_sql)
values=[]
print values
for r in results:
target = r[0]
if target:
use_count_id=uuid.uuid1()
params = (use_count_id, target)
values.append(params)
handle_db.insert_many(insert_sql,values)
handle_db.finish()