Using Java to Operate MarkLogic

The use of MarkLogic in Java can be achieved through the MarkLogic Java API. The following are the steps and sample code for using Java to operate MarkLogic: 1. Add Maven dependency In the pom.xml file of the project, add the following Maven dependencies to introduce the MarkLogic Java API: <dependency> <groupId>com.marklogic</groupId> <artifactId>java-client-api</artifactId> <version>4.3.0</version> </dependency> 2. Create a MarkLogic connection Create a MarkLogicConnector object using MarkLogicClientFactory to connect to the MarkLogic database: import com.marklogic.client.DatabaseClient; import com.marklogic.client.DatabaseClientFactory; import com.marklogic.client.DatabaseClientFactory.Authentication; import com.marklogic.client.DatabaseClientFactory.DigestAuthContext; //Establishing a connection final String host = "localhost"; final int port = 8000; final String username = "admin"; final String password = "admin"; final String database = "Documents"; DatabaseClient client = DatabaseClientFactory.newClient(host, port, database, new DigestAuthContext(username, password)); 3. Data insertion Create a document using DocumentManager and insert it into the MarkLogic database: import com.marklogic.client.document.DocumentManager; import com.marklogic.client.document.GenericDocument; import com.marklogic.client.io.StringHandle; //Insert Document DocumentManager documentManager = client.newDocumentManager(); StringHandle content = new StringHandle("This is some example content"); GenericDocument document = documentManager.newDocument("/example/doc1", content); documentManager.write(document); 4. Data Query Use QueryBuilder to build queries and use SearchManager to execute queries: import com.marklogic.client.query.MatchDocumentSummary; import com.marklogic.client.query.MatchLocation; import com.marklogic.client.query.QueryManager; import com.marklogic.client.query.StringQueryDefinition; //Query data QueryManager queryManager = client.newQueryManager(); StringQueryDefinition queryDef = queryManager.newStringDefinition(); queryDef.setCriteria("example"); MatchDocumentSummary[] results = queryManager.search(queryDef, 10); for (MatchDocumentSummary result : results) { System.out.println("URI: " + result.getUri()); for (MatchLocation match : result.getMatchLocations()) { System.out.println("Match: " + match.getAllSnippetText()); } } 5. Data modification To modify document content using DocumentManager: import com.marklogic.client.document.DocumentPatchBuilder; import com.marklogic.client.document.DocumentPatchHandle; //Modifying Documents String documentUri = "/example/doc1"; DocumentPatchHandle patchHandle = new DocumentPatchHandle(); DocumentPatchBuilder patchBuilder = documentManager.newPatchBuilder(); patchBuilder.insertFragment("/doc/content", DocumentPatchBuilder.Position.LAST_CHILD, "<tag>This is a new tag</tag>"); patchHandle = patchBuilder.build(); documentManager.patch(documentUri, patchHandle); 6. Data deletion To delete a document using DocumentManager: import com.marklogic.client.document.DocumentUriTemplate; import com.marklogic.client.document.DocumentWriteSet; import com.marklogic.client.document.DocumentWriteOperation; import com.marklogic.client.document.DocumentWriteOperation.OperationType; //Delete Document DocumentUriTemplate uriTemplate = documentManager.newDocumentUriTemplate("xml"); String uri = uriTemplate.insertDefaultExtension("/example/doc1"); DocumentWriteSet writeSet = documentManager.newWriteSet(); DocumentWriteOperation deleteOperation = documentManager.newDelete(uri); writeSet.add(deleteOperation); documentManager.write(writeSet); The above are the basic steps and sample code for using Java to operate a MarkLogic database. As needed, more complex operations can be performed using the MarkLogic Java API based on specific business logic and requirements.