예제 #1
0
def select_sql(noneObj, param_dict) -> str:
    """
    封装查询sql语句
    :param noneObj 空对象
    :param param_dict 查询参数字典
    :return 查询的shql语句
    """
    # 判断参数字典是否为空
    if param_dict is None:
        raise SQLException("查询参数字典不能为空!")
    # 判断参数字典是否为字典类型
    if not isinstance(param_dict, dict):
        raise SQLException("查询参数字典应该为字典类型,当前类型为:" + str(type(param_dict)))
    # 获取类名称并且将驼峰命名改为下划线命名 让实体类与数据库一致
    clazz_name = hump_to_underline(type(noneObj).__name__)
    # 封装查询sql语句
    sql = "SELECT "
    # 遍历实体属性字典
    for attribute in noneObj.__dict__:
        sql = sql + clazz_name + "." + hump_to_underline(attribute) + ", "
    sql = sql[:-2] + " FROM " + clazz_name + " WHERE "
    for param in param_dict:
        sql = sql + clazz_name + "." + param + "= '" + str(
            param_dict.get(param)) + "' AND "
    return sql[:-4]
예제 #2
0
def delete_sql(obj) -> str:
    """
    封装删除sql语句
    :param obj 对象
    :return 删除的sql语句
    """
    clazz_name = hump_to_underline(obj.__class__.__name__)
    # 封装删除sql语句
    sql = "DELETE FROM " + clazz_name + " WHERE "
    for attribute_name in obj.__dict__:
        sql = sql + clazz_name + "." + attribute_name + "= '" + str(
            obj.__getattribute__(attribute_name)) + "' AND"
    return sql[:-3]
예제 #3
0
def delete_sql(clazz, param_dict) -> str:
    """
    封装删除sql语句
    :param clazz 类
    :param param_dict 参数字典
    :return 删除的sql语句
    """
    # 获取类名称并且将驼峰命名改为下划线命名 让实体类与数据库一致
    clazz_name = hump_to_underline(clazz.__name__)
    # 封装删除sql语句
    sql = "DELETE FROM " + clazz_name + " WHERE "
    for param in param_dict:
        sql = sql + clazz_name + "." + param + "= '" + str(
            param_dict.get(param)) + "' AND"
    return sql[:-3]
예제 #4
0
def insert_sql(clazz, param_dict):
    """
    封装插入sql语句
    :param clazz 类
    :param param_dict 添加的参数字典
    :return 插入的sqhl语句
    """
    # 获取类名称并且转成下划线命名
    clazz_name = hump_to_underline(clazz.__name__)
    # 封装sql语句,并且前后封装同时进行
    sql = "INSERT INTO " + clazz_name + "( "
    sql_two = ") VALUES ("
    for param in param_dict:
        if param_dict.get(param) is not None:
            sql = sql + clazz_name + "." + param + " ,"
            sql_two = sql_two + "'" + str(param_dict.get(param)) + "'"
    # 整合sql语句
    sql = sql[:-1] + sql_two + ")"
    return sql
예제 #5
0
def update_sql(obj, condition_dict) -> str:
    """
    封装更新sql语句
    :param obj 对象
    :param condition_dict 条件字典
    :return 更新的sql语句
    """
    clazz_name = hump_to_underline(obj.__class__.__name__)
    sql = "UPDATE " + clazz_name + " SET "
    for attribute_name in obj.__dict__:
        if obj.__getattribute__(attribute_name) is not None:
            sql = sql + attribute_name + " = '" + str(
                obj.__getattribute__(attribute_name)) + "' ,"
    sql = sql[:-1] + "WHERE "
    if condition_dict is None:
        raise SQLException("条件字典不能为空!")
    for condition in condition_dict:
        sql = sql + condition + " = '" + str(
            condition_dict.get(condition)) + "' AND "
    return sql[:-4]
예제 #6
0
def create_table(obj, key_name):
    """
    封装创建表sql
    :param obj: 对象
    :param key_name: 主键名称
    :return: 创建的sql
    """
    clazz_name = hump_to_underline(obj.__class__.__name__)
    sql = "CREATE TABLE IF NOT EXISTS " + clazz_name + " ( "
    for attribute_name in obj.__dict__:
        sql = sql + attribute_name
        if isinstance(obj.__getattribute__(attribute_name), int):
            sql = sql + " INTEGER , "
        if isinstance(obj.__getattribute__(attribute_name), str):
            sql = sql + " TEXT , "
        if key_name == attribute_name:
            sql = sql[:-2]
            sql = sql + "NOT NULL PRIMARY KEY AUTOINCREMENT , "
    sql = sql[:-2] + ")"
    return sql
예제 #7
0
def insert_sql(obj):
    """
    封装插入sql语句
    :param 对象
    :return 插入的sql语句
    """
    clazz_name = hump_to_underline(obj.__class__.__name__)
    sql = "INSERT INTO " + clazz_name + "( "
    sql_two = ") VALUES ("
    for attribute_name in obj.__dict__:
        if obj.__getattribute__(attribute_name) is None:
            continue
        if attribute_name == "id":
            if obj.__getattribute__(attribute_name) == 0:
                continue
        sql = sql + attribute_name + " ,"
        sql_two = sql_two + "'" + str(
            obj.__getattribute__(attribute_name)) + "' ,"

    sql = sql[:-1] + sql_two[:-1] + ")"
    return sql
예제 #8
0
def update_sql(clazz, updata_dict, condition_dict) -> str:
    """
    封装更新sql语句
    :param clazz 类
    :param updata_dict 更新的参数字典
    :param 条件字典
    :return 更新的sql语句
    """
    clazz_name = hump_to_underline(clazz.__name__)
    sql = "UPDATE " + clazz_name + " SET "
    if updata_dict is None:
        raise SQLException("更新字典不能为空!")
    for args in updata_dict:
        if updata_dict.get(args) is not None:
            sql = sql + args + " = " + str(updata_dict.get(args)) + " , "
    sql = sql[:-2]
    if condition_dict is None:
        raise SQLException("条件字典不能为空!")
    sql = sql + "WHERE "
    for condition in condition_dict:
        sql = sql + condition + " = '" + str(
            condition_dict.get(condition)) + "' AND "
    return sql[:-4]