Средства доступа к данным

Московский государственный университет путей сообщения (МИИТ)

Кафедра «Автоматизированные системы управления»

Отчет

по лабораторной работе №2

на тему

«Средства доступа к данным»

по дисциплине «Корпоративные информационные системы»

Вариант 6

Выполнил ст.гр. УВА-411:

Иванов П.С.

Проверил:

Варфоломеев А.В.

Москва 2014

Постановка задачи

Разработать программу, обеспечивающую ввод и редактирование

информации об объектах в соответствии с заданной предметной областью.

Информация об объектах должна храниться в отдельной базе данных. Доступ к данным осуществляется с использованием средств JDBC или ODBC.

Вариант:

доступ данные информация

Исходный код программы

create database agenstvo;

use agenstvo;

create table kategor (id_kt integer not null, name char (32));

create table news (id_kt integer not null,id_nws integer not null, name char(150), red char(32), mesto char(32));

insert into kategor values (1, ‘Спорт’);

insert into kategor values (2, ‘Политика’);

insert into kategor values (3, ‘АВТО’);

insert into news values (1,1,’Форвард «Зенита» Халк: В России с расизмом не сталкивался»’,’Чемпионат.com’, ‘Россия’);

insert into news values (1,2,’«Локомотив» — чемпион по тренерским отставкам’,’Чемпионат.com’,’РФПЛ’);

insert into news values (1,3,’5 выводов после матча «Бенфика» — «Зенит»’,’Sportbox’,’Группа C’);

insert into news values (2,4,’Взаимные санкции РФ и Запада’,’Lenta.ru’,’За рубежом’);

insert into news values (2,5,’Большинство шотландцев не поняли, какие полномочия обещает им Лондон’,’РИА Новости’,’За рубежом’);

insert into news values (2,6,’Единороссы получили свою Мосгордуму’,’«Коммерсантъ-Online»’,’Москва’);

insert into news values (3,7,’Renault показала автомобиль с расходом 1 литр’,’АВТО-mail’,’Парижский автосалон’);

insert into news values (3,8,’По дорогам России и Белоруссии ездят сотни машин-двойников’,’АВТО-mail’,’Россия’);

insert into news values (3,9,’Автомобили Lada хотят собирать в Африке’,’«Коммерсант»’,’В мире’);

ALTER TABLE kategor

ADD PRIMARY KEY (id_kt);

ALTER TABLE news

ADD PRIMARY KEY (id_nws);

ALTER TABLE news

ADD FOREIGN KEY (id_kt)

REFERENCES kategor (id_kt) on delete cascade;

package kic2;

import java.sql.*;

public class KIC2

