Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

" 12345, 'Cocomo', 'Joe', 3001, "

+ "'Caribbean', 'Miami', '1/1/2004', '3')";

statement1.executeUpdate(insertStatement);

System. out. println("Table TicketRequest populated");

//Закрыть соединение

dbConn. close();

}catch(ClassNotFoundException cnfe)

{

System. err. println(cnfe);

}

catch (SQLException sqle)

{

System. err. println(sqle);

}

catch (Exception e)

{

System. err. println(e);

}

}//main

}//class

При создании записей различаются только SQL запросы.

insertStatement = "INSERT INTO TicketRequest VALUES(" +

" 13, 'Beasley', 'Demarcus', 3001, "

+ "'Caribbean', 'Miami', '1/1/2004', '3')";

Надо быть очень внимательным при создании таких запросов. Малейшая ошибка может очень трудно обнаруживаться.

А теперь выполняем запрос:

statement1.executeUpdate(insertStatement);

Открытие и закрытие соединения с базой данных идентично предыдущему примеру. Посмотрим в MS Access, как выглядит наша таблица. Рис. 19.8 показывает нашу таблицу.

Рис. 19.8.Заполнение таблицы с помощью JDBC и SQL.

Отметим, что все данные имеют тот тип, который мы указали при создании таблицы.

Изменение данных в таблице с помощью JDBC

Другая часто встречающаяся задача – обновление или изменение данных в таблице. Мы создадим приложение с графическим интерфейсом для изменения данных в таблице. Листинг 19.6 содержит код такого приложения.

Листинг 19.6 Файл TestTableAlteration. java

/*

* TestTableAlteration. java

*/

import javax. swing.*;

НЕ нашли? Не то? Что вы ищете?

import java. awt.*;

import java. awt. event.*;

import java. sql.*;

public class TestTableAlteration extends JFrame implements ActionListener

{

//Информация о customer

private int custID;

private String lastName;

private String firstName;

// Информация о cruise

private int cruiseID;

private String destination;

private String port;

private String sailing;

private int numberOfTickets;

JTextField tfCustID;

JTextField tfLastName;

JTextField tfFirstName;

JTextField tfCruiseID;

JTextField tfDestination;

JTextField tfPort;

JTextField tfSailing;

JTextField tfNumberOfTickets;

JLabel lCustID = new JLabel("CustID");

JLabel lLastName = new JLabel("LastName");

JLabel lFirstName = new JLabel("FirstName");

JLabel lCruiseID = new JLabel("CruiseID");

JLabel lDestination = new JLabel("Destination");

JLabel lPort = new JLabel("Port ");

JLabel lSailing = new JLabel("Sailing");

JLabel lNumberOfTickets = new JLabel("Number of Tickets");

JButton btnRetrieve;

JButton btnStore;

java. sql. Connection dbConn = null;

Statement statement1 = null;

String createStatement;

String insertStatement;

/** Конструктор TestTableAlteration */

public TestTableAlteration()

{

tfCustID = new JTextField(20);

tfLastName = new JTextField(20);

tfFirstName = new JTextField(20);

tfCruiseID = new JTextField(20);

tfDestination = new JTextField(20);

tfPort = new JTextField(20);

tfSailing = new JTextField(20);

tfNumberOfTickets = new JTextField(15);

btnRetrieve = new JButton("Retrieve");

btnStore = new JButton("Store");

this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);

JPanel p1 = new JPanel();

p1.add(lCustID);

p1.add(tfCustID);

p1.add(lLastName);

p1.add(tfLastName);

p1.add(lFirstName);

p1.add(tfFirstName);

p1.add(lCruiseID);

p1.add(tfCruiseID);

p1.add(lDestination);

p1.add(tfDestination);

p1.add(lPort);

p1.add(tfPort);

p1.add(lSailing);

p1.add(tfSailing);

p1.add(lNumberOfTickets);

p1.add(tfNumberOfTickets);

p1.add(btnRetrieve);

p1.add(btnStore);

btnRetrieve. addActionListener(this);

btnStore. addActionListener(this);

getContentPane().add(p1);

setTitle("Altering Table Data");

setBounds( 100, 100, 315, 300);

setVisible(true);

}

