本文实例讲述了Python数据操作方法封装类。分享给大家供大家参考,具体如下:
工作中经常会用到数据的插叙、单条数据插入和批量数据插入,以下是本人封装的一个类,推荐给各位:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Eric.yue
import logging
import MySQLdb
class _MySQL( object ):
def __init__( self ,host, port, user, passwd, db):
self .conn = MySQLdb.connect(
host = host,
port = port,
user = user,
passwd = passwd,
db = db,
charset = 'utf8'
)
def get_cursor( self ):
return self .conn.cursor()
def query( self , sql):
cursor = self .get_cursor()
try :
cursor.execute(sql, None )
result = cursor.fetchall()
except Exception, e:
logging.error( "mysql query error: %s" , e)
return None
finally :
cursor.close()
return result
def execute( self , sql, param = None ):
cursor = self .get_cursor()
try :
cursor.execute(sql, param)
self .conn.commit()
affected_row = cursor.rowcount
except Exception, e:
logging.error( "mysql execute error: %s" , e)
return 0
finally :
cursor.close()
return affected_row
def executemany( self , sql, params = None ):
cursor = self .get_cursor()
try :
cursor.executemany(sql, params)
self .conn.commit()
affected_rows = cursor.rowcount
except Exception, e:
logging.error( "mysql executemany error: %s" , e)
return 0
finally :
cursor.close()
return affected_rows
def close( self ):
try :
self .conn.close()
except :
pass
def __del__( self ):
self .close()
mysql = _MySQL( '127.0.0.1' , 3306 , 'root' , '123456' , 'test' )
def create_table():
table = """
CREATE TABLE IF NOT EXISTS `watchdog`(
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` varchar(100),
`price` int(11) NOT NULL DEFAULT 0
) ENGINE=InnoDB charset=utf8;
"""
print mysql.execute(table)
def insert_data():
params = [( 'dog_%d' % i, i) for i in xrange ( 12 )]
sql = "INSERT INTO `watchdog`(`name`,`price`) VALUES(%s,%s);"
print mysql.executemany(sql, params)
if __name__ = = '__main__' :
create_table()
insert_data()
|
希望本文所述对大家Python程序设计有所帮助。