zoukankan      html  css  js  c++  java
  • 3类数据库的联动:mysql、mongodb、redis

    3类数据库的联动:mysql、mongodb、redis

    from pymysql import *
    from pymongo import *
    from redis import *
    
    
    class MySQL(object):
        def __init__(self):
            self.con = connect(host='localhost', port=3306,
                               database='stu_info', user='root',
                               password='mysql', charset='utf8')
            self.cur = self.con.cursor()
            self.flag = ["mysql", None]
    
        def close(self):
            self.cur.close()
            self.con.close()
    
        def check(self, sid):
            try:
                cur = self.cur
                param = [sid]
                sel_sql = "select name from student where id = %s"
                cur.execute(sel_sql, param)
                res = cur.fetchone()
                if res:
                    self.flag[1] = res[0]
            except Exception:
                pass
            finally:
                self.close()
                return self.flag
    
    class Mongo(object):
        def __init__(self):
            self.client = MongoClient(host='localhost', port=27017)
            self.db = self.client.stu_info
            self.col = self.db.student
            self.flag = ["mongo", None]
    
        def check(self, sid):
            try:
                res = self.col.find_one({"id": sid})
                if res:
                    self.flag[1] = res["name"]
            except Exception:
                pass
            finally:
                return self.flag
    
    class Redis(object):
        def __init__(self):
            self.client = StrictRedis()
            self.flag = ["redis", None]
    
        def check(self, sid):
            try:
                res = self.client.get(sid)
                if res:
                    self.flag[1] = res.decode()
            except Exception:
                pass
            finally:
                return self.flag
    
    class Check(object):
        def __init__(self):
            self.msg = ["不在库中", "未找到该学生"]
    
        def check(self, sid):
            redis = Redis()
            self.msg = redis.check(sid)
            if self.msg[1]:
                return self.msg
            else:
                mongo = Mongo()
                self.msg = mongo.check(sid)
                if self.msg[1]:
                    return self.msg
                else:
                    mysql = MySQL()
                    self.msg = mysql.check(sid)
                    if self.msg[1]:
                        return self.msg
                    else:
                        self.msg = ["不在库中", "未找到该学生"]
                        return self.msg
    def main():
        stu_id = input("请输入要查询的id号:")
        check_id = Check()
        id_msg = check_id.check(stu_id)
        print(id_msg)
    if __name__ == '__main__':
        main()
    

      

  • 相关阅读:
    后台服务器经典面试题
    Java英语面试题(核心知识篇)
    Java常用英语汇总(面试必备)
    字符压缩编码
    外排序
    基数排序
    Windows Server 2008 R2 部署服务
    LINUX中常用操作命令
    我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
    CSDN-Code平台使用过程中的5点经验教训
  • 原文地址:https://www.cnblogs.com/andy9468/p/8988350.html
Copyright © 2011-2022 走看看