简体   繁体   English

使用Java执行的密码查询

[英]cypher query using java execution

 Following is the java program which connects to NEO4J . it is not properly conneting executing cypher queries. Your help at the earliest 

is appreciated. 被赞赏。

  import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import javax.xml.soap.Node; import org.neo4j.graphdb.PropertyContainer; import org.neo4j.graphdb.Transaction; import org.apache.struts2.interceptor.SessionAware; import org.neo4j.cypher.CypherParser; import org.neo4j.cypher.ExecutionEngine; import org.neo4j.cypher.javacompat.ExecutionResult; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.factory.GraphDatabaseFactory; import org.neo4j.kernel.EmbeddedGraphDatabase; import com.opensymphony.xwork2.ActionSupport; public class arch extends ActionSupport implements SessionAware { String S; private static final String DB_PATH = "/home/mkgs/Desktop/placement/"; GraphDatabaseService graphDb; private static final long serialVersionUID = 1L; private String pwd; public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } private String username; Map session; public String save() throws Exception { System.out.println("inside save"); System.out.println("username:"+getUsername()); System.out.println("pwd:"+getPwd()); graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH); Transaction transaction = (Transaction) graphDb.beginTx(); try { ExecutionEngine engine = new ExecutionEngine(graphDb, null); ExecutionResult result = (ExecutionResult) engine.execute("START n=node(*) MATCH n-[r]-m RETURN type(r), 

count( ) ORDER BY count( ) desc"); System.out.println(result); count( )ORDER BY count( )desc“); System.out.println(result);

  Iterator<Node> columnAs = result.columnAs("n"); while(columnAs.hasNext()) { Node n = (Node)columnAs.next(); for (String key : ((PropertyContainer) n).getPropertyKeys()) { System.out.println("{ " + key + " : " + ((PropertyContainer) n).getProperty(key)+ " } "); } } } finally { ((org.neo4j.graphdb.Transaction) transaction).finish(); } return "l"; } @Override public void setSession(Map arg0) { // TODO Auto-generated method stub } } This is im getting during execution of above code using struts....... Apr 02, 2014 5:53:27 PM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the 

java.library.path: /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/server:/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386:/usr/lib/jvm/java-7-openjdk-i386/jre/../lib/i386:/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/client:/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386::/usr/java/packages/lib/i386:/usr/lib/i386-linux-gnu/jni:/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu:/usr/lib/jni:/lib:/usr/lib Apr 02, 2014 5:53:27 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:placementportal' did not find a matching property. java.library.path:/ usr / lib / jvm / java-7-openjdk-i386 / jre / lib / i386 / server:/ usr / lib / jvm / java-7-openjdk-i386 / jre / lib / i386: /usr/lib/jvm/java-7-openjdk-i386/jre/../lib/i386:/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/client:/usr/ LIB / JVM / Java的7-的OpenJDK-I386 / JRE / lib目录/ I386 ::在/ usr / JAVA /包装/ lib中/ I386:/ usr / lib中/ I386-Linux的GNU / JNI:/ lib目录/ I386-Linux的gnu:/ usr / lib / i386-linux-gnu:/ usr / lib / jni:/ lib:/ usr / lib 2014年2月2日下午org.apache.tomcat.util.digester.SetPropertiesRule开始警告:[SetPropertiesRule] {服务器/服务/引擎/主机/上下文}未将属性“源”设置为“ org.eclipse.jst.j2ee.server:placementportal”。 Apr 02, 2014 5:53:27 PM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Apr 02, 2014 5:53:27 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 645 ms Apr 02, 2014 5:53:27 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Apr 02, 2014 5:53:27 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.39 Apr 02, 2014 5:53:27 PM org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(/home/mkgs/workspace/proj/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/placementportal/WEB-INF/lib/servlet-api.jar) - jar not loaded. 2014年4月2日下午5:53:27 org.apache.coyote.http11.Http11协议初始化信息:在http-8080上初始化Coyote HTTP / 1.1 2014年4月2日下午5:53:27 org.apache.catalina.startup.Catalina加载信息:初始化在645毫秒内完成处理2014年4月2日org.apache.catalina.core.StandardService启动信息:启动服务Catalina 2014年4月2日5:53:27 PM org.apache.catalina.core .StandardEngine启动信息:启动Servlet引擎:Apache Tomcat / 6.0.39 2014年4月2日下午5:53:27 org.apache.catalina.loader.WebappClassLoader validateJarFile信息:validateJarFile(/home/mkgs/workspace/proj/.metadata /.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/placementportal/WEB-INF/lib/servlet-api.jar)-未加载jar。 See Servlet Spec 2.3, section 9.7.2. 参见Servlet Spec 2.3,第9.7.2节。 Offending class: javax/servlet/Servlet.class Apr 02, 2014 5:53:29 PM org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 Apr 02, 2014 5:53:29 PM org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 Apr 02, 2014 5:53:29 PM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/29 config=null Apr 02, 2014 5:53:29 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 1958 ms 令人反感的类:javax / servlet / Servlet.class 2014年4月2日下午5:53:29 org.apache.coyote.http11.Http11协议启动信息:在http-8080上启动Coyote HTTP / 1.1 2014年4月2日5:53:29 PM org.apache.jk.common.ChannelSocket初始化信息:JK:ajp13监听/0.0.0.0:8009 Apr 02,2014 5:53:29 PM org.apache.jk.server.Jk主要启动信息:Jk运行ID = 0时间== 0/29配置=空2014年4月2日下午5:53:29 org.apache.catalina.startup.Catalina启动信息:服务器启动时间为1958毫秒

you should be calling transaction.success() and then transaction.close(). 您应该先调用transaction.success(),然后再调用transaction.close()。 Transaction.success() is what commits the transaction. Transaction.success()是提交事务的内容。 Not sure what method you are actually calling with your cast. 不确定您的演员实际使用的是哪种方法。

The following code is a cut and paste from one of my projects for accessing an embedding GDB. 以下代码是我的一个项目的剪切和粘贴,用于访问嵌入的GDB。

Transaction tx = graphDb.beginTx();
try{
    ExecutionEngine engine = new ExecutionEngine(graphDb);
    ExecutionResult result = engine.execute("MATCH (n) RETURN n");
    System.out.println(result.dumpToString());
    tx.success();
} finally {
    tx.close();
}

Your query is 您的查询是

START n=node(*)
MATCH n-[r]-m
RETURN type(r), count(*)
ORDER BY count(*) DESC

but you're trying to access column 'n' and you don't mention it in your RETURN clause. 但您正在尝试访问列'n'并且未在RETURN子句中提及它。 You might want to change your query to the one below, but that depends on your use case. 您可能希望将查询更改为以下查询,但这取决于您的用例。

START n=node(*)
MATCH n-[r]-m
RETURN n, type(r), count(*)
ORDER BY count(*) DESC

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM