1. 程式人生 > >python操作數據庫類。實現建表、插入數據、查詢數據功能

python操作數據庫類。實現建表、插入數據、查詢數據功能

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 21
def 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()#關閉遊標 30
31 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操作數據庫類。實現建表、插入數據、查詢數據功能