Средства доступа к данным
Московский
государственный университет путей сообщения (МИИТ)
Кафедра
«Автоматизированные системы управления»
Отчет
по
лабораторной работе №2
на
тему
«Средства
доступа к данным»
по
дисциплине «Корпоративные информационные системы»
Вариант
6
Выполнил ст.гр.
УВА-411:
Иванов П.С.
Проверил:
Варфоломеев А.В.
Москва
2014
Постановка задачи
Разработать программу, обеспечивающую ввод и
редактирование
информации
об объектах в соответствии с заданной предметной областью.
Информация об объектах должна храниться в
отдельной базе данных. Доступ к данным осуществляется с использованием средств
JDBC или ODBC.
Вариант:
доступ данные информация
Исходный код
программы
create database
agenstvo;agenstvo;table kategor (id_kt integer not null, name char (32));table
news (id_kt integer not null,id_nws integer not null, name char(150), red
char(32), mesto char(32));into kategor values (1, 'Спорт');into
kategor values (2, 'Политика');into
kategor values (3, 'АВТО');
insert into news values (1,1,'Форвард «Зенита»
Халк: В России с расизмом не сталкивался»','Чемпионат.com', 'Россия');into news
values (1,2,'«Локомотив» - чемпион по тренерским
отставкам','Чемпионат.com','РФПЛ');into news values (1,3,'5 выводов после матча
«Бенфика» - «Зенит»','Sportbox','Группа C');into news values (2,4,'Взаимные
санкции РФ и Запада','Lenta.ru','За рубежом');into news values
(2,5,'Большинство шотландцев не поняли, какие полномочия обещает им
Лондон','РИА Новости','За рубежом');into news values (2,6,'Единороссы получили
свою Мосгордуму','«Коммерсантъ-Online»','Москва');into news values
(3,7,'Renault показала автомобиль с расходом 1 литр','АВТО-mail','Парижский
автосалон');into news values (3,8,'По дорогам России и Белоруссии ездят сотни
машин-двойников','АВТО-mail','Россия');into news values (3,9,'Автомобили Lada
хотят собирать в Африке','«Коммерсант»','В мире');
ALTER TABLE kategorPRIMARY KEY
(id_kt);TABLE newsPRIMARY KEY (id_nws);TABLE newsFOREIGN KEY (id_kt)kategor
(id_kt) on delete cascade;kic2;
java.sql.*;class KIC2
{Connection con = null; // соединение
с
БДStatement
stmt = null; // оператор
// КонструкторKIC2(String
DBName, String ip, int port) throws Exception
{
// подключаю
драйвер.forName("com.mysql.jdbc.Driver").newInstance();
// устанавливаю
соединение
с
БДurl
= "jdbc:mysql://localhost:3306/agenstvo";=
DriverManager.getConnection(url, "root", "root");=
con.createStatement();
}
// Завершение
работыvoid
stop() throws SQLException
{.close();
}
// Добавление
категорииboolean
addKategor(int idkt, String namekt)
{sql = "INSERT INTO kategor
(ID_kt, NAME)" + "VALUES ("+idkt+",
'"+namekt+"')";
{.executeUpdate(sql);.out.println("Категория
"+namekt+ " успешно
добавлена!");true;
} (SQLException e)
{.out.println("ОШИБКА! Категория
"+namekt+" не добавлена!");
System.out.println(" >>
"+e.getMessage());
return false;
}
}
// Добавление новости в категорию
public boolean addNews(int idkt, int
idnws, String name, String red, String mesto)
{sql = "INSERT INTO news
(ID_kt, ID_nws, name, red, mesto )" + "VALUES ("+idkt+",
"+idnws+", '"+name+"', '"+red+"',
'"+mesto+"')";
{.executeUpdate(sql);.out.println("Новость
"+idnws+ name+ " успешно
добавлена!");true;
} (SQLException e)
{.out.println("ОШИБКА!
Новость
"+idnws+ name+" не
добавлена!");.out.println("
>> "+e.getMessage());false;
}
}
// Удаление
категорииboolean
deleteKategor(int id) throws SQLException
{sql = "DELETE FROM kategor
WHERE ID_kt = "+id;
{c = stmt.executeUpdate(sql);
if (c>0)
{.out.println("Категория с идентификатором
"+ id +" успешно удалена!");true;
}
{.out.println("Категория с идентификатором
"+ id +" не найдена!");
return false;
}
} (SQLException e)
{.out.println(
"ОШИБКА при удалении страны с
идентификатором "+id);
System.out.println(" >>
"+e.getMessage());false;
}
}
// Удаление
новостиboolean
deleteNews(int id) throws SQLException
{sql = "DELETE FROM news WHERE
ID_nws = "+id;
{c = stmt.executeUpdate(sql);
if (c>0)
}
{.out.println("Новость с идентификатором
"+ id +" не найдена!");
return false;
}
} (SQLException e)
{.out.println(
"ОШИБКА при удалении новости с
идентификатором "+id);
System.out.println(" >>
"+e.getMessage());false;
}
}
// Запрос
всех
категорийvoid
showKategor()
{sql = "SELECT ID_kt, NAME FROM
kategor";
{rs = stmt.executeQuery(sql);
System.out.println("СПИСОК
Категорий:");
while (rs.next())
{id =
rs.getInt("ID_kt");name =
rs.getString("NAME");.out.println(" >> "+ id + "
- " + name);
}.close();
} catch (SQLException e)
{.out.println(
"ОШИБКА при получении списка
категорий");
System.out.println(" >>
"+e.getMessage());
}
}
// Запрос
всех
Новостейvoid
showNews()
{sql = "SELECT * FROM
news";
{rs = stmt.executeQuery(sql);
System.out.println("СПИСОК
Новостей:");
while (rs.next())
{
//int idkt =
rs.getInt("ID_kt");id = rs.getInt("ID_nws");name =
rs.getString("NAME");red = rs.getString("red");mesto =
rs.getString("mesto"); .out.println(" ID:"+ id + " Имя:
" + name + " Редакция:
" + red + " Место:"
+ mesto);
}.close();
} (SQLException e)
{.out.println("ОШИБКА при получении списка
новостей");
System.out.println(" >>
"+e.getMessage());
}
}
//Изменить
категориюboolean
EditKategor(int id,String newname) throws SQLException
{sql = "Update kategor set
NAME='"+newname+"' WHERE ID_kt = "+id;
c = stmt.executeUpdate(sql);
if (c>0)
{.out.println("Категория с идентификатором
"+ id +" изменена!");true;
}
{.out.println("Категория с идентификатором
"+ id +"не изменена т.к нет такой категории!");
return false;
}
}
//Изменить
новостьboolean
EditNews(int id,String newname, String newred, String newmesto ) throws
SQLException
{sql = "Update news set
NAME='"+newname+"',RED='"+newred+"',MESTO='"+newmesto+"'
WHERE ID_nws = "+id;
c = stmt.executeUpdate(sql);
if (c>0)
{
.out.println("Новость с идентификатором
"+ id +" успешно изменена!");true;
}
{.out.println("Новость с идентификатором
"+ id +"не изменена т.к новости с таким id нет!");false;
}
}
//Поиск категории по id
public void PoiskpoKategor(int id)
throws SQLException
{sql = "SELECT ID_kt, name FROM
kategor WHERE ID_kt = " + id;
{rs = stmt.executeQuery(sql); (
rs.next()==true)
{.out.println("Категория:");=
rs.getInt("ID_kt");name =
rs.getString("name");.out.println(" >> "+ id + "
- " +name );
}
{.out.println("категории с таким айди не
существует!");
}.close();
} (SQLException e)
{.out.println(
"ОШИБКА при получении категории " );
System.out.println(" >>
"+e.getMessage());
}
}
{sql = "SELECT ID_nws,
name,red,mesto FROM news WHERE ID_nws = " + id;
{rs = stmt.executeQuery(sql); (
rs.next()==true)
{.out.println("Новость:");=
rs.getInt("ID_nws");name = rs.getString("name");red =
rs.getString("red");mesto = rs.getString("mesto");.out.println("
>> "+ id + " - " +name +" "+red+ "
"+mesto );
}
{.out.println("Новости с таким айди не
существует!");
}.close();
} (SQLException e)
{.out.println(
"ОШИБКА при получении новости " );
System.out.println(" >>
"+e.getMessage());
}
}
//Показать
новости
конкретной
категорииvoid
NewsofKategor (int id) throws SQLException
{sql = "SELECT ID_kt,ID_nws,
name FROM news WHERE ID_kt = " + id;
{rs = stmt.executeQuery(sql); (
rs.next()==true)
{
{.out.println("Новость:");=
rs.getInt("ID_kt");idn=rs.getInt("ID_nws");name =
rs.getString("name");
//String red =
rs.getString("red");
//String mesto =
rs.getString("mesto");.out.println(" >> id категории:
"+ id + " >>id новости:
" +idn+ " - "+name /*+" "+red+ " "+mesto*/
);
}(rs.next());
}
{.out.println("Новости
нет,
т.к
категрии
не
существует!");
}.close();
} (SQLException e)
{.out.println(
"ОШИБКА при получении новости " );
System.out.println(" >>
"+e.getMessage());
}
}
//static void main(String[] args)
throws Exception
{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);.PoiskpoNews(10);
//agenstvo.NewsofKategor(2);
//agenstvo.showKategor();
}
}
Описание программы
class KIC2- класс,содержащий в себе методы по
побработке данных и т.дpublic KIC2(String
DBName, String ip, int port)) - конструктор
с
параметрами.
В
теле конструктора происходит подключение драйвера, устанавливается соединение с
БД.void stop() - завершение работы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)void PoiskpoKategor (int id) -
метод, позволяющий выводить информацию о заданной категории. На вход принимается
id, по которому будем производить поискvoid PoiskpoNews (int id) - метод,
позволяющий выводить информацию о заданном новости. На вход принимается id, по
которому будем производить поискvoid NewsofKategor (int id) - метод,
позволяющий вывести на экран новости конкретной категории.
public boolean EditKategor(int id,String
newname)-
метод, позволяющий изменять существующую категорию. На вход принимаются
параметры: id группы, новое имяboolean EditNews(int id,String newname, String
newred, String newmesto ) - метод, позволяющий изменять существующую новость
public static void main(String[]
args) - основная
логика
приложения
ER-модель базы данных