mysql不同数据库联动_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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值