package com.force.samples.entity;
import java.sql.*;
public class RetrieveData {
public static void main(String args[]) {
Connection conn = null;
PreparedStatement prsment = null;
ResultSet res = null;
try {
String usname = "devdbuser";
String usPassword = "postgres";
String host = "jdbc:postgresql://localhost:5432/devdb";
String drayver = "org.postgresql.Driver";
Class.forName(drayver);
conn = DriverManager.getConnection(host, usname, usPassword);
prsment = conn.prepareStatement("SELECT * FROM Users");
res = prsment.executeQuery();
while (res.next()){
System.out.print(res.getString(2) + " ");
System.out.print(res.getString(3) + " ");
System.out.print(res.getString(4) + " ");
System.out.print(res.getString(5) + " ");
System.out.print(res.getString(6) + " ");
System.out.print(res.getInt(7));
}
/* while (res.next()){
int userID = res.getInt("userId");
String userN = res.getString("userName");
String userF = res.getString("userFam");
String userLog = res.getString("userLogin");
String userPsw = res.getString("userPass");
String userPos = res.getString("userEmail");
String userEm = res.getString("userEmail");
int userVozrast = res.getInt("userAge");
System.out.println(userID + " " + userN + " "+ userF + " " + userLog + " " + userPsw + " " + userPos + " " + userEm + " " + userVozrast);
}*/
} catch (Exception n) {
System.out.println("Другая ошибка, проверьте свой код");
}
catch (ClassNotFoundException e) {
System.out.println("Проверьте драйвера, правильно ли указали ");
} catch (SQLException e) {
System.out.println("Не удалось подключение к БД");
}
finally{ try{
if (res!=null){
res.close();
}
if (prsment!=null){
prsment.close();
}
if (conn!=null){
conn.close();
}
} catch (SQLException e) {
System.out.println("Razyedinenie ne udalos, ili Oshibka pri SQL zaprosa");
}
}
}
}
Чтобы проверить удалось ли подключение к БД я пробовал так и выводе получил ошибку что «Не удалось подключение к БД»
Вот мой stacktrace :
org.postgresql.util.PSQLException: ОШИБКА: отношение "users" не существует
Позиция: 15
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:559)
at org.postgresql.jdbc2.AнbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
at com.force.samples.entity.LGMAnaliz.main(LGMAnaliz.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
enzo
4,0691 золотой знак9 серебряных знаков22 бронзовых знака
задан 1 апр 2016 в 14:54
7
Попробуйте указать имя схемы в строке JDBC-коннекта:
jdbc:postgresql://localhost:5432/devdb?currentSchema=mySchema
где mySchema
замените на имя схемы, в которой находится таблица users
.
Ключевое слово currentSchema
следует использовать в версиях Postgresql начиная с версии 9.4, а для более ранних версий применяйте searchpath:
jdbc:postgresql://localhost:5432/devdb?searchpath=mySchema
ответ дан 4 апр 2016 в 4:20
bobzerbobzer
2,2377 серебряных знаков8 бронзовых знаков
1
I am getting the follow error when trying to execute a select * from tablename
statement in postgresql. If I execute the same comment from a db GUI client (dbVisualizer), I am able to execute it succesfully. I am using eclipse, java 8 and postgresql 10.
ERROR: relation "tablename" does not exist Position: 15
- java
- postgresql
Vao Tsun
46.7k12 gold badges98 silver badges131 bronze badges
asked Nov 10, 2017 at 3:52
6
-
Is
tablename
really the table name? I’d say you’re probably using mixed case and quoting in one place but not another, or you’re connected to a different databaseNov 10, 2017 at 3:56
-
what you mean you try to execute it in postgresql?..
Nov 10, 2017 at 8:37
-
tablename is just a fake name a posted randomly on the question. I already validated the mixed case and quoting option and got no success result.
Nov 13, 2017 at 2:58
-
I mean I run the query against postgres db
Nov 13, 2017 at 2:59
-
One additional consideration is that I am using a MAC (macOS)
Nov 13, 2017 at 3:09
Load 7 more related questions
Show fewer related questions
#postgresql #spring-boot #hibernate #hibernate-mapping #sql-view
Вопрос:
Я использую представление в своем классе сущностей. Хотя сопоставления столбцов представления точно такие же, как в классе сущностей, я получаю исключение «ОШИБКА: отношение «location_view» не существует- Позиция: 15 — базовое исключение-исключение SQLGrammarException не удалось извлечь набор результатов в org.springframework.orm.jpa.vendor.Исключение HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:261)»
Когда я заменяю представление базовым SQL-запросом, оно работает в SpringBoot. Не могли бы вы, пожалуйста, сообщить мне, где я ошибаюсь?
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString
@Entity
@Table(name = "location_view")
public class Location{
@Id
@Column(name = "id")
long id;
@Column(name = "name")
String name;
@Column(name = "total")
long total;
@Column(name = "created_by")
long createdBy;
@Column(name = "created_on")
Timestamp createdOn;
}
public interface LocationDAO extends JpaRepository<Location, Long> {
@Query(value = "select * from location_view", nativeQuery = true)
List<Location> getLocations();
}
В моем контроллере я вызываю LocationDAO.getLocations();
Ответ №1:
Возможно, таблица/представление находится в другой схеме? Или, может быть, у пользователя для подключения JDBC нет разрешения на чтение из этой таблицы/представления?
Я выполняю пакетное обновление hibernate jpa и даю мне следующую ошибку
2015-04-21 15:53:51,907 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-283 (HornetQ-client-global-threads-462057890)) SQL Error: 0, SQLState: 42P01
2015-04-21 15:53:51,908 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-283 (HornetQ-client-global-threads-462057890)) ERROR: relation "my_seq_gen" does not exist
Я использую базу данных postgres, и мой идентификатор сгенерирован автоматически
@Id
@SequenceGenerator(name="seq-gen",sequenceName="MY_SEQ_GEN"initialValue=205, allocationSize=12)
@GeneratedValue(strategy= GenerationType.SEQUENCE, generator="seq-gen")
@Column(name=""ID"",unique=true,nullable=false)
private int id;
Это мой фрагмент кода вставки пакета
getEm().getTransaction().begin();
System.out.println("transaction started--------------");
try {
for (Receipt ReceiptEntity : arrReceiptEntity) {
getEm().persist(ReceiptEntity);
}
getEm().getTransaction().commit();
System.out.println("commited");
} catch (Exception exception) {
System.out.println("error----------------------------------------------------------------------");
if(getEm().getTransaction().isActive())
getEm().getTransaction().rollback();
LOG.error(exception);
} finally {
getEm().flush();
getEm().clear();
getEm().close();
}
Я добавил следующее свойство в persistence.xml
<property name="hibernate.id.new_generator_mappings" value="true"/>
Пожалуйста, предложите, что я делаю неправильно.
В чем ошибка протсо хочу вывести содежимое?
psycopg2.errors.UndefinedTable: ОШИБКА: отношение «orders» не существует
LINE 1: SELECT * FROM Orders WHERE id = 1
таблица Orders есть
вот код хочу просто вывести соержимое
import psycopg2
con = psycopg2.connect(
host='localhost',
database='Drive_in',
user='postgres',
password='42661902',
port=5432
)
cur = con.cursor()
cur.execute("SELECT * FROM Orders WHERE id = 1")
rows = cur.fetchall()
for i in rows:
print(f"id{i[0]}name{i[1]}")
cur.close()
con.close()
-
Вопрос заданболее двух лет назад
-
2490 просмотров
Пригласить эксперта
ОШИБКА: отношение «orders» не существует
LINE 1: SELECT * FROM Orders WHERE id = 1
таблица Orders есть
Так есть у вас какая таблица? Orders или orders? Это две разные таблицы. Таблицы orders у вас нет и вы пытаетесь обращаться именно к ней. Если вы думаете, что так вы будете обращаться к таблице Orders — прочитайте мануал, это не так.
-
Показать ещё
Загружается…
14 июн. 2023, в 01:02
5000 руб./за проект
13 июн. 2023, в 23:37
1000 руб./в час
13 июн. 2023, в 23:22
15000 руб./за проект