[英]Java Spring boot - Issue using entities from Oracle Sql
使用Intellij,我已连接到oracle数据库,添加了持久性框架并通过数据库模式生成了持久性映射
package springoraclesql.demo.domain;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Book {
private long bookId;
private String bookName;
private String bookAuthor;
private Long bookPrice;
@Id
@Column(name = "BOOK_ID")
public long getBookId() {
return bookId;
}
public void setBookId(long bookId) {
this.bookId = bookId;
}
@Basic
@Column(name = "BOOK_NAME")
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
@Basic
@Column(name = "BOOK_AUTHOR")
public String getBookAuthor() {
return bookAuthor;
}
public void setBookAuthor(String bookAuthor) {
this.bookAuthor = bookAuthor;
}
@Basic
@Column(name = "BOOK_PRICE")
public Long getBookPrice() {
return bookPrice;
}
public void setBookPrice(Long bookPrice) {
this.bookPrice = bookPrice;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
if (bookId != book.bookId) return false;
if (bookName != null ? !bookName.equals(book.bookName) : book.bookName != null) return false;
if (bookAuthor != null ? !bookAuthor.equals(book.bookAuthor) : book.bookAuthor != null) return false;
if (bookPrice != null ? !bookPrice.equals(book.bookPrice) : book.bookPrice != null) return false;
return true;
}
@Override
public int hashCode() {
int result = (int) (bookId ^ (bookId >>> 32));
result = 31 * result + (bookName != null ? bookName.hashCode() : 0);
result = 31 * result + (bookAuthor != null ? bookAuthor.hashCode() : 0);
result = 31 * result + (bookPrice != null ? bookPrice.hashCode() : 0);
return result;
}
}
我添加了Oracle jdbc,并且在java / META-INF下的persistence.xml
看起来像这样`
<persistence-unit name="NewPersistenceUnit">
<class>springoraclesql.demo.domain.Book</class>
<properties>
<property name="toplink.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="toplink.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
<property name="openjpa.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="openjpa.ConnectionDriverName" value="oracle.jdbc.OracleDriver"/>
<property name="eclipselink.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="eclipselink.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
</properties>
</persistence-unit>
我的application.properties看起来像这样
oracle.dbsource.url=jdbc:oracle:thin:@localhost:1521:xe
oracle.dbsource.username=talon
oracle.dbsource.password=talon
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.name=talon
spring.datasource.password=talon
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
当我运行spring项目时,我有很多java.sql.SQLException:ORA-01017:无效的用户名/密码; 登录被拒绝的错误。 但是网址,用户名和密码是正确的。
2018-01-12 13:05:06.521 ERROR 10220 --- [ main] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
java.sql.SQLException: ORA-01017: invalid username/password; logon denied
...
2018-01-12 13:05:06.536 WARN 10220 --- [ main] o.s.b.a.orm.jpa.DatabaseLookup : Unable to determine jdbc url from datasource
org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: ORA-01017: invalid username/password; logon denied
...
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: ORA-01017: invalid username/password; logon denied
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) ~[spring-jdbc-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:326) ~[spring-jdbc-4.3.13.RELEASE.jar:4.3.13.RELEASE]
... 61 common frames omitted
Caused by: java.sql.SQLException: ORA-01017: invalid username/password; logon denied
...
2018-01-12 13:05:06.568 ERROR 10220 --- [ main] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
java.sql.SQLException: ORA-01017: invalid username/password; logon d
...
2018-01-12 13:05:07.169 ERROR 10220 --- [ main] org.hibernate.hql.spi.id.IdTableHelper : Unable obtain JDBC Connection
java.sql.SQLException: ORA-01017: invalid username/password; logon denied
...
2018-01-12 13:05:07.191 INFO 10220 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2018-01-12 13:05:07.438 INFO 10220 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@75f9eccc: startup date [Fri Jan 12 13:05:04 CET 2018]; root of context hierarchy
2018-01-12 13:05:07.486 ERROR 10220 --- [ main] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
java.sql.SQLException: ORA-01017: invalid username/password; logon denied
在尝试使用DriverManager.getConnection
连接到相同的架构之前,以这种方式检索数据没有任何问题。
我正在使用spring.datasource.name而不是spring.datasource.username
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.