public void actionPerformed(ActionEvent ae)

{

if (ae. getActionCommand().equals("Retrieve"))

{

System. out. println("btnRetrieve clicked");

if (tfCustID. getText().equals(""))

System. out. println("please enter a CustID");

else

{

System. out. println("CustID = " + tfCustID. getText());

this. custID = Integer. parseInt(tfCustID. getText());

retrieveFromDB();

tfLastName. setText(lastName);

tfFirstName. setText(firstName);

tfCruiseID. setText(Integer. toString(cruiseID));

tfDestination. setText(destination);

tfPort. setText(port);

tfSailing. setText(sailing);

tfNumberOfTickets. setText(Integer. toString(numberOfTickets));

}

}

if (ae. getActionCommand().equals("Store"))

{

System. out. println("btnStore clicked");

if (tfCustID. getText().equals(""))

System. out. println("please enter a CustID");

else

{

updateDB();

}

}

}

public String updateDB()

{

try

{

// ============== Make connection to database ==================

connectToDB();

lastName = tfLastName. getText();

firstName = tfFirstName. getText();

String strCruiseID = tfCruiseID. getText();

destination = tfDestination. getText();

port = tfPort. getText();

sailing = tfSailing. getText();

String strNumberOfTickets = tfNumberOfTickets. getText();

//Обновить Last Name

String updateString =

"Update TicketRequest " +

"SET lastName = '" + lastName + "' " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

//Обновить First Name

updateString =

"Update TicketRequest " +

"SET firstName = '" + firstName + "' " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

//Обновить Cruise ID

updateString =

"Update TicketRequest " +

"SET cruiseID= " + strCruiseID + " " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

//Обновить destination

updateString =

"Update TicketRequest " +

"SET destination = '" + destination + "' " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

//Обновить port

updateString =

"Update TicketRequest " +

"SET port = '" + port + "' " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

//Обновить sailing

updateString =

"Update TicketRequest " +

"SET sailing = '" + sailing + "' " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

//Обновить number of tickеts

updateString =

"Update TicketRequest " +

"SET numberOfTickets = " + strNumberOfTickets + " " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

return "Successful Update";

} catch (Exception e)

{

System. out. println("Exception was thrown: " + e. getMessage());

return "UnSuccessful Retrieval";

} finally

{

try

{

if (statement1 != null)

statement1.close();

if (dbConn!= null)

dbConn. close();

} catch (SQLException sqle)

{

System. out. println("SQLException during close(): " +

sqle. getMessage());

}

}

}

public String retrieveFromDB()

{

try

{

// ============== Make connection to database ==================

connectToDB();

//Получить данные

String getString =

"SELECT * FROM TicketRequest " +

"WHERE CustID = " + custID;

ResultSet results = statement1.executeQuery(getString);

lastName = "record not found";

firstName = "";

cruiseID = 0;

destination = "";

port = "";

sailing = "";

numberOfTickets = 0;

while (results. next())

{

lastName = results. getString("lastName");

firstName = results. getString("firstName");

cruiseID = results. getInt("cruiseID");

destination = results. getString("destination");

port = results. getString("port");

sailing = results. getString("sailing");

numberOfTickets = results. getInt("numberOfTickets");

}

return "Successful Retrieval";

} catch (Exception e)

{

System. out. println("Exception was thrown: " + e. getMessage());

return "UnSuccessful Retrieval";

} finally

{

try

{

if (statement1 != null)

statement1.close();

if (dbConn!= null)

dbConn. close();

} catch (SQLException sqle)

{

System. out. println("SQLException during close(): " +

sqle. getMessage());

}

}

}

private void connectToDB()