{

private Connection con = null; // соединение с БД

private Statement stmt = null; // оператор

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

public KIC2(String DBName, String ip, int port) throws Exception

{

// подключаю драйвер

Class.forName(«com.mysql.jdbc.Driver»).newInstance();

// устанавливаю соединение с БД

String url = «jdbc:mysql://localhost:3306/agenstvo»;

con = DriverManager.getConnection(url, «root», «root»);

stmt = con.createStatement();

}

// Завершение работы

public void stop() throws SQLException

{

con.close();

}

// Добавление категории

public boolean addKategor(int idkt, String namekt)

{

String sql = «INSERT INTO kategor (ID_kt, NAME)» + «VALUES («+idkt+», ‘»+namekt+»‘)»;

try

{

stmt.executeUpdate(sql);

System.out.println(«Категория «+namekt+ » успешно добавлена!»);

return true;

}

catch (SQLException e)

{

System.out.println(«ОШИБКА! Категория «+namekt+» не добавлена!»);

System.out.println(» >> «+e.getMessage());

return false;

}

}

// Добавление новости в категорию

public boolean addNews(int idkt, int idnws, String name, String red, String mesto)

{

String sql = «INSERT INTO news (ID_kt, ID_nws, name, red, mesto )» + «VALUES («+idkt+», «+idnws+», ‘»+name+»‘, ‘»+red+»‘, ‘»+mesto+»‘)»;

try

{

stmt.executeUpdate(sql);

System.out.println(«Новость «+idnws+ name+ » успешно добавлена!»);

return true;

}

catch (SQLException e)

{

System.out.println(«ОШИБКА! Новость «+idnws+ name+» не добавлена!»);

Читайте также:  Источники муниципального права РФ

System.out.println(» >> «+e.getMessage());

return false;

}

}

// Удаление категории

public boolean deleteKategor(int id) throws SQLException

{

String sql = «DELETE FROM kategor WHERE ID_kt = «+id;

try

{

int c = stmt.executeUpdate(sql);

if (c>0)

{

System.out.println(«Категория с идентификатором «+ id +» успешно удалена!»);

return true;

}

else

{

System.out.println(«Категория с идентификатором «+ id +» не найдена!»);

return false;

}

}

catch (SQLException e)

{

System.out.println(

«ОШИБКА при удалении страны с идентификатором «+id);

System.out.println(» >> «+e.getMessage());

return false;

}

}

// Удаление новости

public boolean deleteNews(int id) throws SQLException

{

String sql = «DELETE FROM news WHERE ID_nws = «+id;

try

{

int c = stmt.executeUpdate(sql);

if (c>0)

{

System.out.println(«Новость с идентификатором «+ id +» успешно удалена!»);

return true;

}

else

{

System.out.println(«Новость с идентификатором «+ id +» не найдена!»);

return false;

}

}

catch (SQLException e)

{

System.out.println(

«ОШИБКА при удалении новости с идентификатором «+id);

System.out.println(» >> «+e.getMessage());

return false;

}

}

// Запрос всех категорий

public void showKategor()

{

String sql = «SELECT ID_kt, NAME FROM kategor»;

try

{

ResultSet rs = stmt.executeQuery(sql);

System.out.println(«СПИСОК Категорий:»);

while (rs.next())

{

int id = rs.getInt(«ID_kt»);

String name = rs.getString(«NAME»);

System.out.println(» >> «+ id + » — » + name);

}

rs.close();

} catch (SQLException e)

{

System.out.println(

«ОШИБКА при получении списка категорий»);

System.out.println(» >> «+e.getMessage());

}

}

// Запрос всех Новостей

public void showNews()

{

String sql = «SELECT * FROM news»;

try

{

ResultSet rs = stmt.executeQuery(sql);

System.out.println(«СПИСОК Новостей:»);

while (rs.next())

{

//int idkt = rs.getInt(«ID_kt»);

int id = rs.getInt(«ID_nws»);

String name = rs.getString(«NAME»);

String red = rs.getString(«red»);

String mesto = rs.getString(«mesto»);

System.out.println(» ID:»+ id + » Имя: » + name + » Редакция: » + red + » Место:» + mesto);

}

rs.close();

}

catch (SQLException e)

{

System.out.println(«ОШИБКА при получении списка новостей»);

System.out.println(» >> «+e.getMessage());

}

}

//Изменить категорию

public boolean EditKategor(int id,String newname) throws SQLException

{

String sql = «Update kategor set NAME='»+newname+»‘ WHERE ID_kt = «+id;

int c = stmt.executeUpdate(sql);

if (c>0)

{

System.out.println(«Категория с идентификатором «+ id +» изменена!»);

return true;

}

else

{

System.out.println(«Категория с идентификатором «+ id +»не изменена т.к нет такой категории!»);

return false;

}

}

//Изменить новость

public boolean EditNews(int id,String newname, String newred, String newmesto ) throws SQLException

{

String sql = «Update news set NAME='»+newname+»‘,RED='»+newred+»‘,MESTO='»+newmesto+»‘ WHERE ID_nws = «+id;

int c = stmt.executeUpdate(sql);

if (c>0)

{

System.out.println(«Новость с идентификатором «+ id +» успешно изменена!»);

return true;

}

else

{

System.out.println(«Новость с идентификатором «+ id +»не изменена т.к новости с таким id нет!»);

return false;

}

}

//Поиск категории по id

public void PoiskpoKategor(int id) throws SQLException

{

String sql = «SELECT ID_kt, name FROM kategor WHERE ID_kt = » + id;

try

{

ResultSet rs = stmt.executeQuery(sql);

if ( rs.next()==true)

{

System.out.println(«Категория:»);

id = rs.getInt(«ID_kt»);

String name = rs.getString(«name»);

System.out.println(» >> «+ id + » — » +name );

}

else

{

System.out.println(«категории с таким айди не существует!»);

}

rs.close();

}

catch (SQLException e)

{

System.out.println(

«ОШИБКА при получении категории » );

System.out.println(» >> «+e.getMessage());

}

}

//Поиск новости по id

public void PoiskpoNews (int id) throws SQLException

{

String sql = «SELECT ID_nws, name,red,mesto FROM news WHERE ID_nws = » + id;

Читайте также:  Финансовая политика России в современных условиях

try

{

ResultSet rs = stmt.executeQuery(sql);

if ( rs.next()==true)

{

System.out.println(«Новость:»);

id = rs.getInt(«ID_nws»);

String name = rs.getString(«name»);

String red = rs.getString(«red»);

String mesto = rs.getString(«mesto»);

System.out.println(» >> «+ id + » — » +name +» «+red+ » «+mesto );

}

else

{

System.out.println(«Новости с таким айди не существует!»);

}

rs.close();

}

catch (SQLException e)

{

System.out.println(

«ОШИБКА при получении новости » );

System.out.println(» >> «+e.getMessage());

}

}

//Показать новости конкретной категории

public void NewsofKategor (int id) throws SQLException

{

String sql = «SELECT ID_kt,ID_nws, name FROM news WHERE ID_kt = » + id;

try

{

ResultSet rs = stmt.executeQuery(sql);

if ( rs.next()==true)

{

do

{

System.out.println(«Новость:»);

id = rs.getInt(«ID_kt»);

int idn=rs.getInt(«ID_nws»);

String name = rs.getString(«name»);

//String red = rs.getString(«red»);

//String mesto = rs.getString(«mesto»);

System.out.println(» >> id категории: «+ id + » >>id новости: » +idn+ » — «+name /*+» «+red+ » «+mesto*/ );

}

while (rs.next());

}

else

{

System.out.println(«Новости нет, т.к категрии не существует!»);

}

rs.close();

}

catch (SQLException e)

{

System.out.println(

«ОШИБКА при получении новости » );

System.out.println(» >> «+e.getMessage());

}

}

//

public static void main(String[] args) throws Exception

{

KIC2 agenstvo = new KIC2(«agenstvo»,»localhost»,3306);

//agenstvo.addKategor(4,»МcxxИР»);

//agenstvo.addNews(2,10, » Мирвезде»,»Леgfhfнта»,»Планета»);

//agenstvo.deleteKategor(1);

//agenstvo.deleteNews(4);

//agenstvo.showKategor();

//agenstvo.showNews();

//agenstvo.EditKategor(2, «ПФФФФф»);

//agenstvo.EditNews(2,»ппррв»,»ппп»,»африка»);

//agenstvo.PoiskpoKategor(2);

agenstvo.PoiskpoNews(10);

//agenstvo.NewsofKategor(2);

//agenstvo.showKategor();

}

}

