Создаем базу данных в PostgreSQL
Создаем новый проект в IDEA (в примере версия 14)
Скачиваем последнюю версию JDBC драйвера с репозитория https://jdbc.postgresql.org/download.html
Добавляем ее в библиотеки
Ну и собственно полный код примера, - вставляем в основной класс и добавляем его вызов в main.
public static void TestDatabase() {
Connection c;
Statement stmt;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager
.getConnection("jdbc:postgresql://localhost:5432/testbase","postgres", "password");
c.setAutoCommit(false);
System.out.println("-- Opened database successfully");
String sql;
//-------------- CREATE TABLE ---------------
stmt = c.createStatement();
sql = "CREATE TABLE COMPANY " +
"(ID INT PRIMARY KEY NOT NULL," +
" NAME TEXT NOT NULL, " +
" AGE INT NOT NULL, " +
" ADDRESS VARCHAR(50), " +
" SALARY REAL)";
stmt.executeUpdate(sql);
stmt.close();
c.commit();
System.out.println("-- Table created successfully");
//--------------- INSERT ROWS ---------------
stmt = c.createStatement();
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 );";
stmt.executeUpdate(sql);
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 );";
stmt.executeUpdate(sql);
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );";
stmt.executeUpdate(sql);
sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );";
stmt.executeUpdate(sql);
stmt.close();
c.commit();
System.out.println("-- Records created successfully");
//-------------- UPDATE DATA ------------------
stmt = c.createStatement();
sql = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;";
stmt.executeUpdate(sql);
c.commit();
stmt.close();
System.out.println("-- Operation UPDATE done successfully");
//--------------- SELECT DATA ------------------
stmt = c.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM COMPANY;" );
while ( rs.next() ) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String address = rs.getString("address");
float salary = rs.getFloat("salary");
System.out.println(String.format("ID=%s NAME=%s AGE=%s ADDRESS=%s SALARY=%s",id,name,age,address,salary));
}
rs.close();
stmt.close();
c.commit();
System.out.println("-- Operation SELECT done successfully");
//-------------- DELETE DATA ----------------------
stmt = c.createStatement();
sql = "DELETE from COMPANY where ID=2;";
stmt.executeUpdate(sql);
c.commit();
stmt.close();
System.out.println("-- Operation DELETE done successfully");
c.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getClass().getName()+": "+e.getMessage());
System.exit(0);
}
System.out.println("-- All Operations done successfully");
}
компилируем, запускаем, в окне вывода видим примерно следующее-- Opened database successfully
-- Table created successfully
-- Records created successfully
-- Operation UPDATE done successfully
ID=2 NAME=Allen AGE=25 ADDRESS=Texas SALARY=15000.0
ID=3 NAME=Teddy AGE=23 ADDRESS=Norway SALARY=20000.0
ID=4 NAME=Mark AGE=25 ADDRESS=Rich-Mond SALARY=65000.0
ID=1 NAME=Paul AGE=32 ADDRESS=California SALARY=25000.0
-- Operation SELECT done successfully
-- Operation DELETE done successfully
-- All Operations done successfully
ну и соответственно результат, - наши записи в базе данных





Спасибо, помогло быстро разобраться.
ОтветитьУдалитьПравда, строчку "Class.forName("org.postgresql.Driver");" можно было не писать.
Нет все-таки лучше писать, так как это сейчас зависит от настроек виртуальной машины. Вот фрагмент коммента из обсуждения: "В эти дни присутствуют волшебные крючки, позволяющие JVM автоматически обнаруживать драйверы (если они достаточно новые), поэтому вызов лишний, но по привычке многие все еще используют его."
Удалить