1 package search.db;
2
3 import util.ConnectionUtil;
4 import util.SearchUtil;
5 import util.TableOperations;
6 import chemaxon.jchem.db.JChemSearch;
7 import chemaxon.sss.SearchConstants;
8 import chemaxon.sss.formula.FormulaSearch;
9 import chemaxon.sss.search.JChemSearchOptions;
10import chemaxon.util.ConnectionHandler;
11
12
17public final class DatabaseSearchExample {
18
19 private static final String TABLE_NAME = "demo";
20
21 private ConnectionHandler connHandler;
22
23 public static void main(String[] args) {
24 try {
25 new DatabaseSearchExample().run();
26 } catch (Exception e) {
27 e.printStackTrace();
28 }
29 }
30
31 private void run() throws Exception {
32 connHandler = ConnectionUtil.connectToDB();
33 try {
34 TableOperations.setupMoleculeTable(connHandler, TABLE_NAME);
35 runSearches();
36 } finally {
37 ConnectionUtil.closeConnection(connHandler);
38 }
39 }
40
41 private void runSearches() {
42
43 JChemSearch jcs = new JChemSearch();
45 jcs.setConnectionHandler(connHandler);
46 jcs.setStructureTable(TABLE_NAME);
47 String queryStructure = "CCNCC";
48 jcs.setQueryStructure(queryStructure);
49 JChemSearchOptions searchOpts = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
50 jcs.setSearchOptions(searchOpts);
51
52 System.out.println("Searching: " + queryStructure);
53 search(jcs);
56 queryStructure = "CC[N+]CC";
58 jcs.setQueryStructure(queryStructure);
59 System.out.println("Searching: " + queryStructure);
60 search(jcs);
62 searchOpts.setChargeMatching(SearchConstants.CHARGE_MATCHING_IGNORE);
64 System.out.println("Searching: " + queryStructure + " with charge ignore");
65 jcs.setSearchOptions(searchOpts);
66 search(jcs);
68
71 searchOpts.setFormulaSearchType(FormulaSearch.SUBFORMULA);
72 searchOpts.setFormulaSearchQuery("C10N1");
73 System.out.println("Searching: " + queryStructure
74 + " with charge ignore and formula query");
75 jcs.setSearchOptions(searchOpts);
76 search(jcs);
77
78 }
79
80
83 private void search(JChemSearch jcs) {
84 try {
85 jcs.run();
86 int[] results = jcs.getResults();
87 SearchUtil.printSearchResults(results);
88 } catch (Exception e) {
89 System.err.println("Unexpected error during DB search!");
90 e.printStackTrace();
91 }
92 }
93
94}
95