如何迭代MySql /nvarchar(max)在MS SQL中使用longtext类型的列属性中存储的字符串值.<



MySQL (type - longtext)/MS SQL (type - nvarchar(max))中有一个columns属性。它以低于价值的价格储存。我通过java中的结果集获得值,如下所示。

while (rs.next()) {

字符串属性= rs.getString("attributes");}

The value returns below String value. Now I want to iterate through below. Can someone help here to get each      entry based on key and value.
<Attributes>
<Map>
<entry key="contact_number" value="9990888"/>
<entry key="displayName" value="Mohan Kumar"/>
<entry key="email" value="mohan.kumar@testmail.com"/>
<entry key="employee_address" value="Old Delhi"/>
<entry key="employee_id" value="E00012"/>
<entry key="employee_position" value="IT Manager"/>
<entry key="employee_status" value="T"/>
<entry key="employee_type" value="Permanent"/>
<entry key="firstname" value="Mohan"/>
<entry key="full_name" value="Mohan Kumar"/>
<entry key="gender" value="Male"/>
<entry key="job_code" value="UP-1001"/>
<entry key="job_description" value="UP-IT Manager"/>
<entry key="lastname" value="Kumar"/>
<entry key="martial_status" value="Single"/>
</Map>
</Attributes>
Pattern pattern = Pattern.compile("key="(.*)" value="(.*)"");
Matcher matcher = pattern.matcher("<Attributes>n" +
"  <Map>n" +
"    <entry key="contact_number" value="9990888"/>n" +
"    <entry key="displayName" value="Mohan Kumar"/>n" +
"    <entry key="email" value="mohan.kumar@testmail.com"/>n" +
"    <entry key="employee_address" value="Old Delhi"/>n" +
"    <entry key="employee_id" value="E00012"/>n" +
"    <entry key="employee_position" value="IT Manager"/>n" +
"    <entry key="employee_status" value="T"/>n" +
"    <entry key="employee_type" value="Permanent"/>n" +
"    <entry key="firstname" value="Mohan"/>n" +
"    <entry key="full_name" value="Mohan Kumar"/>n" +
"    <entry key="gender" value="Male"/>n" +
"    <entry key="job_code" value="UP-1001"/>n" +
"    <entry key="job_description" value="UP-IT Manager"/>n" +
"    <entry key="lastname" value="Kumar"/>n" +
"    <entry key="martial_status" value="Single"/>n" +
"  </Map>n" +
"</Attributes>");
var map = matcher.results().map(matchResult -> Map.entry(matchResult.group(1), matchResult.group(2)))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(map);

请注意,匹配器的结果方法从JDK 9开始就存在,所以如果你使用的是JDK 8,它将不存在

和这里的一些教程正则表达式和流

最新更新