Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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