数据库练习(二)三个数据库根据指定id获取name和存储数据库名称
已知有三個數據庫mysql,mongodb和redis,已經分別存儲了不同的學生信息,數據全部采用字符串類型,只有id和name兩個字段(在mongo和redis中鍵為id,值為name),現需編寫代碼實現需求:根據指定id獲取對應的name和存儲該條信息的數據庫名稱。
答案結果如下:
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]
?
??? defclose(self):
???????self.cur.close()
???????self.con.close()
?
??? defcheck(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()
??????????? ifres:
???????????????self.flag[1] = res[0]
??????? exceptException:
???????????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]
?
??? defcheck(self, sid):
??????? try:
???????????res = self.col.find_one({"id": sid})
??????????? ifres:
???????????????self.flag[1] = res["name"]
??????? exceptException:
?????? ?????pass
???????finally:
??????? ????return self.flag
?
class Redis(object):
??? def__init__(self):
???????self.client = StrictRedis()
???????self.flag = ["redis", None]
?
??? defcheck(self, sid):
??????? try:
???????????res = self.client.get(sid)
??????????? ifres:
???????????????self.flag[1] = res.decode()
??????? exceptException:
???????????pass
???????finally:
???????????return self.flag
?
class Check(object):
??? def__init__(self):
???????self.msg = ["不在庫中", "未找到該學生"]
?
??? defcheck(self, sid):
??????? redis= Redis()
???????self.msg = redis.check(sid)
??????? ifself.msg[1]:
???????????return self.msg
??????? else:
???????????mongo = Mongo()
???????????self.msg = mongo.check(sid)
??????????? ifself.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()
總結
以上是生活随笔為你收集整理的数据库练习(二)三个数据库根据指定id获取name和存储数据库名称的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python答题:LinteCode简单
- 下一篇: mysql 线性表_线性表之顺序存储,基