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()