mybtisplus 集成 neo4j jdbc 不识别Cypher,集成的完整代码
时间: 2024-02-01 11:14:05 浏览: 60
neo4j-jdbc-driver
4星 · 用户满意度95%
mybatis-plus 集成 neo4j jdbc 可以通过以下步骤实现:
1. 引入 neo4j jdbc 驱动
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-jdbc-driver</artifactId>
<version>4.0.4</version>
</dependency>
```
2. 配置数据源
在 application.yml 或 application.properties 文件中添加以下配置:
```yaml
spring:
datasource:
url: jdbc:neo4j:bolt://localhost:7687
driver-class-name: org.neo4j.jdbc.Driver
username: neo4j
password: password
```
其中,url 中的 `bolt` 协议表示使用 Bolt 协议连接 Neo4j 数据库,`7687` 是 Bolt 协议默认的端口号。
3. 配置 Mybatis-Plus
在 Mybatis-Plus 的配置类中添加以下配置:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> {
configuration.setUseGeneratedShortKey(false);
configuration.setMapUnderscoreToCamelCase(true);
configuration.getTypeAliasRegistry().registerAlias("BaseEntity", BaseEntity.class);
};
}
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
@Bean
public PerformanceInterceptor performanceInterceptor() {
return new PerformanceInterceptor();
}
@Bean(name = "neo4jJdbcTemplate")
public JdbcTemplate neo4jJdbcTemplate(@Qualifier("neo4jDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "neo4jDataSource")
public DataSource neo4jDataSource() {
return DataSourceBuilder.create()
.driverClassName("org.neo4j.jdbc.Driver")
.url("jdbc:neo4j:bolt://localhost:7687")
.username("neo4j")
.password("password")
.build();
}
@Bean(name = "neo4jSqlSessionFactory")
public SqlSessionFactory neo4jSqlSessionFactory(@Qualifier("neo4jDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setTypeAliasesPackage("com.example.demo.neo4j.entity");
return sqlSessionFactoryBean.getObject();
}
@Bean(name = "neo4jTransactionManager")
public DataSourceTransactionManager neo4jTransactionManager(@Qualifier("neo4jDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "neo4jSqlSessionTemplate")
public SqlSessionTemplate neo4jSqlSessionTemplate(@Qualifier("neo4jSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
```
其中,`neo4jJdbcTemplate` 是使用 Neo4j JDBC 进行操作的 JdbcTemplate,`neo4jSqlSessionFactory` 是使用 Neo4j JDBC 进行操作的 SqlSessionFactory。
4. 使用 Cypher 进行操作
在 Mapper 类中,可以使用 `@Select`、`@Update`、`@Delete` 等注解进行 Cypher 操作。
例如:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("MATCH (u:User) WHERE u.name = #{name} RETURN u")
User findByName(@Param("name") String name);
}
```
这样就可以使用 Mybatis-Plus 进行 Neo4j 数据库的操作了。
阅读全文