论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
编程语言
[6440] 2020-01-18_Mybatis学习的深入浅出
文档创建者:
s7ckTeam
浏览次数:
2
最后更新:
2025-01-17
编程语言
2 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-58
6万
主题
-6万
回帖
-58
积分
管理员
积分
-58
发消息
2020-01-18_Mybatis学习的深入浅出
M
y
b
a
t
i
s
学
习
的
深
入
浅
出
E
安
全
2
0
2
0
-
0
1
-
1
8
以
下
文
章
来
源
于
雷
神
众
测
,
作
者
李
嘉
奇
N
o
.
1
N
o
.
1
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
由
于
传
播
、
利
用
此
文
所
提
供
的
信
息
而
造
成
的
任
何
直
接
或
者
间
接
的
后
果
及
损
失
,
均
由
使
用
者
本
人
负
责
,
雷
神
众
测
以
及
文
章
作
者
不
为
此
承
担
任
何
责
任
。
雷
神
众
测
拥
有
对
此
文
章
的
修
改
和
解
释
权
。
如
欲
转
载
或
传
播
此
文
章
,
必
须
保
证
此
文
章
的
完
整
性
,
包
括
版
权
声
明
等
全
部
内
容
。
未
经
雷
神
众
测
允
许
,
不
得
任
意
修
改
或
者
增
减
此
文
章
内
容
,
不
得
以
任
何
方
式
将
其
用
于
商
业
目
的
。
N
o
.
2
N
o
.
2
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
先
从
简
单
的
先
从
简
单
的
d
e
m
o
入
手
入
手
U
s
e
r
:
p
a
c
k
a
g
e
c
o
m
.
t
e
s
t
.
e
n
t
i
t
y
;
i
m
p
o
r
t
l
o
m
b
o
k
.
D
a
t
a
;
@
D
a
t
a
p
u
b
l
i
c
c
l
a
s
s
U
s
e
r
{
p
r
i
v
a
t
e
i
n
t
i
d
;
p
r
i
v
a
t
e
S
t
r
i
n
g
n
a
m
e
;
p
r
i
v
a
t
e
S
t
r
i
n
g
p
a
s
s
w
o
r
d
;
p
r
i
v
a
t
e
i
n
t
a
g
e
;
p
r
i
v
a
t
e
i
n
t
d
e
l
e
t
e
F
l
a
g
;
}
U
s
e
r
M
a
p
p
e
r
:
p
u
b
l
i
c
i
n
t
e
r
f
a
c
e
U
s
e
r
M
a
p
p
e
r
{
p
u
b
l
i
c
v
o
i
d
i
n
s
e
r
t
(
U
s
e
r
u
s
e
r
)
;
p
u
b
l
i
c
U
s
e
r
f
i
n
d
U
s
e
r
B
y
I
d
(
i
n
t
u
s
e
r
I
d
)
;
p
u
b
l
i
c
L
i
s
t
<
U
s
e
r
>
f
i
n
d
A
l
l
U
s
e
r
s
(
)
;
}
u
s
e
r
-
m
a
p
p
i
n
g
.
x
m
l
:
<
?
x
m
l
v
e
r
s
i
o
n
=
"
1
.
0
"
e
n
c
o
d
i
n
g
=
"
U
T
F
-
8
"
?
>
<
!
D
O
C
T
Y
P
E
m
a
p
p
e
r
P
U
B
L
I
C
"
-
/
/
i
b
a
t
i
s
.
a
p
a
c
h
e
.
o
r
g
/
/
D
T
D
M
a
p
p
e
r
3
.
0
/
/
E
N
"
"
h
t
t
p
:
/
/
i
b
a
t
i
s
.
a
p
a
c
h
e
.
o
r
g
/
d
t
d
/
i
b
a
t
i
s
-
3
-
m
a
p
p
e
r
.
d
t
d
"
>
<
m
a
p
p
e
r
n
a
m
e
s
p
a
c
e
=
"
c
o
m
.
t
e
s
t
.
d
a
o
.
U
s
e
r
M
a
p
p
e
r
"
>
<
s
e
l
e
c
t
i
d
=
"
f
i
n
d
U
s
e
r
B
y
I
d
"
r
e
s
u
l
t
T
y
p
e
=
"
c
o
m
.
t
e
s
t
.
e
n
t
i
t
y
.
U
s
e
r
"
>
s
e
l
e
c
t
*
f
r
o
m
u
s
e
r
w
h
e
r
e
i
d
=
#
{
i
d
}
<
/
s
e
l
e
c
t
>
<
/
m
a
p
p
e
r
>
测
试
方
法
:
雷
神
众
测
雷
神
众
测
.
雷
神
众
测
,
专
注
于
渗
透
测
试
技
术
及
全
球
最
新
网
络
攻
击
技
术
的
分
析
。
N
o
.
3
N
o
.
3
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
配
置
简
介
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
上
述
例
子
中
我
们
可
以
发
现
实
现
过
程
是
:
1
.
创
建
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
2
.
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
创
建
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
3
.
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
.
o
p
e
n
S
e
s
s
i
o
n
(
)
得
到
S
q
l
S
e
s
s
i
o
n
4
.
S
q
l
S
e
s
s
i
o
n
.
g
e
t
M
a
p
p
e
r
(
)
得
到
具
体
的
m
a
p
p
e
r
实
例
5
.
调
用
真
正
的
方
法
比
如
f
i
n
d
U
s
e
r
B
y
I
d
接
下
来
就
分
析
这
几
个
过
程
的
实
现
先
从
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
入
手
,
咱
们
先
看
看
源
码
是
怎
么
实
现
的
:
通
过
源
码
,
我
们
可
以
看
到
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
通
过
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
去
解
析
我
们
传
入
的
m
y
b
a
t
i
s
的
配
置
文
件
,
下
面
就
接
着
看
看
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
部
分
源
码
:
p
u
b
l
i
c
c
l
a
s
s
U
s
e
r
D
a
o
T
e
s
t
{
@
T
e
s
t
p
u
b
l
i
c
v
o
i
d
f
i
n
d
U
s
e
r
B
y
I
d
(
)
{
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
=
g
e
t
S
e
s
s
i
o
n
F
a
c
t
o
r
y
(
)
.
o
p
e
n
S
e
s
s
i
o
n
(
)
;
U
s
e
r
M
a
p
p
e
r
u
s
e
r
M
a
p
p
e
r
=
s
q
l
S
e
s
s
i
o
n
.
g
e
t
M
a
p
p
e
r
(
U
s
e
r
M
a
p
p
e
r
.
c
l
a
s
s
)
;
U
s
e
r
u
s
e
r
=
u
s
e
r
M
a
p
p
e
r
.
f
i
n
d
U
s
e
r
B
y
I
d
(
2
)
;
A
s
s
e
r
t
.
a
s
s
e
r
t
N
o
t
N
u
l
l
(
"
没
找
到
数
据
"
,
u
s
e
r
)
;
}
/
/
M
y
b
a
t
i
s
通
过
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
获
取
S
q
l
S
e
s
s
i
o
n
,
然
后
才
能
通
过
S
q
l
S
e
s
s
i
o
n
与
数
据
库
进
行
交
互
p
r
i
v
a
t
e
s
t
a
t
i
c
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
g
e
t
S
e
s
s
i
o
n
F
a
c
t
o
r
y
(
)
{
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
s
e
s
s
i
o
n
F
a
c
t
o
r
y
=
n
u
l
l
;
S
t
r
i
n
g
r
e
s
o
u
r
c
e
=
"
c
o
n
f
i
g
u
r
a
t
i
o
n
.
x
m
l
"
;
t
r
y
{
s
e
s
s
i
o
n
F
a
c
t
o
r
y
=
n
e
w
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
(
)
.
b
u
i
l
d
(
R
e
s
o
u
r
c
e
s
.
g
e
t
R
e
s
o
u
r
c
e
A
s
R
e
a
d
e
r
(
r
e
s
o
u
r
c
e
)
)
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
e
)
{
e
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
}
r
e
t
u
r
n
s
e
s
s
i
o
n
F
a
c
t
o
r
y
;
}
}
p
u
b
l
i
c
c
l
a
s
s
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
{
/
/
R
e
a
d
e
r
读
取
m
y
b
a
t
i
s
配
置
文
件
,
传
入
构
造
方
法
/
/
除
了
R
e
a
d
e
r
外
,
其
实
还
有
对
应
的
i
n
p
u
t
S
t
r
e
a
m
作
为
参
数
的
构
造
方
法
,
/
/
这
也
体
现
了
m
y
b
a
t
i
s
配
置
的
灵
活
性
p
u
b
l
i
c
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
b
u
i
l
d
(
R
e
a
d
e
r
r
e
a
d
e
r
)
{
r
e
t
u
r
n
b
u
i
l
d
(
r
e
a
d
e
r
,
n
u
l
l
,
n
u
l
l
)
;
}
p
u
b
l
i
c
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
b
u
i
l
d
(
R
e
a
d
e
r
r
e
a
d
e
r
,
S
t
r
i
n
g
e
n
v
i
r
o
n
m
e
n
t
)
{
r
e
t
u
r
n
b
u
i
l
d
(
r
e
a
d
e
r
,
e
n
v
i
r
o
n
m
e
n
t
,
n
u
l
l
)
;
}
/
/
m
y
b
a
t
i
s
配
置
文
件
+
p
r
o
p
e
r
t
i
e
s
,
此
时
m
y
b
a
t
i
s
配
置
文
件
中
可
以
不
配
置
p
r
o
p
e
r
t
i
e
s
,
也
能
使
用
$
{
}
形
式
p
u
b
l
i
c
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
b
u
i
l
d
(
R
e
a
d
e
r
r
e
a
d
e
r
,
P
r
o
p
e
r
t
i
e
s
p
r
o
p
e
r
t
i
e
s
)
{
r
e
t
u
r
n
b
u
i
l
d
(
r
e
a
d
e
r
,
n
u
l
l
,
p
r
o
p
e
r
t
i
e
s
)
;
}
/
/
通
过
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
解
析
m
y
b
a
t
i
s
配
置
,
然
后
创
建
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
对
象
p
u
b
l
i
c
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
b
u
i
l
d
(
R
e
a
d
e
r
r
e
a
d
e
r
,
S
t
r
i
n
g
e
n
v
i
r
o
n
m
e
n
t
,
P
r
o
p
e
r
t
i
e
s
p
r
o
p
e
r
t
i
e
s
)
{
t
r
y
{
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
p
a
r
s
e
r
=
n
e
w
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
r
e
a
d
e
r
,
e
n
v
i
r
o
n
m
e
n
t
,
p
r
o
p
e
r
t
i
e
s
)
;
/
/
下
面
看
看
这
个
方
法
的
源
码
r
e
t
u
r
n
b
u
i
l
d
(
p
a
r
s
e
r
.
p
a
r
s
e
(
)
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
t
h
r
o
w
E
x
c
e
p
t
i
o
n
F
a
c
t
o
r
y
.
w
r
a
p
E
x
c
e
p
t
i
o
n
(
"
E
r
r
o
r
b
u
i
l
d
i
n
g
S
q
l
S
e
s
s
i
o
n
.
"
,
e
)
;
}
f
i
n
a
l
l
y
{
E
r
r
o
r
C
o
n
t
e
x
t
.
i
n
s
t
a
n
c
e
(
)
.
r
e
s
e
t
(
)
;
t
r
y
{
r
e
a
d
e
r
.
c
l
o
s
e
(
)
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
e
)
{
/
/
I
n
t
e
n
t
i
o
n
a
l
l
y
i
g
n
o
r
e
.
P
r
e
f
e
r
p
r
e
v
i
o
u
s
e
r
r
o
r
.
}
通
过
以
上
源
码
,
我
们
就
能
看
出
,
在
m
y
b
a
t
i
s
的
配
置
文
件
中
:
1
.
c
o
n
f
i
g
u
r
a
t
i
o
n
节
点
为
根
节
点
。
2
.
在
c
o
n
f
i
g
u
r
a
t
i
o
n
节
点
之
下
,
我
们
可
以
配
置
1
0
个
子
节
点
,
分
别
为
:
p
r
o
p
e
r
t
i
e
s
、
t
y
p
e
A
l
i
a
s
e
s
、
p
l
u
g
i
n
s
、
o
b
j
e
c
t
F
a
c
t
o
r
y
、
o
b
j
e
c
t
W
r
a
p
p
e
r
F
a
c
t
o
r
y
、
s
e
t
t
i
n
g
s
、
e
n
v
i
r
o
n
m
e
n
t
s
、
d
a
t
a
b
a
s
e
I
d
P
r
o
v
i
d
e
r
、
t
y
p
e
H
a
n
d
l
e
r
s
、
m
a
p
p
e
r
s
。
N
o
.
4
N
o
.
4
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
配
置
详
解
之
配
置
详
解
之
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
(
p
r
o
p
e
r
t
i
e
s
与
与
e
n
v
i
r
o
n
m
e
n
t
s
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
先
来
回
顾
一
下
m
v
c
中
p
r
o
p
e
r
t
i
e
s
(
数
据
库
连
接
)
与
e
n
v
i
r
o
n
m
e
n
t
s
(
不
同
的
部
署
环
境
)
的
配
置
p
r
o
p
e
r
t
i
e
s
:
<
c
o
n
f
i
g
u
r
a
t
i
o
n
>
<
!
-
-
方
法
一
:
从
外
部
指
定
p
r
o
p
e
r
t
i
e
s
配
置
文
件
,
除
了
使
用
r
e
s
o
u
r
c
e
属
性
指
定
外
,
还
可
通
过
u
r
l
属
性
指
定
u
r
l
<
p
r
o
p
e
r
t
i
e
s
r
e
s
o
u
r
c
e
=
"
d
b
C
o
n
f
i
g
.
p
r
o
p
e
r
t
i
e
s
"
>
<
/
p
r
o
p
e
r
t
i
e
s
>
-
-
>
<
!
-
-
方
法
二
:
直
接
配
置
为
x
m
l
-
-
>
<
p
r
o
p
e
r
t
i
e
s
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
d
r
i
v
e
r
"
v
a
l
u
e
=
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
r
l
"
v
a
l
u
e
=
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
t
e
s
t
1
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
s
e
r
n
a
m
e
"
v
a
l
u
e
=
"
r
o
o
t
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
p
a
s
s
w
o
r
d
"
v
a
l
u
e
=
"
r
o
o
t
"
/
>
<
/
p
r
o
p
e
r
t
i
e
s
>
e
n
v
i
r
o
n
m
e
n
t
s
:
/
*
*
*
m
y
b
a
t
i
s
配
置
文
件
解
析
*
/
p
u
b
l
i
c
c
l
a
s
s
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
e
x
t
e
n
d
s
B
a
s
e
B
u
i
l
d
e
r
{
p
u
b
l
i
c
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
I
n
p
u
t
S
t
r
e
a
m
i
n
p
u
t
S
t
r
e
a
m
,
S
t
r
i
n
g
e
n
v
i
r
o
n
m
e
n
t
,
P
r
o
p
e
r
t
i
e
s
p
r
o
p
s
)
{
t
h
i
s
(
n
e
w
X
P
a
t
h
P
a
r
s
e
r
(
i
n
p
u
t
S
t
r
e
a
m
,
t
r
u
e
,
p
r
o
p
s
,
n
e
w
X
M
L
M
a
p
p
e
r
E
n
t
i
t
y
R
e
s
o
l
v
e
r
(
)
)
,
e
n
v
i
r
o
n
m
e
n
t
,
p
r
o
p
s
)
;
}
p
r
i
v
a
t
e
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
(
X
P
a
t
h
P
a
r
s
e
r
p
a
r
s
e
r
,
S
t
r
i
n
g
e
n
v
i
r
o
n
m
e
n
t
,
P
r
o
p
e
r
t
i
e
s
p
r
o
p
s
)
{
s
u
p
e
r
(
n
e
w
C
o
n
f
i
g
u
r
a
t
i
o
n
(
)
)
;
E
r
r
o
r
C
o
n
t
e
x
t
.
i
n
s
t
a
n
c
e
(
)
.
r
e
s
o
u
r
c
e
(
"
S
Q
L
M
a
p
p
e
r
C
o
n
f
i
g
u
r
a
t
i
o
n
"
)
;
t
h
i
s
.
c
o
n
f
i
g
u
r
a
t
i
o
n
.
s
e
t
V
a
r
i
a
b
l
e
s
(
p
r
o
p
s
)
;
t
h
i
s
.
p
a
r
s
e
d
=
f
a
l
s
e
;
t
h
i
s
.
e
n
v
i
r
o
n
m
e
n
t
=
e
n
v
i
r
o
n
m
e
n
t
;
t
h
i
s
.
p
a
r
s
e
r
=
p
a
r
s
e
r
;
}
/
/
外
部
调
用
此
方
法
对
m
y
b
a
t
i
s
配
置
文
件
进
行
解
析
p
u
b
l
i
c
C
o
n
f
i
g
u
r
a
t
i
o
n
p
a
r
s
e
(
)
{
i
f
(
p
a
r
s
e
d
)
{
t
h
r
o
w
n
e
w
B
u
i
l
d
e
r
E
x
c
e
p
t
i
o
n
(
"
E
a
c
h
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
c
a
n
o
n
l
y
b
e
u
s
e
d
o
n
c
e
.
"
)
;
}
p
a
r
s
e
d
=
t
r
u
e
;
/
/
从
根
节
点
c
o
n
f
i
g
u
r
a
t
i
o
n
p
a
r
s
e
C
o
n
f
i
g
u
r
a
t
i
o
n
(
p
a
r
s
e
r
.
e
v
a
l
N
o
d
e
(
"
/
c
o
n
f
i
g
u
r
a
t
i
o
n
"
)
)
;
r
e
t
u
r
n
c
o
n
f
i
g
u
r
a
t
i
o
n
;
}
/
/
此
方
法
就
是
解
析
c
o
n
f
i
g
u
r
a
t
i
o
n
节
点
下
的
子
节
点
/
/
由
此
也
可
看
出
,
我
们
在
c
o
n
f
i
g
u
r
a
t
i
o
n
下
面
能
配
置
的
节
点
为
以
下
1
0
个
节
点
p
r
i
v
a
t
e
v
o
i
d
p
a
r
s
e
C
o
n
f
i
g
u
r
a
t
i
o
n
(
X
N
o
d
e
r
o
o
t
)
{
t
r
y
{
p
r
o
p
e
r
t
i
e
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
p
r
o
p
e
r
t
i
e
s
"
)
)
;
/
/
i
s
s
u
e
#
1
1
7
r
e
a
d
p
r
o
p
e
r
t
i
e
s
f
i
r
s
t
t
y
p
e
A
l
i
a
s
e
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
t
y
p
e
A
l
i
a
s
e
s
"
)
)
;
p
l
u
g
i
n
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
p
l
u
g
i
n
s
"
)
)
;
o
b
j
e
c
t
F
a
c
t
o
r
y
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
o
b
j
e
c
t
F
a
c
t
o
r
y
"
)
)
;
o
b
j
e
c
t
W
r
a
p
p
e
r
F
a
c
t
o
r
y
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
o
b
j
e
c
t
W
r
a
p
p
e
r
F
a
c
t
o
r
y
"
)
)
;
s
e
t
t
i
n
g
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
s
e
t
t
i
n
g
s
"
)
)
;
e
n
v
i
r
o
n
m
e
n
t
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
e
n
v
i
r
o
n
m
e
n
t
s
"
)
)
;
/
/
r
e
a
d
i
t
a
f
t
e
r
o
b
j
e
c
t
F
a
c
t
o
r
y
a
n
d
o
b
j
e
c
t
W
r
a
p
p
e
r
F
a
c
t
o
r
y
i
s
s
u
e
#
6
3
1
d
a
t
a
b
a
s
e
I
d
P
r
o
v
i
d
e
r
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
d
a
t
a
b
a
s
e
I
d
P
r
o
v
i
d
e
r
"
)
)
;
t
y
p
e
H
a
n
d
l
e
r
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
t
y
p
e
H
a
n
d
l
e
r
s
"
)
)
;
m
a
p
p
e
r
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
m
a
p
p
e
r
s
"
)
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
t
h
r
o
w
n
e
w
B
u
i
l
d
e
r
E
x
c
e
p
t
i
o
n
(
"
E
r
r
o
r
p
a
r
s
i
n
g
S
Q
L
M
a
p
p
e
r
C
o
n
f
i
g
u
r
a
t
i
o
n
.
C
a
u
s
e
:
"
+
e
,
e
)
;
}
}
}
m
y
b
a
t
i
s
是
通
过
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
这
个
类
在
解
析
m
y
b
a
t
i
s
配
置
文
件
的
,
那
么
接
着
看
看
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
对
于
p
r
o
p
e
r
t
i
e
s
和
e
n
v
i
r
o
n
m
e
n
t
s
的
解
析
:
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
:
还
有
一
个
问
题
,
上
面
我
们
看
到
,
在
配
置
d
a
t
a
S
o
u
r
c
e
的
时
候
使
用
了
$
{
d
r
i
v
e
r
}
这
种
表
达
式
,
这
种
形
式
是
怎
么
解
析
的
?
其
实
,
是
通
过
P
r
o
p
e
r
t
y
P
a
r
s
e
r
这
个
类
解
析
:
至
此
,
将
数
据
库
的
配
置
文
件
封
装
成
了
c
o
n
f
i
g
u
r
a
t
i
o
n
对
象
,
以
及
根
据
c
o
n
f
i
g
u
r
a
t
i
o
n
定
制
化
了
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
<
e
n
v
i
r
o
n
m
e
n
t
s
d
e
f
a
u
l
t
=
"
d
e
v
e
l
o
p
m
e
n
t
"
>
<
e
n
v
i
r
o
n
m
e
n
t
i
d
=
"
d
e
v
e
l
o
p
m
e
n
t
"
>
<
t
r
a
n
s
a
c
t
i
o
n
M
a
n
a
g
e
r
t
y
p
e
=
"
J
D
B
C
"
/
>
<
d
a
t
a
S
o
u
r
c
e
t
y
p
e
=
"
P
O
O
L
E
D
"
>
<
!
-
-
如
果
上
面
没
有
指
定
数
据
库
配
置
的
p
r
o
p
e
r
t
i
e
s
文
件
,
那
么
此
处
可
以
这
样
直
接
配
置
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
d
r
i
v
e
r
"
v
a
l
u
e
=
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
r
l
"
v
a
l
u
e
=
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
t
e
s
t
1
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
s
e
r
n
a
m
e
"
v
a
l
u
e
=
"
r
o
o
t
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
p
a
s
s
w
o
r
d
"
v
a
l
u
e
=
"
r
o
o
t
"
/
>
-
-
>
<
!
-
-
上
面
指
定
了
数
据
库
配
置
文
件
,
配
置
文
件
里
面
也
是
对
应
的
这
四
个
属
性
-
-
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
d
r
i
v
e
r
"
v
a
l
u
e
=
"
$
{
d
r
i
v
e
r
}
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
r
l
"
v
a
l
u
e
=
"
$
{
u
r
l
}
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
s
e
r
n
a
m
e
"
v
a
l
u
e
=
"
$
{
u
s
e
r
n
a
m
e
}
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
p
a
s
s
w
o
r
d
"
v
a
l
u
e
=
"
$
{
p
a
s
s
w
o
r
d
}
"
/
>
<
/
d
a
t
a
S
o
u
r
c
e
>
<
/
e
n
v
i
r
o
n
m
e
n
t
>
<
!
-
-
我
再
指
定
一
个
e
n
v
i
r
o
n
m
e
n
t
-
-
>
<
e
n
v
i
r
o
n
m
e
n
t
i
d
=
"
t
e
s
t
"
>
<
t
r
a
n
s
a
c
t
i
o
n
M
a
n
a
g
e
r
t
y
p
e
=
"
J
D
B
C
"
/
>
<
d
a
t
a
S
o
u
r
c
e
t
y
p
e
=
"
P
O
O
L
E
D
"
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
d
r
i
v
e
r
"
v
a
l
u
e
=
"
c
o
m
.
m
y
s
q
l
.
j
d
b
c
.
D
r
i
v
e
r
"
/
>
<
!
-
-
与
上
面
的
u
r
l
不
一
样
-
-
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
r
l
"
v
a
l
u
e
=
"
j
d
b
c
:
m
y
s
q
l
:
/
/
l
o
c
a
l
h
o
s
t
:
3
3
0
6
/
d
e
m
o
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
u
s
e
r
n
a
m
e
"
v
a
l
u
e
=
"
r
o
o
t
"
/
>
<
p
r
o
p
e
r
t
y
n
a
m
e
=
"
p
a
s
s
w
o
r
d
"
v
a
l
u
e
=
"
r
o
o
t
"
/
>
<
/
d
a
t
a
S
o
u
r
c
e
>
<
/
e
n
v
i
r
o
n
m
e
n
t
>
<
/
e
n
v
i
r
o
n
m
e
n
t
s
>
p
u
b
l
i
c
c
l
a
s
s
X
M
L
C
o
n
f
i
g
B
u
i
l
d
e
r
e
x
t
e
n
d
s
B
a
s
e
B
u
i
l
d
e
r
{
p
r
i
v
a
t
e
b
o
o
l
e
a
n
p
a
r
s
e
d
;
/
/
x
m
l
解
析
器
p
r
i
v
a
t
e
X
P
a
t
h
P
a
r
s
e
r
p
a
r
s
e
r
;
p
r
i
v
a
t
e
S
t
r
i
n
g
e
n
v
i
r
o
n
m
e
n
t
;
/
/
上
次
说
到
这
个
方
法
是
在
解
析
m
y
b
a
t
i
s
配
置
文
件
中
能
配
置
的
元
素
节
点
/
/
今
天
首
先
要
看
的
就
是
p
r
o
p
e
r
t
i
e
s
节
点
和
e
n
v
i
r
o
n
m
e
n
t
s
节
点
p
r
i
v
a
t
e
v
o
i
d
p
a
r
s
e
C
o
n
f
i
g
u
r
a
t
i
o
n
(
X
N
o
d
e
r
o
o
t
)
{
t
r
y
{
/
/
解
析
p
r
o
p
e
r
t
i
e
s
元
素
p
r
o
p
e
r
t
i
e
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
p
r
o
p
e
r
t
i
e
s
"
)
)
;
/
/
i
s
s
u
e
#
1
1
7
r
e
a
d
p
r
o
p
e
r
t
i
e
s
f
i
r
s
t
t
y
p
e
A
l
i
a
s
e
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
t
y
p
e
A
l
i
a
s
e
s
"
)
)
;
p
l
u
g
i
n
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
p
l
u
g
i
n
s
"
)
)
;
o
b
j
e
c
t
F
a
c
t
o
r
y
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
o
b
j
e
c
t
F
a
c
t
o
r
y
"
)
)
;
o
b
j
e
c
t
W
r
a
p
p
e
r
F
a
c
t
o
r
y
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
o
b
j
e
c
t
W
r
a
p
p
e
r
F
a
c
t
o
r
y
"
)
)
;
s
e
t
t
i
n
g
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
s
e
t
t
i
n
g
s
"
)
)
;
/
/
解
析
e
n
v
i
r
o
n
m
e
n
t
s
元
素
e
n
v
i
r
o
n
m
e
n
t
s
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
e
n
v
i
r
o
n
m
e
n
t
s
"
)
)
;
/
/
r
e
a
d
i
t
a
f
t
e
r
o
b
j
e
c
t
F
a
c
t
o
r
y
a
n
d
o
b
j
e
c
t
W
r
a
p
p
e
r
F
a
c
t
o
r
y
i
s
s
u
e
#
6
3
1
d
a
t
a
b
a
s
e
I
d
P
r
o
v
i
d
e
r
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
d
a
t
a
b
a
s
e
I
d
P
r
o
v
i
d
e
r
"
)
)
;
t
y
p
e
H
a
n
d
l
e
r
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
t
y
p
e
H
a
n
d
l
e
r
s
"
)
)
;
m
a
p
p
e
r
E
l
e
m
e
n
t
(
r
o
o
t
.
e
v
a
l
N
o
d
e
(
"
m
a
p
p
e
r
s
"
)
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
t
h
r
o
w
n
e
w
B
u
i
l
d
e
r
E
x
c
e
p
t
i
o
n
(
"
E
r
r
o
r
p
a
r
s
i
n
g
S
Q
L
M
a
p
p
e
r
C
o
n
f
i
g
u
r
a
t
i
o
n
.
C
a
u
s
e
:
"
+
e
,
e
)
;
}
}
/
/
下
面
就
看
看
解
析
p
r
o
p
e
r
t
i
e
s
的
具
体
方
法
p
r
i
v
a
t
e
v
o
i
d
p
r
o
p
e
r
t
i
e
s
E
l
e
m
e
n
t
(
X
N
o
d
e
c
o
n
t
e
x
t
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
i
f
(
c
o
n
t
e
x
t
!
=
n
u
l
l
)
{
/
/
将
子
节
点
的
n
a
m
e
以
及
v
a
l
u
e
属
性
s
e
t
进
p
r
o
p
e
r
t
i
e
s
对
象
/
/
这
儿
可
以
注
意
一
下
顺
序
,
x
m
l
配
置
优
先
,
外
部
指
定
p
r
o
p
e
r
t
i
e
s
配
置
其
次
P
r
o
p
e
r
t
i
e
s
d
e
f
a
u
l
t
s
=
c
o
n
t
e
x
t
.
g
e
t
C
h
i
l
d
r
e
n
A
s
P
r
o
p
e
r
t
i
e
s
(
)
;
/
/
获
取
p
r
o
p
e
r
t
i
e
s
节
点
上
r
e
s
o
u
r
c
e
属
性
的
值
S
t
r
i
n
g
r
e
s
o
u
r
c
e
=
c
o
n
t
e
x
t
.
g
e
t
S
t
r
i
n
g
A
t
t
r
i
b
u
t
e
(
"
r
e
s
o
u
r
c
e
"
)
;
/
/
获
取
p
r
o
p
e
r
t
i
e
s
节
点
上
u
r
l
属
性
的
值
,
r
e
s
o
u
r
c
e
和
u
r
l
不
能
同
时
配
置
S
t
r
i
n
g
u
r
l
=
c
o
n
t
e
x
t
.
g
e
t
S
t
r
i
n
g
A
t
t
r
i
b
u
t
e
(
"
u
r
l
"
)
;
i
f
(
r
e
s
o
u
r
c
e
!
=
n
u
l
l
&
&
u
r
l
!
=
n
u
l
l
)
{
t
h
r
o
w
n
e
w
B
u
i
l
d
e
r
E
x
c
e
p
t
i
o
n
(
"
T
h
e
p
r
o
p
e
r
t
i
e
s
e
l
e
m
e
n
t
c
a
n
n
o
t
s
p
e
c
i
f
y
b
o
t
h
a
U
R
L
a
n
d
a
r
e
s
o
u
r
c
e
b
a
s
e
d
p
r
o
p
e
r
t
y
f
i
l
e
r
e
f
e
r
e
n
c
e
.
P
l
e
a
s
e
s
p
e
c
i
f
y
o
n
e
o
r
t
h
e
o
t
h
e
r
.
"
)
;
}
/
/
把
解
析
出
的
p
r
o
p
e
r
t
i
e
s
文
件
s
e
t
进
P
r
o
p
e
r
t
i
e
s
对
象
/
*
*
*
这
个
类
解
析
$
{
}
这
种
形
式
的
表
达
式
*
/
p
u
b
l
i
c
c
l
a
s
s
P
r
o
p
e
r
t
y
P
a
r
s
e
r
{
p
u
b
l
i
c
s
t
a
t
i
c
S
t
r
i
n
g
p
a
r
s
e
(
S
t
r
i
n
g
s
t
r
i
n
g
,
P
r
o
p
e
r
t
i
e
s
v
a
r
i
a
b
l
e
s
)
{
V
a
r
i
a
b
l
e
T
o
k
e
n
H
a
n
d
l
e
r
h
a
n
d
l
e
r
=
n
e
w
V
a
r
i
a
b
l
e
T
o
k
e
n
H
a
n
d
l
e
r
(
v
a
r
i
a
b
l
e
s
)
;
G
e
n
e
r
i
c
T
o
k
e
n
P
a
r
s
e
r
p
a
r
s
e
r
=
n
e
w
G
e
n
e
r
i
c
T
o
k
e
n
P
a
r
s
e
r
(
"
$
{
"
,
"
}
"
,
h
a
n
d
l
e
r
)
;
r
e
t
u
r
n
p
a
r
s
e
r
.
p
a
r
s
e
(
s
t
r
i
n
g
)
;
}
p
r
i
v
a
t
e
s
t
a
t
i
c
c
l
a
s
s
V
a
r
i
a
b
l
e
T
o
k
e
n
H
a
n
d
l
e
r
i
m
p
l
e
m
e
n
t
s
T
o
k
e
n
H
a
n
d
l
e
r
{
p
r
i
v
a
t
e
P
r
o
p
e
r
t
i
e
s
v
a
r
i
a
b
l
e
s
;
p
u
b
l
i
c
V
a
r
i
a
b
l
e
T
o
k
e
n
H
a
n
d
l
e
r
(
P
r
o
p
e
r
t
i
e
s
v
a
r
i
a
b
l
e
s
)
{
t
h
i
s
.
v
a
r
i
a
b
l
e
s
=
v
a
r
i
a
b
l
e
s
;
}
p
u
b
l
i
c
S
t
r
i
n
g
h
a
n
d
l
e
T
o
k
e
n
(
S
t
r
i
n
g
c
o
n
t
e
n
t
)
{
i
f
(
v
a
r
i
a
b
l
e
s
!
=
n
u
l
l
&
&
v
a
r
i
a
b
l
e
s
.
c
o
n
t
a
i
n
s
K
e
y
(
c
o
n
t
e
n
t
)
)
{
r
e
t
u
r
n
v
a
r
i
a
b
l
e
s
.
g
e
t
P
r
o
p
e
r
t
y
(
c
o
n
t
e
n
t
)
;
}
r
e
t
u
r
n
"
$
{
"
+
c
o
n
t
e
n
t
+
"
}
"
;
}
}
N
o
.
5
N
o
.
5
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
获
取
获
取
S
q
l
S
e
s
s
i
o
n
回
顾
一
下
之
前
的
流
程
当
我
们
获
取
到
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
之
后
,
就
可
以
通
过
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
去
获
取
S
q
l
S
e
s
s
i
o
n
对
象
。
源
码
如
下
:
再
回
想
一
下
之
前
写
的
D
e
m
o
/
*
*
*
通
常
一
系
列
o
p
e
n
S
e
s
s
i
o
n
方
法
最
终
都
会
调
用
本
方
法
*
@
p
a
r
a
m
e
x
e
c
T
y
p
e
*
@
p
a
r
a
m
l
e
v
e
l
*
@
p
a
r
a
m
a
u
t
o
C
o
m
m
i
t
*
@
r
e
t
u
r
n
*
/
p
r
i
v
a
t
e
S
q
l
S
e
s
s
i
o
n
o
p
e
n
S
e
s
s
i
o
n
F
r
o
m
D
a
t
a
S
o
u
r
c
e
(
E
x
e
c
u
t
o
r
T
y
p
e
e
x
e
c
T
y
p
e
,
T
r
a
n
s
a
c
t
i
o
n
I
s
o
l
a
t
i
o
n
L
e
v
e
l
l
e
v
e
l
,
b
o
o
l
e
a
n
a
u
t
o
C
o
m
m
i
t
)
{
T
r
a
n
s
a
c
t
i
o
n
t
x
=
n
u
l
l
;
t
r
y
{
/
/
通
过
C
o
n
f
u
g
u
r
a
t
i
o
n
对
象
去
获
取
M
y
b
a
t
i
s
相
关
配
置
信
息
,
E
n
v
i
r
o
n
m
e
n
t
对
象
包
含
了
数
据
源
和
事
务
的
配
置
f
i
n
a
l
E
n
v
i
r
o
n
m
e
n
t
e
n
v
i
r
o
n
m
e
n
t
=
c
o
n
f
i
g
u
r
a
t
i
o
n
.
g
e
t
E
n
v
i
r
o
n
m
e
n
t
(
)
;
f
i
n
a
l
T
r
a
n
s
a
c
t
i
o
n
F
a
c
t
o
r
y
t
r
a
n
s
a
c
t
i
o
n
F
a
c
t
o
r
y
=
g
e
t
T
r
a
n
s
a
c
t
i
o
n
F
a
c
t
o
r
y
F
r
o
m
E
n
v
i
r
o
n
m
e
n
t
(
e
n
v
i
r
o
n
m
e
n
t
)
;
t
x
=
t
r
a
n
s
a
c
t
i
o
n
F
a
c
t
o
r
y
.
n
e
w
T
r
a
n
s
a
c
t
i
o
n
(
e
n
v
i
r
o
n
m
e
n
t
.
g
e
t
D
a
t
a
S
o
u
r
c
e
(
)
,
l
e
v
e
l
,
a
u
t
o
C
o
m
m
i
t
)
;
/
/
之
前
说
了
,
从
表
面
上
来
看
,
咱
们
是
用
s
q
l
S
e
s
s
i
o
n
在
执
行
s
q
l
语
句
,
实
际
呢
,
其
实
是
通
过
e
x
c
u
t
o
r
执
行
,
e
x
c
u
t
o
r
是
对
于
S
t
a
t
e
m
e
n
t
的
封
装
f
i
n
a
l
E
x
e
c
u
t
o
r
e
x
e
c
u
t
o
r
=
c
o
n
f
i
g
u
r
a
t
i
o
n
.
n
e
w
E
x
e
c
u
t
o
r
(
t
x
,
e
x
e
c
T
y
p
e
)
;
/
/
关
键
看
这
儿
,
创
建
了
一
个
D
e
f
a
u
l
t
S
q
l
S
e
s
s
i
o
n
对
象
r
e
t
u
r
n
n
e
w
D
e
f
a
u
l
t
S
q
l
S
e
s
s
i
o
n
(
c
o
n
f
i
g
u
r
a
t
i
o
n
,
e
x
e
c
u
t
o
r
,
a
u
t
o
C
o
m
m
i
t
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
c
l
o
s
e
T
r
a
n
s
a
c
t
i
o
n
(
t
x
)
;
/
/
m
a
y
h
a
v
e
f
e
t
c
h
e
d
a
c
o
n
n
e
c
t
i
o
n
s
o
l
e
t
s
c
a
l
l
c
l
o
s
e
(
)
t
h
r
o
w
E
x
c
e
p
t
i
o
n
F
a
c
t
o
r
y
.
w
r
a
p
E
x
c
e
p
t
i
o
n
(
"
E
r
r
o
r
o
p
e
n
i
n
g
s
e
s
s
i
o
n
.
C
a
u
s
e
:
"
+
e
,
e
)
;
}
f
i
n
a
l
l
y
{
E
r
r
o
r
C
o
n
t
e
x
t
.
i
n
s
t
a
n
c
e
(
)
.
r
e
s
e
t
(
)
;
}
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
s
e
s
s
i
o
n
F
a
c
t
o
r
y
=
n
u
l
l
;
S
t
r
i
n
g
r
e
s
o
u
r
c
e
=
"
m
y
b
a
t
i
s
-
c
o
n
f
.
x
m
l
"
;
t
r
y
{
/
/
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
读
取
配
置
文
件
s
e
s
s
i
o
n
F
a
c
t
o
r
y
=
n
e
w
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
B
u
i
l
d
e
r
(
)
.
b
u
i
l
d
(
R
e
s
o
u
r
c
e
s
.
g
e
t
R
e
s
o
u
r
c
e
A
s
R
e
a
d
e
r
(
r
e
s
o
u
r
c
e
)
)
;
}
c
a
t
c
h
(
I
O
E
x
c
e
p
t
i
o
n
e
)
{
e
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
}
/
/
通
过
S
q
l
S
e
s
s
i
o
n
F
a
c
t
o
r
y
获
取
S
q
l
S
e
s
s
i
o
n
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
=
s
e
s
s
i
o
n
F
a
c
t
o
r
y
.
o
p
e
n
S
e
s
s
i
o
n
(
)
;
还
真
这
么
一
回
事
儿
,
对
吧
!
S
q
l
S
e
s
s
i
o
n
咱
们
也
拿
到
了
,
咱
们
可
以
调
用
S
q
l
S
e
s
s
i
o
n
中
一
系
列
的
s
e
l
e
c
t
…
,
i
n
s
e
r
t
…
,
u
p
d
a
t
e
…
,
d
e
l
e
t
e
…
方
法
轻
松
自
如
的
进
行
C
R
U
D
操
作
了
。
N
o
.
6
N
o
.
6
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
获
取
获
取
M
a
p
p
e
r
先
放
流
程
图
:
有
了
S
q
l
S
e
s
s
i
o
n
,
就
可
以
调
用
S
q
l
S
e
s
s
i
o
n
.
g
e
t
M
a
p
p
e
r
(
D
A
O
.
C
l
a
s
s
)
得
到
具
体
的
d
a
o
,
因
为
上
面
说
了
S
q
l
S
e
s
s
i
o
n
本
质
是
D
e
f
a
u
l
t
S
q
l
S
e
s
s
i
o
n
,
所
以
先
看
D
e
f
a
u
l
t
S
q
l
S
e
s
s
i
o
n
.
g
e
t
M
a
p
p
e
r
方
法
/
*
*
*
什
么
都
不
做
,
直
接
去
c
o
n
f
i
g
u
r
a
t
i
o
n
中
找
*
/
@
O
v
e
r
r
i
d
e
p
u
b
l
i
c
<
T
>
T
g
e
t
M
a
p
p
e
r
(
C
l
a
s
s
<
T
>
t
y
p
e
)
{
r
e
t
u
r
n
c
o
n
f
i
g
u
r
a
t
i
o
n
.
<
T
>
g
e
t
M
a
p
p
e
r
(
t
y
p
e
,
t
h
i
s
)
;
}
再
来
看
C
o
n
f
i
g
u
r
a
t
i
o
n
.
g
e
t
M
a
p
p
e
r
方
法
p
r
o
t
e
c
t
e
d
f
i
n
a
l
M
a
p
p
e
r
R
e
g
i
s
t
r
y
m
a
p
p
e
r
R
e
g
i
s
t
r
y
=
n
e
w
M
a
p
p
e
r
R
e
g
i
s
t
r
y
(
t
h
i
s
)
;
/
*
*
*
交
给
了
m
a
p
p
e
r
R
e
g
i
s
t
r
y
*
@
p
a
r
a
m
t
y
p
e
*
@
p
a
r
a
m
s
q
l
S
e
s
s
i
o
n
*
@
r
e
t
u
r
n
*
/
p
u
b
l
i
c
<
T
>
T
g
e
t
M
a
p
p
e
r
(
C
l
a
s
s
<
T
>
t
y
p
e
,
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
)
{
r
e
t
u
r
n
m
a
p
p
e
r
R
e
g
i
s
t
r
y
.
g
e
t
M
a
p
p
e
r
(
t
y
p
e
,
s
q
l
S
e
s
s
i
o
n
)
;
}
来
看
M
a
p
p
e
r
R
e
g
i
s
t
r
y
实
现
最
终
由
m
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
.
n
e
w
I
n
s
t
a
n
c
e
(
s
q
l
S
e
s
s
i
o
n
)
创
建
实
例
,
来
看
源
码
:
/
*
*
*
创
建
实
例
*
@
p
a
r
a
m
m
a
p
p
e
r
P
r
o
x
y
*
@
r
e
t
u
r
n
*
/
@
S
u
p
p
r
e
s
s
W
a
r
n
i
n
g
s
(
"
u
n
c
h
e
c
k
e
d
"
)
p
r
o
t
e
c
t
e
d
T
n
e
w
I
n
s
t
a
n
c
e
(
M
a
p
p
e
r
P
r
o
x
y
<
T
>
m
a
p
p
e
r
P
r
o
x
y
)
{
/
/
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
,
说
明
M
a
p
p
e
r
接
口
被
代
理
了
,
这
样
子
返
回
的
对
象
就
是
M
a
p
p
e
r
接
口
的
子
类
,
方
法
被
调
用
时
会
被
m
a
p
p
e
r
P
r
o
x
y
拦
截
,
也
就
是
执
行
m
a
p
p
e
r
P
r
o
x
y
.
i
n
v
o
k
e
(
)
方
法
r
e
t
u
r
n
(
T
)
P
r
o
x
y
.
n
e
w
P
r
o
x
y
I
n
s
t
a
n
c
e
(
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
.
g
e
t
C
l
a
s
s
L
o
a
d
e
r
(
)
,
n
e
w
C
l
a
s
s
[
]
{
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
}
,
m
a
p
p
e
r
P
r
o
x
y
)
;
}
p
u
b
l
i
c
T
n
e
w
I
n
s
t
a
n
c
e
(
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
)
{
f
i
n
a
l
M
a
p
p
e
r
P
r
o
x
y
<
T
>
m
a
p
p
e
r
P
r
o
x
y
=
n
e
w
M
a
p
p
e
r
P
r
o
x
y
<
T
>
(
s
q
l
S
e
s
s
i
o
n
,
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
,
m
e
t
h
o
d
C
a
c
h
e
)
;
r
e
t
u
r
n
n
e
w
I
n
s
t
a
n
c
e
(
m
a
p
p
e
r
P
r
o
x
y
)
;
}
这
里
就
是
返
回
的
一
个
代
理
类
实
例
M
a
p
p
e
r
P
r
o
x
y
。
/
/
一
个
c
l
a
s
s
类
对
应
一
个
动
态
代
理
工
厂
p
r
i
v
a
t
e
f
i
n
a
l
M
a
p
<
C
l
a
s
s
<
?
>
,
M
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
<
?
>
>
k
n
o
w
n
M
a
p
p
e
r
s
=
n
e
w
H
a
s
h
M
a
p
<
C
l
a
s
s
<
?
>
,
M
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
<
?
>
>
(
)
;
/
*
*
*
实
现
g
e
t
M
a
p
p
e
r
*
@
p
a
r
a
m
t
y
p
e
*
@
p
a
r
a
m
s
q
l
S
e
s
s
i
o
n
*
@
r
e
t
u
r
n
*
/
@
S
u
p
p
r
e
s
s
W
a
r
n
i
n
g
s
(
"
u
n
c
h
e
c
k
e
d
"
)
p
u
b
l
i
c
<
T
>
T
g
e
t
M
a
p
p
e
r
(
C
l
a
s
s
<
T
>
t
y
p
e
,
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
)
{
/
/
交
给
M
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
去
做
f
i
n
a
l
M
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
<
T
>
m
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
=
(
M
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
<
T
>
)
k
n
o
w
n
M
a
p
p
e
r
s
.
g
e
t
(
t
y
p
e
)
;
i
f
(
m
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
=
=
n
u
l
l
)
{
t
h
r
o
w
n
e
w
B
i
n
d
i
n
g
E
x
c
e
p
t
i
o
n
(
"
T
y
p
e
"
+
t
y
p
e
+
"
i
s
n
o
t
k
n
o
w
n
t
o
t
h
e
M
a
p
p
e
r
R
e
g
i
s
t
r
y
.
"
)
;
}
t
r
y
{
/
/
关
键
在
这
儿
r
e
t
u
r
n
m
a
p
p
e
r
P
r
o
x
y
F
a
c
t
o
r
y
.
n
e
w
I
n
s
t
a
n
c
e
(
s
q
l
S
e
s
s
i
o
n
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
t
h
r
o
w
n
e
w
B
i
n
d
i
n
g
E
x
c
e
p
t
i
o
n
(
"
E
r
r
o
r
g
e
t
t
i
n
g
m
a
p
p
e
r
i
n
s
t
a
n
c
e
.
C
a
u
s
e
:
"
+
e
,
e
)
;
}
}
在
这
里
可
以
看
到
m
a
p
p
e
r
实
例
是
根
据
动
态
代
理
创
建
的
,
当
调
用
m
a
p
p
e
r
的
方
法
时
,
实
际
上
是
交
由
m
a
p
p
e
r
M
e
t
h
o
d
.
e
x
e
c
u
t
e
来
执
行
。
N
o
.
7
N
o
.
7
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
E
x
c
u
t
o
r
执
行
执
行
s
q
l
语
句
语
句
接
下
来
,
咱
们
才
要
真
正
去
看
s
q
l
的
执
行
过
程
了
。
先
放
流
程
图
:
上
一
步
已
经
知
道
,
当
调
用
m
a
p
p
e
r
的
方
法
时
,
实
际
上
是
交
由
m
a
p
p
e
r
M
e
t
h
o
d
.
e
x
e
c
u
t
e
(
s
q
l
S
e
s
s
i
o
n
,
a
r
g
s
)
来
执
行
。
来
看
源
码
:
p
a
c
k
a
g
e
o
r
g
.
a
p
a
c
h
e
.
i
b
a
t
i
s
.
b
i
n
d
i
n
g
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
S
e
r
i
a
l
i
z
a
b
l
e
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
;
i
m
p
o
r
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
M
e
t
h
o
d
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
M
a
p
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
i
b
a
t
i
s
.
r
e
f
l
e
c
t
i
o
n
.
E
x
c
e
p
t
i
o
n
U
t
i
l
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
i
b
a
t
i
s
.
s
e
s
s
i
o
n
.
S
q
l
S
e
s
s
i
o
n
;
/
*
*
*
@
a
u
t
h
o
r
C
l
i
n
t
o
n
B
e
g
i
n
*
@
a
u
t
h
o
r
E
d
u
a
r
d
o
M
a
c
a
r
r
o
n
*
/
p
u
b
l
i
c
c
l
a
s
s
M
a
p
p
e
r
P
r
o
x
y
<
T
>
i
m
p
l
e
m
e
n
t
s
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
,
S
e
r
i
a
l
i
z
a
b
l
e
{
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
l
o
n
g
s
e
r
i
a
l
V
e
r
s
i
o
n
U
I
D
=
-
6
4
2
4
5
4
0
3
9
8
5
5
9
7
2
9
8
3
8
L
;
p
r
i
v
a
t
e
f
i
n
a
l
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
;
/
/
M
a
p
p
e
r
接
口
p
r
i
v
a
t
e
f
i
n
a
l
C
l
a
s
s
<
T
>
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
;
/
*
*
M
a
p
p
e
r
接
口
中
的
每
个
方
法
都
会
生
成
一
个
M
a
p
p
e
r
M
e
t
h
o
d
对
象
,
m
e
t
h
o
d
C
a
c
h
e
维
护
着
他
们
的
对
应
关
系
*
/
p
r
i
v
a
t
e
f
i
n
a
l
M
a
p
<
M
e
t
h
o
d
,
M
a
p
p
e
r
M
e
t
h
o
d
>
m
e
t
h
o
d
C
a
c
h
e
;
p
u
b
l
i
c
M
a
p
p
e
r
P
r
o
x
y
(
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
,
C
l
a
s
s
<
T
>
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
,
M
a
p
<
M
e
t
h
o
d
,
M
a
p
p
e
r
M
e
t
h
o
d
>
m
e
t
h
o
d
C
a
c
h
e
)
{
t
h
i
s
.
s
q
l
S
e
s
s
i
o
n
=
s
q
l
S
e
s
s
i
o
n
;
t
h
i
s
.
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
=
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
;
t
h
i
s
.
m
e
t
h
o
d
C
a
c
h
e
=
m
e
t
h
o
d
C
a
c
h
e
;
}
/
/
这
里
会
拦
截
M
a
p
p
e
r
接
口
的
所
有
方
法
p
u
b
l
i
c
O
b
j
e
c
t
i
n
v
o
k
e
(
O
b
j
e
c
t
p
r
o
x
y
,
M
e
t
h
o
d
m
e
t
h
o
d
,
O
b
j
e
c
t
[
]
a
r
g
s
)
t
h
r
o
w
s
T
h
r
o
w
a
b
l
e
{
i
f
(
O
b
j
e
c
t
.
c
l
a
s
s
.
e
q
u
a
l
s
(
m
e
t
h
o
d
.
g
e
t
D
e
c
l
a
r
i
n
g
C
l
a
s
s
(
)
)
)
{
/
/
如
果
是
O
b
j
e
c
t
中
定
义
的
方
法
,
直
接
执
行
。
如
t
o
S
t
r
i
n
g
(
)
,
h
a
s
h
C
o
d
e
(
)
等
t
r
y
{
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
t
h
i
s
,
a
r
g
s
)
;
/
/
}
c
a
t
c
h
(
T
h
r
o
w
a
b
l
e
t
)
{
t
h
r
o
w
E
x
c
e
p
t
i
o
n
U
t
i
l
.
u
n
w
r
a
p
T
h
r
o
w
a
b
l
e
(
t
)
;
}
}
f
i
n
a
l
M
a
p
p
e
r
M
e
t
h
o
d
m
a
p
p
e
r
M
e
t
h
o
d
=
c
a
c
h
e
d
M
a
p
p
e
r
M
e
t
h
o
d
(
m
e
t
h
o
d
)
;
/
/
其
他
M
a
p
p
e
r
接
口
定
义
的
方
法
交
由
m
a
p
p
e
r
M
e
t
h
o
d
来
执
行
r
e
t
u
r
n
m
a
p
p
e
r
M
e
t
h
o
d
.
e
x
e
c
u
t
e
(
s
q
l
S
e
s
s
i
o
n
,
a
r
g
s
)
;
}
p
r
i
v
a
t
e
M
a
p
p
e
r
M
e
t
h
o
d
c
a
c
h
e
d
M
a
p
p
e
r
M
e
t
h
o
d
(
M
e
t
h
o
d
m
e
t
h
o
d
)
{
M
a
p
p
e
r
M
e
t
h
o
d
m
a
p
p
e
r
M
e
t
h
o
d
=
m
e
t
h
o
d
C
a
c
h
e
.
g
e
t
(
m
e
t
h
o
d
)
;
i
f
(
m
a
p
p
e
r
M
e
t
h
o
d
=
=
n
u
l
l
)
{
m
a
p
p
e
r
M
e
t
h
o
d
=
n
e
w
M
a
p
p
e
r
M
e
t
h
o
d
(
m
a
p
p
e
r
I
n
t
e
r
f
a
c
e
,
m
e
t
h
o
d
,
s
q
l
S
e
s
s
i
o
n
.
g
e
t
C
o
n
f
i
g
u
r
a
t
i
o
n
(
)
)
;
m
e
t
h
o
d
C
a
c
h
e
.
p
u
t
(
m
e
t
h
o
d
,
m
a
p
p
e
r
M
e
t
h
o
d
)
;
}
r
e
t
u
r
n
m
a
p
p
e
r
M
e
t
h
o
d
;
}
}
既
然
又
回
到
S
q
l
S
e
s
s
i
o
n
了
,
那
么
咱
们
就
看
看
S
q
l
S
e
s
s
i
o
n
的
C
R
U
D
方
法
了
,
为
了
省
事
,
还
是
就
选
择
其
中
的
一
个
方
法
来
做
分
析
吧
。
这
儿
,
咱
们
选
择
了
s
e
l
e
c
t
L
i
s
t
方
法
:
@
O
v
e
r
r
i
d
e
p
u
b
l
i
c
<
E
>
L
i
s
t
<
E
>
s
e
l
e
c
t
L
i
s
t
(
S
t
r
i
n
g
s
t
a
t
e
m
e
n
t
,
O
b
j
e
c
t
p
a
r
a
m
e
t
e
r
,
R
o
w
B
o
u
n
d
s
r
o
w
B
o
u
n
d
s
)
{
t
r
y
{
M
a
p
p
e
d
S
t
a
t
e
m
e
n
t
m
s
=
c
o
n
f
i
g
u
r
a
t
i
o
n
.
g
e
t
M
a
p
p
e
d
S
t
a
t
e
m
e
n
t
(
s
t
a
t
e
m
e
n
t
)
;
/
/
C
R
U
D
实
际
上
是
交
给
E
x
c
e
t
o
r
去
处
理
r
e
t
u
r
n
e
x
e
c
u
t
o
r
.
q
u
e
r
y
(
m
s
,
w
r
a
p
C
o
l
l
e
c
t
i
o
n
(
p
a
r
a
m
e
t
e
r
)
,
r
o
w
B
o
u
n
d
s
,
E
x
e
c
u
t
o
r
.
N
O
_
R
E
S
U
L
T
_
H
A
N
D
L
E
R
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
t
h
r
o
w
E
x
c
e
p
t
i
o
n
F
a
c
t
o
r
y
.
w
r
a
p
E
x
c
e
p
t
i
o
n
(
"
E
r
r
o
r
q
u
e
r
y
i
n
g
d
a
t
a
b
a
s
e
.
C
a
u
s
e
:
"
+
e
,
e
)
;
}
f
i
n
a
l
l
y
{
E
r
r
o
r
C
o
n
t
e
x
t
.
i
n
s
t
a
n
c
e
(
)
.
r
e
s
e
t
(
)
;
}
}
通
过
一
层
一
层
的
调
用
,
最
终
会
来
到
d
o
Q
u
e
r
y
方
法
,
看
看
d
o
Q
u
e
r
y
方
法
的
实
现
吧
,
我
这
儿
选
择
了
S
i
m
p
l
e
E
x
e
c
u
t
o
r
:
接
下
来
,
咱
们
看
看
S
t
a
t
e
m
e
n
t
H
a
n
d
l
e
r
的
一
个
实
现
类
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
H
a
n
d
l
e
r
(
这
也
是
我
们
最
常
用
的
,
封
装
的
是
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
)
,
看
看
它
使
怎
么
去
处
理
的
:
/
*
*
*
看
着
代
码
不
少
,
不
过
其
实
就
是
先
判
断
C
R
U
D
类
型
,
然
后
根
据
类
型
去
选
择
到
底
执
行
s
q
l
S
e
s
s
i
o
n
中
的
哪
个
方
法
,
绕
了
一
圈
,
又
转
回
s
q
l
S
e
s
s
i
o
n
了
*
@
p
a
r
a
m
s
q
l
S
e
s
s
i
o
n
*
@
p
a
r
a
m
a
r
g
s
*
@
r
e
t
u
r
n
*
/
p
u
b
l
i
c
O
b
j
e
c
t
e
x
e
c
u
t
e
(
S
q
l
S
e
s
s
i
o
n
s
q
l
S
e
s
s
i
o
n
,
O
b
j
e
c
t
[
]
a
r
g
s
)
{
O
b
j
e
c
t
r
e
s
u
l
t
;
i
f
(
S
q
l
C
o
m
m
a
n
d
T
y
p
e
.
I
N
S
E
R
T
=
=
c
o
m
m
a
n
d
.
g
e
t
T
y
p
e
(
)
)
{
O
b
j
e
c
t
p
a
r
a
m
=
m
e
t
h
o
d
.
c
o
n
v
e
r
t
A
r
g
s
T
o
S
q
l
C
o
m
m
a
n
d
P
a
r
a
m
(
a
r
g
s
)
;
r
e
s
u
l
t
=
r
o
w
C
o
u
n
t
R
e
s
u
l
t
(
s
q
l
S
e
s
s
i
o
n
.
i
n
s
e
r
t
(
c
o
m
m
a
n
d
.
g
e
t
N
a
m
e
(
)
,
p
a
r
a
m
)
)
;
}
e
l
s
e
i
f
(
S
q
l
C
o
m
m
a
n
d
T
y
p
e
.
U
P
D
A
T
E
=
=
c
o
m
m
a
n
d
.
g
e
t
T
y
p
e
(
)
)
{
O
b
j
e
c
t
p
a
r
a
m
=
m
e
t
h
o
d
.
c
o
n
v
e
r
t
A
r
g
s
T
o
S
q
l
C
o
m
m
a
n
d
P
a
r
a
m
(
a
r
g
s
)
;
r
e
s
u
l
t
=
r
o
w
C
o
u
n
t
R
e
s
u
l
t
(
s
q
l
S
e
s
s
i
o
n
.
u
p
d
a
t
e
(
c
o
m
m
a
n
d
.
g
e
t
N
a
m
e
(
)
,
p
a
r
a
m
)
)
;
}
e
l
s
e
i
f
(
S
q
l
C
o
m
m
a
n
d
T
y
p
e
.
D
E
L
E
T
E
=
=
c
o
m
m
a
n
d
.
g
e
t
T
y
p
e
(
)
)
{
O
b
j
e
c
t
p
a
r
a
m
=
m
e
t
h
o
d
.
c
o
n
v
e
r
t
A
r
g
s
T
o
S
q
l
C
o
m
m
a
n
d
P
a
r
a
m
(
a
r
g
s
)
;
r
e
s
u
l
t
=
r
o
w
C
o
u
n
t
R
e
s
u
l
t
(
s
q
l
S
e
s
s
i
o
n
.
d
e
l
e
t
e
(
c
o
m
m
a
n
d
.
g
e
t
N
a
m
e
(
)
,
p
a
r
a
m
)
)
;
}
e
l
s
e
i
f
(
S
q
l
C
o
m
m
a
n
d
T
y
p
e
.
S
E
L
E
C
T
=
=
c
o
m
m
a
n
d
.
g
e
t
T
y
p
e
(
)
)
{
i
f
(
m
e
t
h
o
d
.
r
e
t
u
r
n
s
V
o
i
d
(
)
&
&
m
e
t
h
o
d
.
h
a
s
R
e
s
u
l
t
H
a
n
d
l
e
r
(
)
)
{
e
x
e
c
u
t
e
W
i
t
h
R
e
s
u
l
t
H
a
n
d
l
e
r
(
s
q
l
S
e
s
s
i
o
n
,
a
r
g
s
)
;
r
e
s
u
l
t
=
n
u
l
l
;
}
e
l
s
e
i
f
(
m
e
t
h
o
d
.
r
e
t
u
r
n
s
M
a
n
y
(
)
)
{
r
e
s
u
l
t
=
e
x
e
c
u
t
e
F
o
r
M
a
n
y
(
s
q
l
S
e
s
s
i
o
n
,
a
r
g
s
)
;
}
e
l
s
e
i
f
(
m
e
t
h
o
d
.
r
e
t
u
r
n
s
M
a
p
(
)
)
{
r
e
s
u
l
t
=
e
x
e
c
u
t
e
F
o
r
M
a
p
(
s
q
l
S
e
s
s
i
o
n
,
a
r
g
s
)
;
}
e
l
s
e
{
O
b
j
e
c
t
p
a
r
a
m
=
m
e
t
h
o
d
.
c
o
n
v
e
r
t
A
r
g
s
T
o
S
q
l
C
o
m
m
a
n
d
P
a
r
a
m
(
a
r
g
s
)
;
r
e
s
u
l
t
=
s
q
l
S
e
s
s
i
o
n
.
s
e
l
e
c
t
O
n
e
(
c
o
m
m
a
n
d
.
g
e
t
N
a
m
e
(
)
,
p
a
r
a
m
)
;
}
}
e
l
s
e
{
t
h
r
o
w
n
e
w
B
i
n
d
i
n
g
E
x
c
e
p
t
i
o
n
(
"
U
n
k
n
o
w
n
e
x
e
c
u
t
i
o
n
m
e
t
h
o
d
f
o
r
:
"
+
c
o
m
m
a
n
d
.
g
e
t
N
a
m
e
(
)
)
;
}
i
f
(
r
e
s
u
l
t
=
=
n
u
l
l
&
&
m
e
t
h
o
d
.
g
e
t
R
e
t
u
r
n
T
y
p
e
(
)
.
i
s
P
r
i
m
i
t
i
v
e
(
)
&
&
!
m
e
t
h
o
d
.
r
e
t
u
r
n
s
V
o
i
d
(
)
)
{
t
h
r
o
w
n
e
w
B
i
n
d
i
n
g
E
x
c
e
p
t
i
o
n
(
"
M
a
p
p
e
r
m
e
t
h
o
d
'
"
+
c
o
m
m
a
n
d
.
g
e
t
N
a
m
e
(
)
+
"
a
t
t
e
m
p
t
e
d
t
o
r
e
t
u
r
n
n
u
l
l
f
r
o
m
a
m
e
t
h
o
d
w
i
t
h
a
p
r
i
m
i
t
i
v
e
r
e
t
u
r
n
t
y
p
e
(
"
+
m
e
t
h
o
d
.
g
e
t
R
e
t
u
r
n
T
y
p
e
(
)
+
"
)
.
"
)
;
}
r
e
t
u
r
n
r
e
s
u
l
t
;
}
@
O
v
e
r
r
i
d
e
p
u
b
l
i
c
<
E
>
L
i
s
t
<
E
>
d
o
Q
u
e
r
y
(
M
a
p
p
e
d
S
t
a
t
e
m
e
n
t
m
s
,
O
b
j
e
c
t
p
a
r
a
m
e
t
e
r
,
R
o
w
B
o
u
n
d
s
r
o
w
B
o
u
n
d
s
,
R
e
s
u
l
t
H
a
n
d
l
e
r
r
e
s
u
l
t
H
a
n
d
l
e
r
,
B
o
u
n
d
S
q
l
b
o
u
n
d
S
q
l
)
t
h
r
o
w
s
S
Q
L
E
x
c
e
p
t
i
o
n
{
S
t
a
t
e
m
e
n
t
s
t
m
t
=
n
u
l
l
;
t
r
y
{
C
o
n
f
i
g
u
r
a
t
i
o
n
c
o
n
f
i
g
u
r
a
t
i
o
n
=
m
s
.
g
e
t
C
o
n
f
i
g
u
r
a
t
i
o
n
(
)
;
/
/
S
t
a
t
e
m
e
n
t
H
a
n
d
l
e
r
封
装
了
S
t
a
t
e
m
e
n
t
,
让
S
t
a
t
e
m
e
n
t
H
a
n
d
l
e
r
去
处
理
S
t
a
t
e
m
e
n
t
H
a
n
d
l
e
r
h
a
n
d
l
e
r
=
c
o
n
f
i
g
u
r
a
t
i
o
n
.
n
e
w
S
t
a
t
e
m
e
n
t
H
a
n
d
l
e
r
(
w
r
a
p
p
e
r
,
m
s
,
p
a
r
a
m
e
t
e
r
,
r
o
w
B
o
u
n
d
s
,
r
e
s
u
l
t
H
a
n
d
l
e
r
,
b
o
u
n
d
S
q
l
)
;
s
t
m
t
=
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
h
a
n
d
l
e
r
,
m
s
.
g
e
t
S
t
a
t
e
m
e
n
t
L
o
g
(
)
)
;
r
e
t
u
r
n
h
a
n
d
l
e
r
.
<
E
>
q
u
e
r
y
(
s
t
m
t
,
r
e
s
u
l
t
H
a
n
d
l
e
r
)
;
}
f
i
n
a
l
l
y
{
c
l
o
s
e
S
t
a
t
e
m
e
n
t
(
s
t
m
t
)
;
}
}
p
u
b
l
i
c
<
E
>
L
i
s
t
<
E
>
q
u
e
r
y
(
S
t
a
t
e
m
e
n
t
s
t
a
t
e
m
e
n
t
,
R
e
s
u
l
t
H
a
n
d
l
e
r
r
e
s
u
l
t
H
a
n
d
l
e
r
)
t
h
r
o
w
s
S
Q
L
E
x
c
e
p
t
i
o
n
{
/
/
到
此
,
原
形
毕
露
,
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
p
s
=
(
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
)
s
t
a
t
e
m
e
n
t
;
p
s
.
e
x
e
c
u
t
e
(
)
;
/
/
结
果
交
给
了
R
e
s
u
l
t
S
e
t
H
a
n
d
l
e
r
去
处
理
r
e
t
u
r
n
r
e
s
u
l
t
S
e
t
H
a
n
d
l
e
r
.
<
E
>
h
a
n
d
l
e
R
e
s
u
l
t
S
e
t
s
(
p
s
)
;
}
到
此
,
一
次
s
q
l
的
执
行
流
程
就
完
了
。
N
o
.
8
N
o
.
8
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
招
聘
启
事
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页
浏览过的版块
代码执行