{

try

{

// ============== Make connection to database ==================

//Загрузить класс драйвера

Class. forName("sun. jdbc. odbc. JdbcOdbcDriver");

//Указать источник ODBC

String sourceURL = "jdbc:odbc:TicketRequest";

//Получить соединение с базой данных

dbConn = DriverManager. getConnection(sourceURL);

//Все в порядке

System. out. println("The database connection is " + dbConn);

System. out. println("Making connection...\n");

//Создать предложение

statement1 = dbConn. createStatement();

} catch (Exception e)

{

System. out. println("Exception was thrown: " + e. getMessage());

}

}

public static void main(String[] args)

{

TestTableAlteration tta = new TestTableAlteration();

}

}

}

Этот пример имеет графический интерфейс, поэтому мы реализуем интерфейс:

public class TestTableAlteration extends JFrame implements ActionListener

Мы определили две кнопки:

JButton btnRetrieve;

JButton btnStore;

Метод actionPerformed() вызывается при нажатии на кнопки:

public void actionPerformed(ActionEvent ae)

{

Кнопка "Retrieve" загружает custID, а затем вызывает метод retrieveFromDB() для получения данных из базы.

if (ae. getActionCommand().equals("Retrieve"))

{

System. out. println("btnRetrieve clicked");

if (tfCustID. getText().equals(""))

System. out. println("please enter a CustID");

else

{

System. out. println("CustID = " + tfCustID. getText());

this. custID = Integer. parseInt(tfCustID. getText());

retrieveFromDB();

После завершения метода данные из полей класса загружаются в текстовые поля:

tfLastName. setText(lastName);

tfFirstName. setText(firstName);

tfCruiseID. setText(Integer. toString(cruiseID));

tfDestination. setText(destination);

tfPort. setText(port);

tfSailing. setText(sailing);

tfNumberOfTickets. setText(Integer. toString(numberOfTickets));

Кнопка "Store" вызывает метод updateDB():

if (ae. getActionCommand().equals("Store"))

{

System. out. println("btnStore clicked");

if (tfCustID. getText().equals(""))

System. out. println("please enter a CustID");

else

{

updateDB();

}

}

}

Метод updateDB() сохраняет данные в базу:

public String updateDB()

Мы соединяемся с базой:

connectToDB();

Затем мы переносим значения из текстовых полей в поля класса:

lastName = tfLastName. getText();

firstName = tfFirstName. getText();

String strCruiseID = tfCruiseID. getText();

destination = tfDestination. getText();

port = tfPort. getText();

sailing = tfSailing. getText();

String strNumberOfTickets = tfNumberOfTickets. getText();

Наконец, мы обновляем все данные, потому что не знаем, какие поля изменились. Можно было бы определять, какие поля изменились, но для небольших таблиц это не имеет смысла делать:

//Обновить Last Name

String updateString =

"Update TicketRequest " +

"SET lastName = '" + lastName + "' " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

.

.

.

// Обновить number of tickеts

updateString =

"Update TicketRequest " +

"SET numberOfTickets = " + strNumberOfTickets + " " +

"WHERE CustID = " + custID;

System. out. println(updateString);

statement1.executeUpdate(updateString);

Результат запуска этой программы показан на рис. 19.9.

Рис. 19.9. Обновление данных с помощью JDBC и SQL.

Заметим, что Last Name и number of tickets изменились.

Заключение

В этой главе мы посмотрели, как можно создавать приложения на Java для работы с базами данных. Мы научились создавать таблицы, заполнять их, изменять в них данные.

В заключение мы создали приложение с графическим интерфейсом для замены данных в базе.

Контрольные вопросы

Чем база данных отличается от обычного файла? Что такое JDBC? Как с помощью SQL добавлять данные в базу? Как создать таблицу в базе данных?

Упражнения

1:

Создайте таблицы с информацией об автомобилях..

2:

Заполнить таблицы данными об автомобилях..

3:

Создать приложение с графическим интерфейсом, который позволит получать и изменять данные в таблицах.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4