java - How to create a Cypher Query engine within my interface? -
i trying implement easy interface make queries need within db couldn't figure out how it. interface has button , each time click wish have query executed on db , result jtextarea
below working code
import java.awt.eventqueue; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.file; import java.io.ioexception; import java.util.iterator; import java.util.list; import java.util.map; import java.util.map.entry; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jtextarea; import javax.swing.border.emptyborder; import org.neo4j.cypher.javacompat.executionengine; import org.neo4j.cypher.javacompat.executionresult; import org.neo4j.graphdb.graphdatabaseservice; import org.neo4j.graphdb.node; import org.neo4j.graphdb.transaction; import org.neo4j.graphdb.factory.graphdatabasefactory; import org.neo4j.helpers.collection.iteratorutil; import static org.neo4j.kernel.impl.util.fileutils.deleterecursively; public class frame extends jframe { public static final string db_path = "/volumes/itaniohd/users/tanio/desktop/ciao"; graphdatabaseservice boro_db; private jpanel contentpane; public static void main(string[] args) { eventqueue.invokelater(new runnable() { public void run() { try { frame frame = new frame(); frame.setvisible(true); } catch (exception e) { e.printstacktrace(); } } }); } public frame() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 794, 653); contentpane = new jpanel(); contentpane.setborder(new emptyborder(5, 5, 5, 5)); contentpane.setlayout(null); setcontentpane(contentpane); final jtextarea querytextarea = new jtextarea(); querytextarea.setbounds(25, 40, 702, 279); querytextarea.setborder(new emptyborder(5, 5, 5, 5)); querytextarea.settext("start n=node(*) n.name! = 'my node' return n, n.name"); contentpane.add(querytextarea); jlabel cypherquerylabel = new jlabel("cypher query"); cypherquerylabel.setbounds(25, 12, 105, 23); contentpane.add(cypherquerylabel); final jtextarea resulttextarea = new jtextarea(); resulttextarea.setbounds(25, 351, 702, 171); resulttextarea.seteditable(false); resulttextarea.setborder(new emptyborder(5, 5, 5, 5)); contentpane.add(resulttextarea); jlabel resultlabel = new jlabel("result:"); resultlabel.setbounds(25, 323, 55, 23); contentpane.add(resultlabel); jbutton btnnewbutton_2 = new jbutton("execute query"); btnnewbutton_2.setbounds(274, 540, 176, 41); btnnewbutton_2.setvisible(true); contentpane.add(btnnewbutton_2); final graphdatabaseservice db = new graphdatabasefactory().newembeddeddatabase( db_path ); neo4jengine neo4jdb = new neo4jengine(); neo4jdb.createborographontology(db); btnnewbutton_2.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { string resultstring; executionengine engine = new executionengine( db ); executionresult result = engine.execute(querytextarea.gettext()); resultstring =result.dumptostring(); resulttextarea.settext(resultstring); } }); } }
try this:
import org.neo4j.cypher.javacompat.executionengine; import org.neo4j.cypher.javacompat.executionresult; import org.neo4j.graphdb.graphdatabaseservice; import org.neo4j.graphdb.transaction; import org.neo4j.graphdb.factory.graphdatabasefactory; import org.neo4j.kernel.impl.util.fileutils; import javax.swing.*; import javax.swing.border.emptyborder; import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.file; import java.io.ioexception; public class frame extends jframe { public static final string db_path = "/volumes/itaniohd/users/tanio/desktop/ciao"; private static graphdatabaseservice db; private jpanel contentpane; public static void main(string[] args) { db = new graphdatabasefactory().newembeddeddatabase(db_path); registershutdownhook(db); transaction tx = db.begintx(); try { db.getnodebyid(0).setproperty("name", "name 0"); db.createnode().setproperty("name", "name 1"); db.createnode().setproperty("name", "name 2"); tx.success(); } { tx.finish(); } eventqueue.invokelater(new runnable() { public void run() { try { frame frame = new frame(); frame.setvisible(true); } catch (exception e) { e.printstacktrace(); } } }); } private static void registershutdownhook(final graphdatabaseservice graphdb) { runtime.getruntime().addshutdownhook(new thread() { @override public void run() { graphdb.shutdown(); try { fileutils.deleterecursively(new file(db_path)); } catch (ioexception e) { e.printstacktrace(); } } }); } public frame() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 794, 653); contentpane = new jpanel(); contentpane.setborder(new emptyborder(5, 5, 5, 5)); contentpane.setlayout(null); setcontentpane(contentpane); final jtextarea querytextarea = new jtextarea(); querytextarea.setbounds(25, 40, 702, 279); querytextarea.setborder(new emptyborder(5, 5, 5, 5)); querytextarea.settext("start n=node(*) return n, n.name"); contentpane.add(querytextarea); jlabel cypherquerylabel = new jlabel("cypher query"); cypherquerylabel.setbounds(25, 12, 105, 23); contentpane.add(cypherquerylabel); final jtextarea resulttextarea = new jtextarea(); resulttextarea.setbounds(25, 351, 702, 171); resulttextarea.seteditable(false); resulttextarea.setborder(new emptyborder(5, 5, 5, 5)); contentpane.add(resulttextarea); jlabel resultlabel = new jlabel("result:"); resultlabel.setbounds(25, 323, 55, 23); contentpane.add(resultlabel); jbutton btnnewbutton_2 = new jbutton("execute query"); btnnewbutton_2.setbounds(274, 540, 176, 41); btnnewbutton_2.setvisible(true); contentpane.add(btnnewbutton_2); btnnewbutton_2.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { executionengine engine = new executionengine(db); executionresult result = engine.execute(querytextarea.gettext()); resulttextarea.settext(result.dumptostring()); } }); } }
Comments
Post a Comment