Создаем базу данных в 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 автоматически обнаруживать драйверы (если они достаточно новые), поэтому вызов лишний, но по привычке многие все еще используют его."
Удалить