springMVC+neo4j+3D展示
本项目使用springMVC+neo4j 框架 ,展示所有节点以及关系
配置类 Neo4jConfig
注意:需要使用java7
1、pom.xml(仅包含neo4j部分)
<!-- neo4j需要的依赖 -->
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>4.0.2</version><!-- 4.0.2 -->
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.5.14</version><!-- 3.5.14 -->
</dependency>
<!-- bolt方式 -->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-bolt-driver</artifactId>
<version>3.2.18</version><!-- 3.2.18 -->
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>5.3.6.RELEASE</version><!-- 5.3.6.RELEASE -->
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-core</artifactId>
<version>3.2.18</version><!-- 3.2.18 -->
</dependency>
这是配置类,用来连接neo4j,也可以使用xml的方式,本篇并没有使用XML作为neo4j配置,所以代码就不贴了。
@Configuration
@ComponentScan(basePackages = {
"com.yb.service"})
@EnableNeo4jRepositories(basePackages = "com.yb.repository")
@EnableTransactionManagement
public class Neo4jConfig {
@Bean
public org.neo4j.ogm.config.Configuration configuration() {
org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration.Builder()
.uri("bolt://localhost:7687")
.credentials("neo4j", "yanchuhang")
.build();
return configuration;
}
@Bean
public SessionFactory sessionFactory(org.neo4j.ogm.config.Configuration configuration) {
//entity是实体类
return new SessionFactory(configuration, "com.yb.entity");
}
@Bean
public Neo4jTransactionManager transactionManager(SessionFactory sessionFactory) {
return new Neo4jTransactionManager(sessionFactory);
}
}
Repository接口
@Repository
public interface AttendRepository extends Neo4jRepository<Attend,Long> {
//查询包含关系的所有节点和关系
@Query("MATCH q=(a)-[r]->(b) return q")
List<Attend> selectAll();
//查询所有节点和关系(包括没有关系的节点)
@Query("MATCH (n) return {label:n.name,name:n.name,id:id(n),type:n.type,sex:n.sex} as q ")
List select();
//查询所有节点的关系
@Query("MATCH p=(n)-[r]->(m) return {id:id(r),from:id(n),to:id(m),label:type(r)} as p")
List selectRelation();
}
@Repository
public interface SchoolRepository extends Neo4jRepository<School,Long> {
@Query("MATCH (n:school) RETURN n")
List<School> selectAll();
@Query("MATCH (s:school) where s.name=~ ('.*'+$name+'.*') RETURN s")
List<School> selectByName(@Param("name") String name);
@Query("match (s:school) where id(s)=$id return s")
School toUpdate(@Param("id") Long id);
@Query("match (s:school) where id(s)=:#{#school.id} set s.name=:#{#school.name},s.city=:#{#school.city},s.area=:#{#school.area},s.type=:#{#school.type} return s")
void update(@Param("school") School school);
}
@Repository
public interface StudentRepository extends Neo4jRepository<Student,Long> {
@Query("MATCH (n:student) return n")
List<Student> selectAll();
}
Controller层代码
@Controller
@RequestMapping("/attend")
public class AttendController {
@Autowired
private A