PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Вмъкване на подготвен израз в база данни - PSQL

Не сте разбрали връщаната стойност на PreparedStatement#execute() .

Моля, прочетете внимателно javadoc:

Връща:

true ако първият резултат е ResultSet обект; false ако първият резултат е броене на актуализации или няма резултат.

По този начин връща — както се очаква напълно — false на INSERT запитване. Връща само true на SELECT заявка (за която обаче обикновено бихте искали да използвате executeQuery() вместо това, което връща директно ResultSet ).

Ако се интересувате от засегнатите редове, по-скоро използвайте PreparedStatement#executeUpdate() вместо. Връща int според javadoc:

Връща:

или (1) броят на редовете за изрази SQL Data Manipulation Language (DML), или (2) 0 за SQL изрази, които не връщат нищо

След това върната стойност от 1 или по-голяма би означавала успешно вмъкване.

Несвързани към конкретния проблем:вашият код изтича DB ресурси. Моля, прочетете внимателно Колко често трябва да се затварят Connection, Statement и ResultSet в JDBC?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранение на часовата зона във времеви печат на тип данни с часова зона

  2. psql:не можа да се свърже със сървъра:Връзката е отказана Грешка при свързване към отдалечена база данни

  3. Създаване и изтриване на PostgreSQL база данни в Ubuntu 16.04

  4. Таблици и индекси спрямо HDD и SSD

  5. Грешка в колоната на SQL заявката не съществува