python操作數據庫類。實現建表、插入數據、查詢數據功能
阿新 • • 發佈:2018-09-30
port style err mys nbsp str con clas exce
1 import mysql.connector 2 class database: 3 def __init__(self,ip,port,user,psw,dbname): 4 5 try: 6 con=mysql.connector.connect( 7 host=ip, 8 user=user, 9 password=psw, 10 port=port, 11 database=dbname,12 charset=‘utf8‘, 13 buffered=True 14 ) 15 print(‘數據庫連接成功‘) 16 self.con=con #con在其他類方法中還要多次調用,所以定義為成員變量 17 #cursor=con.cursor() 18 except mysql.connector.Error as e: 19 print(‘連接失敗‘,str(e)) 20 21def create_tb(self,sql): 22 try: 23 cursor=self.con.cursor()#獲取遊標 24 cursor.execute(sql)#執行sql 25 print(‘創建成功‘) 26 except mysql.connector.Error as e: 27 print(‘創建失敗‘,str(e)) 28 finally: 29 cursor.close()#關閉遊標 3031 def insert_tb(self,sql,data): 32 try: 33 cursor=self.con.cursor() 34 cursor.executemany(sql,data) 35 self.con.commit() 36 print(‘數據插入成功‘) 37 except mysql.connector.Error as e: 38 self.con.rollback() 39 print(‘插入失敗‘,str(e)) 40 cursor.close() 41 42 def select_tb(self,sql): 43 try: 44 cursor=self.con.cursor(dictionary=True) 45 cursor.execute(sql) 46 result1=cursor.fetchall() 47 print(‘查詢全部結果:‘,result1) 48 except mysql.connector.Error as e: 49 print(‘查詢失敗‘,str(e)) 50 finally: 51 cursor.close() 52 53 def select_tb_one(self,sql): 54 try: 55 cursor=self.con.cursor(dictionary=True) 56 cursor.execute(sql) 57 result2=cursor.fetchone() 58 print(‘查詢一條結果:‘,result2) 59 except mysql.connector.Error as e: 60 print(‘查詢失敗‘,str(e)) 61 finally: 62 cursor.close() 63 64 def select_tb_many(self,sql,count): 65 try: 66 cursor=self.con.cursor(dictionary=True) 67 cursor.execute(sql) 68 result3=cursor.fetchmany(count) 69 print(‘查詢結果:‘,result3) 70 except mysql.connector.Error as e: 71 print(‘查詢失敗‘,str(e)) 72 finally: 73 cursor.close()
調用代碼:
1 #連接數據庫 2 db=database(‘127.0.0.1‘,‘3306‘,‘root‘,‘vertrigo‘,‘mysql‘) 3 #創建表 4 sql_create=‘create table student_5(id int(10) not null auto_increment, name varchar(10) default null, age int(3) default null, primary key (id))engine=myisam default charset=utf8;‘ 5 db.create_tb(sql_create) 6 # #插入數據 7 sql_insert=‘insert into student_5(id,name,age) values(%s,%s,%s)‘ 8 data_insert=[(1,‘guozhen‘,18),(2,‘ss‘,19),(3,‘alen‘,30)] 9 db.insert_tb(sql_insert,data_insert) 10 #查詢全部數據 11 sql_select=‘select * from student_5‘ 12 db.select_tb(sql_select) 13 #查詢多條數據 14 db.select_tb_many(sql_select,2) 15 #查詢一條數據 16 db.select_tb_one(sql_select) 17 #關閉數據庫連接 18 db.con.close()
python操作數據庫類。實現建表、插入數據、查詢數據功能