NSMS 延用了 ANDX 的数据库连接方式,提供了自动构建 MySQL查询语句的封装方法。NSMS为保障这些封装方法的使用安全,需要对所有查询的字段进行相对应的检验与格式化。这样就涉及到需要对这些字段进行配置。
Field 的配置文件与Module、Manage的是在同一位置的,均在配置目录下的每一个模块目录中。配置文件均为JSON格式。建议使用专业的编辑器进行修改。
这里举一个简单的例子:
{
"A": {"type": "str", "len": 20, "check": "username", "struct": {"split": "and", "calc": "=", "splitin": "or"}},
"B": {"type": "str", "len": 20000, "format": "html"},
"C": {"type": "int", "len": 2,"min": 10, "max": 80},
"D": {"type": "str", "len": 20, "check": "date", "format": "date", "struct": {"split": "and", "calc": "=", "splitin": "or"}},
"E": {"type": "str", "len": 255, "struct": {"split": "and", "calc": "like", "splitin": "or", "type": 3}}
}
type 表示该字段的类型,为必须项。
len 表示该字段允许的字符长度,为必须项。数字也可以设置长度。这里的机制是将所有类型都视为字符串来限制长度,系统将自行转换。
min 和 max 表示数字的范围,为选填项,数字类型的字段也可以不设置。
check 表示该字段的检验方式,为选填项,不设置时使用系统默认的安全检验方式。
format 表示数据要格式化的类型,为选填项。
struct 表示构造查询语句时用到的参数,为选填项,不设置则使用默认的 {"split": "and", "calc": "=", "splitin": "or"}。
struct.split 表示外层使用的连接方式,如:and、or等。
struct.calc 表示查询运算符号,如:=、like等。
struct.splitin 表示里层使用的连接方式,类似于 struct.split。
struct.type 只在 struct.split 和 struct.splitin 使用 like、not like 的情况设置,用于在字段查询内容前后添加“%”。3:表示左右边都添加;2:表示左边添加;1:表示右边添加; 默认或不设置时,表示不添加。
Field 的配置文件内对字段进行的设置可用于默认场景。实际使用时,可以根据实际需求,使用向方法函数传递临时的构造数组(数组与JSON的格式相同),来实现不同的查询语句。
通过这种方式,可以减少后端语言的修改量,但同样也限制了程序的灵活性,所以系统依然保留了程序员自行构造查询语句的空间。如果不习惯于自动生成查询语句的方式,也可以自己动手构造。
网友评论