javax.xml.xquery.XQConnection Java Examples
The following examples show how to use
javax.xml.xquery.XQConnection.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ContextItemBinderTest.java From intellij-xquery with Apache License 2.0 | 7 votes |
@Before public void setUp() throws Exception { config = mock(XQueryRunConfig.class); binderFactory = mock(TypeBinderFactory.class); connection = mock(XQConnection.class); expression = mock(XQPreparedExpression.class); binder = new ContextItemBinder(binderFactory, config) { @Override protected String readFile(String fileName) throws IOException { fileRead = true; return FILE_CONTENTS; } }; typeBinder = mock(TypeBinder.class); given(binderFactory.getBinder(CONTEXT_ITEM_TYPE)).willReturn(typeBinder); }
Example #2
Source File: VariablesBinderTest.java From intellij-xquery with Apache License 2.0 | 5 votes |
@Before public void setUp() throws Exception { binderFactory = mock(TypeBinderFactory.class); config = mock(XQueryRunConfig.class); extractor = mock(NameExtractor.class); connection = mock(XQConnection.class); expression = mock(XQPreparedExpression.class); typeBinder = mock(TypeBinder.class); binder = new VariablesBinder(binderFactory, config, extractor); variable = prepareVariable(); }
Example #3
Source File: ExpressionFactoryTest.java From intellij-xquery with Apache License 2.0 | 5 votes |
@Before public void setUp() throws XQException { config = mock(XQueryRunConfig.class); variablesBinder = mock(VariablesBinder.class); contextItemBinder = mock(ContextItemBinder.class); contentFactory = mock(XQueryContentFactory.class); connection = mock(XQConnection.class); expression = mock(XQPreparedExpression.class); given(connection.prepareExpression(any(InputStream.class))).willReturn(expression); factory = new ExpressionFactory(config, contentFactory, variablesBinder, contextItemBinder); }
Example #4
Source File: SaxonSearcher.java From tmxeditor8 with GNU General Public License v2.0 | 5 votes |
public static ArrayList<String> sort(String xmlns, String fileName, String elementName, boolean isAsc) throws XQException { URI uri = new File(fileName).toURI(); String uriPath = uri.getPath(); ArrayList<String> rowIds = new ArrayList<String>(); XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = dataSource.getConnection(); String queryString = "for $file in doc(\'" + uriPath + "')/xliff/file," + " $tu in $file/body//trans-unit order by $tu/" + elementName + " " + (isAsc ? "" : "descending") + " return <file original='{$file/@original}' tuid='{$tu/@id}'></file>"; if (xmlns != null) { queryString = "declare default element namespace '" + xmlns + "';" + queryString; } XQExpression expression = conn.createExpression(); XQSequence results = expression.executeQuery(queryString); while (results.next()) { Node node = results.getNode(); String original = node.getAttributes().getNamedItem("original").getNodeValue(); String tuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); String rowId = RowIdUtil.getRowId(fileName, original, tuid); rowIds.add(rowId); } // 释放资源 results.close(); expression.close(); conn.close(); return rowIds; }
Example #5
Source File: TextBinderTest.java From intellij-xquery with Apache License 2.0 | 5 votes |
@Before public void setUp() throws XQException { expression = mock(XQPreparedExpression.class); connection = mock(XQConnection.class); binder = new TextBinder(); xqItemType = mock(XQItemType.class); given(connection.createTextType()).willReturn(xqItemType); }
Example #6
Source File: AtomicValueBinderTest.java From intellij-xquery with Apache License 2.0 | 5 votes |
@Before public void setUp() throws XQException { expression = mock(XQPreparedExpression.class); connection = mock(XQConnection.class); binder = new AtomicValueBinder(); xqItemType = mock(XQItemType.class); given(connection.createAtomicType(anyInt())).willReturn(xqItemType); }
Example #7
Source File: ConnectionFactory.java From intellij-xquery with Apache License 2.0 | 5 votes |
public XQConnection getConnection(XQDataSource dataSource) throws Exception { XQConnection connection; if (config.getDataSourceType().connectionPropertiesAreSupported() && config.getUsername() != null && config.getUsername().length() > 0) { connection = dataSource.getConnection(config.getUsername(), config.getPassword()); } else { connection = dataSource.getConnection(); } return connection; }
Example #8
Source File: AttributeBinderTest.java From intellij-xquery with Apache License 2.0 | 5 votes |
@Before public void setUp() throws Exception { expression = mock(XQPreparedExpression.class); connection = mock(XQConnection.class); binder = new AttributeBinder(); xqItemType = mock(XQItemType.class); given(connection.createAttributeType(null, XQItemType.XQBASETYPE_ANYSIMPLETYPE)).willReturn(xqItemType); }
Example #9
Source File: ExpressionFactory.java From intellij-xquery with Apache License 2.0 | 5 votes |
public XQPreparedExpression getExpression(XQConnection connection) throws Exception { XQPreparedExpression preparedExpression = connection .prepareExpression(contentFactory.getXQueryContentAsStream()); contextItemBinder.bindContextItem(connection, preparedExpression); variablesBinder.bindVariables(connection, preparedExpression); return preparedExpression; }
Example #10
Source File: XQJRunnerApp.java From intellij-xquery with Apache License 2.0 | 5 votes |
public void runApp() throws Exception { XQDataSource xqs = dataSourceFactory.getDataSource(); XQConnection connection = null; try { connection = connectionFactory.getConnection(xqs); XQPreparedExpression preparedExpression = expressionFactory.getExpression(connection); XQResultSequence rs = preparedExpression.executeQuery(); rs.writeSequence(output, outputMethodFactory.getOutputMethodProperties()); } finally { if (connection != null) { connection.close(); } } }
Example #11
Source File: ContextItemBinder.java From intellij-xquery with Apache License 2.0 | 5 votes |
public void bindContextItem(XQConnection connection, XQPreparedExpression preparedExpression) throws Exception { if (config.isContextItemEnabled()) { String contextItemValue = config.isContextItemFromEditorEnabled() ? config.getContextItemText() : readFile(config.getContextItemFile()); binderFactory.getBinder(config.getContextItemType()).bind(preparedExpression, connection, XQConstants.CONTEXT_ITEM, contextItemValue, config.getContextItemType()); } }
Example #12
Source File: VariablesBinder.java From intellij-xquery with Apache License 2.0 | 5 votes |
public void bindVariables(XQConnection connection, XQPreparedExpression preparedExpression) throws Exception { for (XQueryRunnerVariable variable : config.getVariables()) { if (variable.ACTIVE) { TypeBinder binder = binderFactory.getBinder(variable.TYPE); QName name = nameExtractor.getName(variable.NAME, variable.NAMESPACE); binder.bind(preparedExpression, connection, name, variable.VALUE, variable.TYPE); } } }
Example #13
Source File: SaxonSearcher.java From translationstudio8 with GNU General Public License v2.0 | 5 votes |
public static ArrayList<String> sort(String xmlns, String fileName, String elementName, boolean isAsc) throws XQException { URI uri = new File(fileName).toURI(); String uriPath = uri.getPath(); ArrayList<String> rowIds = new ArrayList<String>(); XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = dataSource.getConnection(); String queryString = "for $file in doc(\'" + uriPath + "')/xliff/file," + " $tu in $file/body//trans-unit order by $tu/" + elementName + " " + (isAsc ? "" : "descending") + " return <file original='{$file/@original}' tuid='{$tu/@id}'></file>"; if (xmlns != null) { queryString = "declare default element namespace '" + xmlns + "';" + queryString; } XQExpression expression = conn.createExpression(); XQSequence results = expression.executeQuery(queryString); while (results.next()) { Node node = results.getNode(); String original = node.getAttributes().getNamedItem("original").getNodeValue(); String tuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); String rowId = RowIdUtil.getRowId(fileName, original, tuid); rowIds.add(rowId); } // 释放资源 results.close(); expression.close(); conn.close(); return rowIds; }
Example #14
Source File: TextBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
@Override public void bind(XQPreparedExpression expression, XQConnection connection, QName name, String value, String type) throws Exception { expression.bindNode(name, createTextNode(value), getType(connection)); }
Example #15
Source File: DocumentBinderTest.java From intellij-xquery with Apache License 2.0 | 4 votes |
@Before public void setUp() throws XQException { expression = mock(XQPreparedExpression.class); connection = mock(XQConnection.class); binder = new DocumentBinder(); }
Example #16
Source File: AtomicValueBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
private XQItemType getType(XQConnection connection, String type) throws Exception { return connection.createAtomicType(typeMapper.getType(XQueryItemType.valueFor(type))); }
Example #17
Source File: AtomicValueBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
@Override public void bind(XQPreparedExpression expression, XQConnection connection, QName name, String value, String type) throws Exception { expression.bindAtomicValue(name, value, getType(connection, type)); }
Example #18
Source File: TextBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
public XQItemType getType(XQConnection connection) throws Exception { return connection.createTextType(); }
Example #19
Source File: DocumentBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
@Override public void bind(XQPreparedExpression expression, XQConnection connection, QName name, String value, String type) throws Exception { expression.bindDocument(name, value, null, null); }
Example #20
Source File: AttributeBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
public XQItemType getType(XQConnection connection) throws Exception { return connection.createAttributeType(null, XQItemType.XQBASETYPE_ANYSIMPLETYPE); }
Example #21
Source File: AttributeBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
@Override public void bind(XQPreparedExpression expression, XQConnection connection, QName name, String value, String type) throws Exception { expression.bindNode(name, createAttributeNode(value), getType(connection)); }
Example #22
Source File: TypeBinder.java From intellij-xquery with Apache License 2.0 | 4 votes |
void bind(XQPreparedExpression expression, XQConnection connection, QName name, String value, String type) throws Exception;
Example #23
Source File: SaxonSearcher.java From tmxeditor8 with GNU General Public License v2.0 | 4 votes |
/** * 测试过滤重复文本段 robert 2012-06-11 * @throws XQException */ private static void testRpeateed() throws XQException{ String xqueryStr_1 = "declare namespace ns0='urn:oasis:names:tc:xliff:document:1.2'; " + "for $t in (let $allTU_1 := ( " + " for $file0 in doc('/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf')/ns0:xliff/ns0:file[upper-case(@source-language)='EN-US' " + " and upper-case(@target-language)='ZH-CN'], " + " $tu0 in $file0/ns0:body//ns0:trans-unit " + " return <tu fileName='/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf' original='{$file0/@original}' tuid='{$tu0/@id}' source='{$tu0/ns0:source/text()}' />), " + " $allTU := for $allTU1 in $allTU_1 return <tu fileName='{$allTU1/@fileName}' original='{$allTU1/@original}' tuid='{$allTU1/@tuid}' source='{normalize-space($allTU1/@source)}' /> ," + " $id := (for $src in distinct-values($allTU/@source) " + " return <root>{if (count($allTU[@source=$src])>1) then <src>{$src}</src> else ''}</root>)/src/text(), " + " $tu := $allTU[@source=$id] return $tu) order by $t/@source " + " return <tu fileName='{$t/@fileName}' original='{$t/@original}' tuid='{$t/@tuid}' /> "; String xqueryStr = "declare namespace ns0='urn:oasis:names:tc:xliff:document:1.2'; \n" + "declare function local:getPureText ($srcText1 as xs:anyType) as xs:anyType {\n" + "let $result := srcText1 \n" + "return $result }; \n" + "for $t in (let $allTU := ( \n" + " for $file0 in doc('/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf')/ns0:xliff/ns0:file[upper-case(@source-language)='EN-US' \n" + " and upper-case(@target-language)='ZH-CN'], \n" + " $tu0 in $file0/ns0:body//ns0:trans-unit \n" + " return <tu fileName='/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf' original='{$file0/@original}' tuid='{$tu0/@id}' source='{$tu0/ns0:source/text()}' />) \n" + " return $allTU )\n " + " return <tu fileName='{$t/@fileName}' original='{$t/@original}' tuid='{$t/@tuid}' source='{$t/@source}'/> \n"; XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = null; XQExpression expression = null; XQSequence results = null; try { conn = dataSource.getConnection(); expression = conn.createExpression(); results = expression.executeQuery(xqueryStr); while (results.next()) { Node node = results.getNode(); String fileName = node.getAttributes().getNamedItem("fileName").getNodeValue(); String original = node.getAttributes().getNamedItem("original").getNodeValue(); String tuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); String source = node.getAttributes().getNamedItem("source").getNodeValue(); System.out.println(source); // System.out.println(tuid); } return; } finally { // 释放资源 if (results != null && !results.isClosed()) { results.close(); } if (expression != null && !expression.isClosed()) { expression.close(); } if (conn != null && !conn.isClosed()) { conn.close(); } } }
Example #24
Source File: SaxonSearcher.java From tmxeditor8 with GNU General Public License v2.0 | 4 votes |
/** * 繁殖翻译文本段的查询 robert 2012-04-03 * @param queryString * XQuery查询语句 * @return RowId集合 * @throws XQException * ; */ public static Map<String, List<String>> PropagateQurey(String queryString) throws XQException { XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = null; XQExpression expression = null; XQSequence results = null; try { conn = dataSource.getConnection(); expression = conn.createExpression(); results = expression.executeQuery(queryString); Map<String, List<String>> resultMap = new HashMap<String, List<String>>(); while (results.next()) { Node node = results.getNode(); // System.out.println("node.getChildNodes().getLength() = " + node.getChildNodes().getLength()); if (node.getChildNodes().getLength() >= 1) { String rootFileName = node.getAttributes().getNamedItem("fileName").getNodeValue(); rootFileName = new File(rootFileName).getAbsolutePath(); String rootOriginal = node.getAttributes().getNamedItem("original").getNodeValue(); String rootTuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); String rootRowId = RowIdUtil.getRowId(rootFileName, rootOriginal, rootTuid); if (!resultMap.keySet().contains(rootRowId)) { resultMap.put(rootRowId, new ArrayList<String>()); } NodeList nodeList = node.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { if (nodeList.item(i).getAttributes() == null) { continue; } String fileName = nodeList.item(i).getAttributes().getNamedItem("fileName").getNodeValue(); fileName = new File(fileName).getAbsolutePath(); String original = nodeList.item(i).getAttributes().getNamedItem("original").getNodeValue(); String tuid = nodeList.item(i).getAttributes().getNamedItem("tuid").getNodeValue(); String rowId = RowIdUtil.getRowId(fileName, original, tuid); resultMap.get(rootRowId).add(rowId); } } } return resultMap; } finally { // 释放资源 if (results != null && !results.isClosed()) { results.close(); } if (expression != null && !expression.isClosed()) { expression.close(); } if (conn != null && !conn.isClosed()) { conn.close(); } } }
Example #25
Source File: SaxonSearcher.java From tmxeditor8 with GNU General Public License v2.0 | 4 votes |
/** * 查询 * @param queryString * XQuery查询语句 * @return RowId集合 * @throws XQException ; */ private static ArrayList<String> qurey(String queryString) throws XQException { XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = null; XQExpression expression = null; XQSequence results = null; try { conn = dataSource.getConnection(); expression = conn.createExpression(); results = expression.executeQuery(queryString); LinkedHashSet<String> set = new LinkedHashSet<String>(); while (results.next()) { Node node = results.getNode(); String fileName = node.getAttributes().getNamedItem("fileName").getNodeValue(); String original = node.getAttributes().getNamedItem("original").getNodeValue(); String tuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); // 解决 Windows 平台下,无法查询“重复文本段”的问题“: // 这里返回的是 URI,因此需要转成操作系统的标准文件路径。 // 注:在 Winodws 平台中文件路径分隔符使用“\”,而在 URI 标准中文件路径分隔符使用“/”,并且会以“/”为根, // 因此,Windows 的路径“c:\test.txt”,使用 URI 表示为“/c:/test.txt”。 fileName = new File(fileName).getAbsolutePath(); String rowId = RowIdUtil.getRowId(fileName, original, tuid); set.add(rowId); } return new ArrayList<String>(set); } finally { // 释放资源 if (results != null && !results.isClosed()) { results.close(); } if (expression != null && !expression.isClosed()) { expression.close(); } if (conn != null && !conn.isClosed()) { conn.close(); } } }
Example #26
Source File: SaxonSearcher.java From translationstudio8 with GNU General Public License v2.0 | 4 votes |
/** * 测试过滤重复文本段 robert 2012-06-11 * @throws XQException */ private static void testRpeateed() throws XQException{ String xqueryStr_1 = "declare namespace ns0='urn:oasis:names:tc:xliff:document:1.2'; " + "for $t in (let $allTU_1 := ( " + " for $file0 in doc('/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf')/ns0:xliff/ns0:file[upper-case(@source-language)='EN-US' " + " and upper-case(@target-language)='ZH-CN'], " + " $tu0 in $file0/ns0:body//ns0:trans-unit " + " return <tu fileName='/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf' original='{$file0/@original}' tuid='{$tu0/@id}' source='{$tu0/ns0:source/text()}' />), " + " $allTU := for $allTU1 in $allTU_1 return <tu fileName='{$allTU1/@fileName}' original='{$allTU1/@original}' tuid='{$allTU1/@tuid}' source='{normalize-space($allTU1/@source)}' /> ," + " $id := (for $src in distinct-values($allTU/@source) " + " return <root>{if (count($allTU[@source=$src])>1) then <src>{$src}</src> else ''}</root>)/src/text(), " + " $tu := $allTU[@source=$id] return $tu) order by $t/@source " + " return <tu fileName='{$t/@fileName}' original='{$t/@original}' tuid='{$t/@tuid}' /> "; String xqueryStr = "declare namespace ns0='urn:oasis:names:tc:xliff:document:1.2'; \n" + "declare function local:getPureText ($srcText1 as xs:anyType) as xs:anyType {\n" + "let $result := srcText1 \n" + "return $result }; \n" + "for $t in (let $allTU := ( \n" + " for $file0 in doc('/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf')/ns0:xliff/ns0:file[upper-case(@source-language)='EN-US' \n" + " and upper-case(@target-language)='ZH-CN'], \n" + " $tu0 in $file0/ns0:body//ns0:trans-unit \n" + " return <tu fileName='/home/robert/workspace/runtime-UltimateEdition.product/test/XLIFF/zh-CN/user_defineed_filter4.doc.xlf' original='{$file0/@original}' tuid='{$tu0/@id}' source='{$tu0/ns0:source/text()}' />) \n" + " return $allTU )\n " + " return <tu fileName='{$t/@fileName}' original='{$t/@original}' tuid='{$t/@tuid}' source='{$t/@source}'/> \n"; XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = null; XQExpression expression = null; XQSequence results = null; try { conn = dataSource.getConnection(); expression = conn.createExpression(); results = expression.executeQuery(xqueryStr); while (results.next()) { Node node = results.getNode(); String fileName = node.getAttributes().getNamedItem("fileName").getNodeValue(); String original = node.getAttributes().getNamedItem("original").getNodeValue(); String tuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); String source = node.getAttributes().getNamedItem("source").getNodeValue(); System.out.println(source); // System.out.println(tuid); } return; } finally { // 释放资源 if (results != null && !results.isClosed()) { results.close(); } if (expression != null && !expression.isClosed()) { expression.close(); } if (conn != null && !conn.isClosed()) { conn.close(); } } }
Example #27
Source File: SaxonSearcher.java From translationstudio8 with GNU General Public License v2.0 | 4 votes |
/** * 繁殖翻译文本段的查询 robert 2012-04-03 * @param queryString * XQuery查询语句 * @return RowId集合 * @throws XQException * ; */ public static Map<String, List<String>> PropagateQurey(String queryString) throws XQException { XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = null; XQExpression expression = null; XQSequence results = null; try { conn = dataSource.getConnection(); expression = conn.createExpression(); results = expression.executeQuery(queryString); Map<String, List<String>> resultMap = new HashMap<String, List<String>>(); while (results.next()) { Node node = results.getNode(); // System.out.println("node.getChildNodes().getLength() = " + node.getChildNodes().getLength()); if (node.getChildNodes().getLength() >= 1) { String rootFileName = node.getAttributes().getNamedItem("fileName").getNodeValue(); rootFileName = new File(rootFileName).getAbsolutePath(); String rootOriginal = node.getAttributes().getNamedItem("original").getNodeValue(); String rootTuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); String rootRowId = RowIdUtil.getRowId(rootFileName, rootOriginal, rootTuid); if (!resultMap.keySet().contains(rootRowId)) { resultMap.put(rootRowId, new ArrayList<String>()); } NodeList nodeList = node.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { if (nodeList.item(i).getAttributes() == null) { continue; } String fileName = nodeList.item(i).getAttributes().getNamedItem("fileName").getNodeValue(); fileName = new File(fileName).getAbsolutePath(); String original = nodeList.item(i).getAttributes().getNamedItem("original").getNodeValue(); String tuid = nodeList.item(i).getAttributes().getNamedItem("tuid").getNodeValue(); String rowId = RowIdUtil.getRowId(fileName, original, tuid); resultMap.get(rootRowId).add(rowId); } } } return resultMap; } finally { // 释放资源 if (results != null && !results.isClosed()) { results.close(); } if (expression != null && !expression.isClosed()) { expression.close(); } if (conn != null && !conn.isClosed()) { conn.close(); } } }
Example #28
Source File: SaxonSearcher.java From translationstudio8 with GNU General Public License v2.0 | 4 votes |
/** * 查询 * @param queryString * XQuery查询语句 * @return RowId集合 * @throws XQException ; */ private static ArrayList<String> qurey(String queryString) throws XQException { XQDataSource dataSource = new SaxonXQDataSource(); XQConnection conn = null; XQExpression expression = null; XQSequence results = null; try { conn = dataSource.getConnection(); expression = conn.createExpression(); results = expression.executeQuery(queryString); LinkedHashSet<String> set = new LinkedHashSet<String>(); while (results.next()) { Node node = results.getNode(); String fileName = node.getAttributes().getNamedItem("fileName").getNodeValue(); String original = node.getAttributes().getNamedItem("original").getNodeValue(); String tuid = node.getAttributes().getNamedItem("tuid").getNodeValue(); // 解决 Windows 平台下,无法查询“重复文本段”的问题“: // 这里返回的是 URI,因此需要转成操作系统的标准文件路径。 // 注:在 Winodws 平台中文件路径分隔符使用“\”,而在 URI 标准中文件路径分隔符使用“/”,并且会以“/”为根, // 因此,Windows 的路径“c:\test.txt”,使用 URI 表示为“/c:/test.txt”。 fileName = new File(fileName).getAbsolutePath(); String rowId = RowIdUtil.getRowId(fileName, original, tuid); set.add(rowId); } return new ArrayList<String>(set); } finally { // 释放资源 if (results != null && !results.isClosed()) { results.close(); } if (expression != null && !expression.isClosed()) { expression.close(); } if (conn != null && !conn.isClosed()) { conn.close(); } } }