已知有三个数据库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和存储数据库名称相关推荐

  1. ibatis基础(三):查询指定id的单个对象

    在Student.xml中插入如下代码: <!-- parameterClass代表要传入的参数类型 --><select id="SelectStudentById&qu ...

  2. 数据库 实验二 查询

    一.实验内容 1.用SQL语句表示下列操作,在学生库中实现数据查询. (1)求数学系学生的学号和姓名. (2)求选修了课程的学生学号. (3)求选修001号课程的学生学号和成绩,并要求对查询结果按成绩 ...

  3. SQL2K数据库开发二十六之存储过程操作创建存储过程(一)

    1.可以使用Transact-SQL中的CREATE PROCEDURE语句创建存储过程,使用该语句的语法为: 2.在查询分析器中执行如下语句创建一个存储过程. 3.在企业管理器中创建存储过程的方法为 ...

  4. java后端系统学习总结 02_数据库基础学习、jdbc基础学习、er图基础学习、数据库——(完结)

    猿猿正在系统的学习一些计算机知识,和后端技术栈,目前阶段主要在系统学习java.此专栏,为我学习过程中的学习笔记,便于日后复习回顾来看,也很适合新人学习参考. 以下是猿猿对数据库和java深入的第一遍 ...

  5. 获取SQL SERVER某个数据库中所有存储过程的参数

    2019独角兽企业重金招聘Python工程师标准>>> 一.获取指定数据库中所有存储过程的参数的方法 SELECT sp.object_Id as FunctionId, sp.na ...

  6. mysql同步大师_数据库大师成长日记:您最需要了解的NoSQL非关系型数据库

    朋友们,我们平时使用的数据库,大多都是关系型数据库,包括MySQL.PostgreSQL.SQLServer等.关系型数据库的特点是数据的存储通过二维表格实现,将数据存储在相互独立的表格中. 近年来, ...

  7. 通过系统表获取SQL,Access,Oracle数据库的元数据信息

    元数据简介 元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例.图书馆目录卡和名片等都可 ...

  8. php按id获取整条数据库,Ajax取得数据库的json值,想通过id获取对应信息,但是都默认获取第一条了...

    PHP<?PHP header("Content-Type: text/html; charset=utf-8"); include('conn.php');//链接数据库 ...

  9. where in的sql语句按照指定ID进行排序的解决方法

    做网站的时候需要一个需求,需要按照指定的ID获取数据库中的数据,返回数据的顺序要和指定ID的顺序相同,数据库是SQL Server的,下面的代码是在网上找来的,SQL server的已经测试过,可以满 ...

最新文章

  1. 从 Vuex 0.6.x 迁移到 1.0
  2. TCP close_wait 状态的解释
  3. python矩阵相关操作
  4. uva 11105——Semi-prime H-numbers
  5. JAVA 向文本文件中换行插入字符
  6. redis aof命令缓冲区的写入源码
  7. python栈应用_栈应用之 后缀表达式计算 (python 版)
  8. MATLAB提取 .fig 文件中的数据
  9. 点云配准icp算法推导
  10. pdman 创建表同步数据库_PDMan-2.0 正式发布:用心开源,免费的国产数据库建模工具PowerDesigner...
  11. 知道建模中的UV吗?
  12. 渐变背景怎么搞?2分钟教你制作渐变背景
  13. [转]大规模服务设计部署经验谈
  14. 陈满雪冤背后英雄:上百名同学捐款数十万元
  15. PPP、PPPOE、PPTP、L2TP应用场合
  16. java实现OCR图文识别Tess4j,高准确率高效率
  17. 【数据库数据恢复】华为云mysql数据库数据被delete的数据恢复案例
  18. 优雅整洁的 Java 代码命名技巧,风之极·净化
  19. 高蛋白过敏我们该如何缓解?教你几招远离过敏吃喝无忌
  20. android电视机软件锁,如何解锁电视的“应用锁”?OPPO智能电视R1这些操作学起来...

热门文章

  1. oracle-11g-R2监听文件配置
  2. Vmware由于centos升级内核不可运行(C header files matching your running kernel were not found)的解决方案...
  3. 鸟哥linux 私房菜
  4. oracle 12.2.0.1 搭建 active dataguard
  5. Angular2升级到Angular4
  6. 关于MapReduce中自定义Combine类(一)
  7. 华为OJ平台——整形数组合并
  8. Windows注册表操作基础代码
  9. MySQL源码解读之数据结构-LF_DYNARRAY
  10. getimg()在java中,java – 使用getClass()加载资源getResource()