Python 操作MySql数据库

一、Python DBAPI(类比JDBC)

Python访问数据库的统一接口规范。

包括数据库连接对象connection,好比高速公路.

数据库交互对象cursor,好比火车

数据库异常类exceptions,好比事故

 

使用Python DB API访问数据库的流程:

开始à创建connectionà获取cursorà执行查询/执行命令/获取数据/处理数据à关闭cursorà关闭connectionà结束




from chenjie.path import Path

import pymysql.cursors

class PathDao:
    def __init__(self):
        self.__connection = pymysql.connect(host='127.0.0.1',
                                     port=3306,
                                     user='root',
                                     password='',
                                     db='python',
                                     charset='utf8mb4',
                                     cursorclass=pymysql.cursors.DictCursor)
        self.__connection.autocommit(False)


    def save(self,path):
        try:
            with self.__connection.cursor() as cursor:
                print("--------------------------------------------------------------------------------------------------------")
                sql = "insert into Path values('%s','%s','%s',%s,%s)"%(path.url,path.date,path.flag,path.changci,path.isFinished)
                print(sql)
                count = cursor.execute(sql)
                print(count)
                #result = cursor.fetchone()
                #print(result)
                self.__connection.commit()
                print("save success")
        except Exception as e:
            print("save failed :" + e)
            self. __connection.rollback()
        finally:
            self.__connection.close()


    def getAllPath(self):
        try:
            with self.__connection.cursor() as cursor:
                sql = "SELECT * FROM `path`"
                print(sql)
                count = cursor.execute(sql)
                print(count)
                result = cursor.fetchall()
                print(result)
                self.__connection.commit()
                print("get success")
                return result
        except Exception as e:
            print("get failed :" + e)
            return None
        finally:
            self.__connection.close()

    def getUnVisitedPath(self):
        try:
            with self.__connection.cursor() as cursor:
                print("--------------------------------------------------------------------------------------------------------")
                sql = "SELECT * FROM `path` where isFinished = 0 limit 0,1"
                print(sql)
                count = cursor.execute(sql)
                print(count)
                result = cursor.fetchone()
                print(result)
                self.__connection.commit()
                print("get success")
                return result
        except Exception as e:
            print("get failed :" + e)
            return None
        finally:
            self.__connection.close()

if __name__ == "__main__":
    PathDao().getAllPath()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值