def loadDefaultDict(): for item in defaultDict: db_hundler = CommonDB() db_hundler.execute('create table if not exists ' + item + '(name VARCHAR(100) PRIMARY KEY,\ parent VARCHAR (100),abbr VARCHAR (100))') db_hundler.commit() db_hundler.close() with open(defaultLoc + item + '.txt', 'r') as f: for line in f: temp = line.rstrip('\n').split(' : ') name = temp[0] parent = temp[1] abbr = "" if len(temp) == 3: abbr = temp[2] db_hundler = CommonDB() db_hundler.execute( 'SELECT * FROM ' + item + ' WHERE name = %s', (name)) res = db_hundler.fetchone() if isinstance(res, tuple): db_hundler.execute( "UPDATE " + item + " SET parent = %s, abbr = %s WHERE name = %s", (parent, abbr, name)) else: db_hundler.execute( "INSERT INTO " + item + "(name, parent, abbr) VALUES(%s, %s, %s)", (name, parent, abbr)) db_hundler.commit() db_hundler.close() pass
def findNodeByName(name): if name is None or name == '': return False try: db_hundler = CommonDB() db_hundler.execute("SELECT * FROM sourcetree WHERE name = %s", (name)) res = db_hundler.fetchone() if isinstance(res, tuple): return True except Exception as e: print(e) db_hundler.close() return False
def get_name_by_id(_id): """给出节点id返回节点名称""" _db = CommonDB() if _id is None or _id < 0: return None sql = "SELECT name FROM " + DB_TABLE_NAME + " WHERE id=%s" _db.execute(sql, (_id, )) _result = _db.fetchone() if isinstance(_result, tuple): return _result[0] pass return None pass
def findParentByName(name): if name is None or name == '': return None try: db_hundler = CommonDB() db_hundler.execute("SELECT parent FROM sourcetree WHERE name = %s", (name)) res = db_hundler.fetchone() if isinstance(res, tuple): return res[0] except Exception as e: print(e) db_hundler.close() return None
def get_id_by_name(_node_name): """给出节点名, 返回节点id""" _db = CommonDB() if _node_name is None or str(_node_name).strip() == "": return None sql = "SELECT id FROM " + DB_TABLE_NAME + " WHERE name=%s" _db.execute(sql, (_node_name, )) _result = _db.fetchone() if isinstance(_result, tuple): # print(_result[0]) return _result[0] pass return None pass
def get_node_detail_by_id(_node_id): _data = {} _db = CommonDB() sql = "SELECT id,pid,name,synonym FROM " + DB_TABLE_NAME + " WHERE id=%s" params = (_node_id, ) try: _db.execute(sql, params) _res = _db.fetchone() _db.close() if _res is not None: _data["id"] = _res[0] _data["pid"] = _res[1] _data["name"] = _res[2] _data["synonym"] = _res[3] pass except: pass return _data pass
def get_chid_by_name(name, names): names.append(name) _db = CommonDB() sql = "SELECT id FROM " + DB_TABLE_NAME + " WHERE name=%s" try: _db.execute(sql, (name)) _result = _db.fetchone() if _result is not None: id = _result[0] print() sql = "SELECT name FROM " + DB_TABLE_NAME + " WHERE pid=%s" _db.execute(sql, (id)) _results = _db.fetchall() if _results is not None: for i in _results: get_chid_by_name(i[0], names) else: print("无此节点") except Exception as e: print("查询知识树结构时出错: ", e) pass return names
def fixProblemCount(name, num): if name is None or name == "": return False try: db_hundler = CommonDB() db_hundler.execute( "SELECT parent, haveProblem FROM sourcetree WHERE name = %s", (name)) res = db_hundler.fetchone() db_hundler.close() if isinstance(res, tuple): cnt = max(0, int(res[1]) + num) db_hundler = CommonDB() db_hundler.execute( "UPDATE sourcetree SET haveProblem = %s WHERE name = %s", (cnt, name)) db_hundler.commit() db_hundler.close() if name == 'Root': return True return fixProblemCount(res[0], num) except Exception as e: print(e) return False