Описание программы

public class KIC2- класс,содержащий в себе методы по побработке данных и т.дpublic KIC2(String DBName, String ip, int port)) — конструктор с параметрами. В теле конструктора происходит подключение драйвера, устанавливается соединение с БД.

public void stop() — завершение работы

public void showKategor — метод, который выводит на экран все существующие категории

public void showNews() — метод,который выводит на экран все существующие новости

public boolean addKategor(int idkt, String namekt)) — метод, позволяющий добавить новую категорию. На вход принимаются параметры: новый id, новое имя категории

public boolean addNews(int idkt, int idnws, String name, String red, String mesto) — метод, позволяющий добавить новую новость. На вход принимаются параметры: id категории, в которую будем добавлять, новое id новости, имя, редакцию, место

public boolean deleteKategor(int id) — метод,позволяющий удалить категориию ( по id). public boolean deleteNews(int id) — метод, позволяющий удалить новость ( по id)

public void PoiskpoKategor (int id) — метод, позволяющий выводить информацию о заданной категории. На вход принимается id, по которому будем производить поиск

public void PoiskpoNews (int id) — метод, позволяющий выводить информацию о заданном новости. На вход принимается id, по которому будем производить поиск

public void NewsofKategor (int id) — метод, позволяющий вывести на экран новости конкретной категории.

public boolean EditKategor(int id,String newname)- метод, позволяющий изменять существующую категорию. На вход принимаются параметры: id группы, новое имя

public boolean EditNews(int id,String newname, String newred, String newmesto ) — метод, позволяющий изменять существующую новость

public static void main(String[] args) — основная логика приложения

ER-модель базы данных

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...