我正在尝试将我的springboot应用程序连接到我的netezza数据库,但没有成功。我正在尝试使用该教程,网址为:https://www.callicoder.com/spring-boot-rest-api-tutorial-with-mysql-jpa-hibernate/
我用我的netezza数据库url替换了spring.datasource.url,但没有成功。请问如何连接netezza?
发布于 2018-06-25 20:30:43
除了正确配置spring.datasource.url之外,还必须将Netezza JDBC驱动程序添加到类路径中。根据this article on the IBM Knowledge Center的说法,您应该能够为正确的环境下载客户端工具:
适用于支持的客户端操作系统的
nz-*client-version.tar.zNetezza客户端安装软件包。IBM Netezza客户端软件包可用于一组常见的操作系统环境,例如:
用于英特尔/AMD上的Linux的
nz-linuxclient-version.tar.gz,包括ODBC/JDBC和Netezza命令行utilities除此之外,您还必须正确配置方言。据我所知,Hibernate ( Spring boot中的默认JPA提供程序)不支持Netazza方言。您可以在their Javadoc上找到支持的方言的完整列表。
但是,由于Netazza7.x是基于PostgreSQL 7.x的,所以您可以使用PostgreSQL方言之一来使其工作,尽管有两点说明:
所以回答你的问题,它不是正式支持的Hibernate,所以它可能不会工作。可供选择的有:
JdbcTemplate中重用其他projects.发布于 2018-12-14 13:36:15
对于像我这样的懒人来说,
1)你需要首先在你的机器上安装jar,这个SO answer解释了这一点。
2)添加依赖关系
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>7.4.1-jdbc3</version>
</dependency>
<dependency>
<groupId>net.sf.squirrel-sql.plugins</groupId>
<artifactId>netezza</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.netezza</groupId>
<artifactId>netezza</artifactId>
<version>1.0</version>
</dependency>3) Netezza自定义方言。请注意,这些是我的用例所需的数据类型。对于任何其他数据类型,您必须显式添加它们。
import org.hibernate.dialect.PostgreSQLDialect;
import org.hibernate.type.StandardBasicTypes;
@SuppressWarnings("deprecation")
public class NetezzaDialect extends PostgreSQLDialect {
public NetezzaDialect() {
registerHibernateType(Types.CHAR, StandardBasicTypes.STRING.getName());
registerHibernateType(Types.VARCHAR, StandardBasicTypes.STRING.getName());
registerHibernateType(Types.NVARCHAR, StandardBasicTypes.STRING.getName());
registerHibernateType(Types.BIGINT, StandardBasicTypes.LONG.getName());
registerHibernateType(Types.SMALLINT, StandardBasicTypes.SHORT.getName());
registerHibernateType(Types.DATE, StandardBasicTypes.DATE.getName());
}
}4) spring boot的属性
# Netezza properties
spring.datasource.url=jdbc:netezza://{host}:{port}/{db/ catalog}
spring.datasource.username=
spring.datasource.password=
spring.jpa.properties.hibernate.dialect=your.org.config.NetezzaDialect
spring.datasource.driver-class-name=org.netezza.Driverhttps://stackoverflow.com/questions/51020837
复制相似问题