Міністерство освіти, науки, молоді і спорту України
Національний університет «Львівська політехніка»
Звіт
До лабораторної роботи №3
З дисципліни «Технології об'єктно-орієнтованого програмування»
На тему «Розробка веб-ужитку для роботи з базою даних у форматі MySQL»
Львів-2012
Порядок виконання роботи
1. Встановити на комп’ютер сервер для розміщення веб-ужитків враховуючи обрану мову програмування, наприклад, Apache Tomcat, GlassFish, Internet Information Server, ASP.NET Development Server, і перевірити його роботу.
2. Використовуючи додаткову літературу, приклади програмного коду, можливості обраноих мови та середовища програмування, розробити веб-ужиток трирівневої (three-tier) архітектури для роботи з базою даних з ЛР № 1.
3. Використовуючи оператори та функції мови SQL, створити запити до таблиць баз даних відповідно до варіанту індивідуального завдання:
для обчислення і виведення на екран мінімального або максимального значення поля (оператор SELECT …, функції MIN та MAX);
для обчислення і виведення на екран суми або середнього значення поля (оператор SELECT, функції SUM та AVG);
для обчислення і виведення на екран кількості елементів із заданим значенням поля або із заданого проміжку значень поля (оператор SELECT … WHERE …, функція COUNT).
В умовах запитів передбачити, щоб їх дія поширювалась лише на частину записів у відповідній таблиці, тобто стосувалась не всіх записів, але хоча б одного. Для цього можливо слід внести відповідні зміни у дані з таблиць, або параметри запитів.
4. Розмістити ужиток на веб-сервері і перевірити його роботу. Результати виконання запитів вивести на екран при звертанні до ужитку через браузер.
5. Використовуючи веб-форми, доповнити ужиток можливостями задавати користувачем параметри запитів під час виконання.
6. У звіті по роботі навести умови запитів, код створених запитів на мові SQL та результати їх виконання, тексти відповідних програмних модулів, екранограми веб-сторінок та їх код на мові HTML.
Список літератури
1. Ying Bai. Practical Database Programming With Visual C#.NET. – Wiley, 2010. – 919 p.
2. Ying Bai. Practical Database Programming with Java. –Wiley, 2011. – 790 p.
3. Mark Matthews, Jim Cole, Joseph D. Gradecki. MySQL and Java Developer's Guide. –Wiley, 2003. – 433 p.
4. Budi Kurniawan. Java for the Web with Servlets, JSP, and EJB: A Developer's Guide to J2EE Solutions. – Sams, 2002. – 740 p.
Індивідуальне завдання до лабораторної роботи № 3
9. Страхова компанія.
a) таблиця “Вид страхування”, мінімальне значення комісійної винагороди;
b) таблиця “Виплати”, сума виплати для заданої назви виду страхування з початку 2012 року;
c) таблиця “Угоди”, кількість угод з тарифною ставкою більше 10 %
Результати виконання запитів
Рис.1 результат виконання програми;
Код програми
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class myservlet
*/
@WebServlet("/myservlet")
public class myservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public myservlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter pw = response.getWriter();
pw.println(//"<html>\n" +
//"<head>\n" +
//"<meta http-equic='Content-Type' content='text/html; charset=utf8_general_ci'/n" +
//"<title>Yura</title>/n" +
//"</head>/n" +
//"<body>/n" +
"<form method='get' action='myservlet'>"+
"<input type='text' name='textfield' value='vvedit vud strahyvannay:' size='100'> " +
"<input type='submit' value='OK'>"+
"</form>");
String value = request.getParameter("textfield");
String str1=zaputp();
int str2=zaputp1(value);
String str3=zaputp2();
response.getWriter().print("minimalne znachennya komisiinoi vunagorodu="+str1 +"</br>");
response.getWriter().print("suma za 2012 rik"+str2+"</br>");
///response.getWriter().print("znachennya"+value+"</br>");
response.getWriter().print("bilshe 10% kilkist ygod "+str3);
// String
response.getWriter().print(vuv1());
response.getWriter().print(vuv2());
response.getWriter().print(vuv3());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
public String zaputp(){
String str="";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet rs1 = null;
try {
// Class.forName("com.mysql.jdbc.Driver");
// con = DriverManager.getConnection("jdbc:mysql://localhost/usda15");
//super.init(config);
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/num2";
con = DriverManager.getConnection(url, "root", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT MIN(komisiina_vunagoroda) FROM vud_strahyvannya");
rs.next();
str = rs.getInt(1)+"";
// printString(str);
/// rs = stmt.executeQuery("SELECT * FROM vud_strahyvannya WHERE komisiina_vunagoroda="+str);
// while (rs.next()) {
// str ="kod vudy:"+ rs.getInt(1) + " nazva:" + rs.getString(2)+" komisiina vunagoroda:"+rs.getInt(3);
// System.out.println(str);
//}
// System.out.println("успіх");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
System.err.println("Error: " + ex.getMessage());
}
}
return str;
}
public int zaputp1(String qwe){
String str="";
int ch=0;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet rs1 = null;
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/num2";
con = DriverManager.getConnection(url, "root", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM vud_strahyvannya WHERE nazva='"+qwe+"'");
rs.next();
str=rs.getString(1);
int j=0;
rs1 = stmt.executeQuery("SELECT * FROM ygodu WHERE kod_vudy_strahyvannya='"+str+"'");
String str1[]=new String[100];
while (rs1.next()) {
str1[j]=rs1.getString(1);
System.out.println(str1[j]);
j++;
}
//rs = stmt.executeQuery("SELECT SUM(suma_vuplatu) FROM vupalty WHERE YEAR(data_vuplaty)=2012 AND (SELECT kod_vudy_strahyvannya FROM ygodu WHERE kod_vudy_strahyvannya="+qwe);
ch=0;
for (int k=0;k<j;k++){
rs=stmt.executeQuery("SELECT * FROM vupalty WHERE nomer_ygodu='"+str1[k]+"'");
rs.next();
System.out.println(ch);
ch=ch+rs.getInt(4);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
System.err.println("Error: " + ex.getMessage());
}
}
return ch;
}
public String zaputp2(){
String str="";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet rs1 = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/num2";
con = DriverManager.getConnection(url, "root", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT COUNT(tarufna_stavka) FROM ygodu WHERE tarufna_stavka>10");
rs.next();
str = rs.getInt(1)+"";
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
System.err.println("Error: " + ex.getMessage());
}
}
return str;
}
public String vuv1(){
String str="";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet rs1 = null;
try {Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/num2";
con = DriverManager.getConnection(url, "root", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM vupalty");
str="<table border='1'><caption>Vuplaty</caption>";
while (rs.next()) {
str += "<tr>" + "<td>"+rs.getInt(1) + "</td>" + "<td>"+rs.getInt(2)+"</td>"+"<td>"+rs.getDate(3)+"</td>"+"<td>"+rs.getInt(4)+"</td></tr>";
//printString(str);
//str+=("<br />"+str);
// System.out.println(str);
}
str += "</table>";
System.out.println("успіх");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
System.err.println("Error: " + ex.getMessage());
}
}
return str;
}
public String vuv2(){
String str="";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet rs1 = null;
try {Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/num2";
con = DriverManager.getConnection(url, "root", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM vud_strahyvannya");
str="<table border='1'><caption>vud_strahyvannya</caption>";
while (rs.next()) {
str += "<tr>" + "<td>"+rs.getInt(1) + "</td>" + "<td>"+rs.getString(2)+"</td>"+"<td>"+rs.getInt(3)+"</td></tr>"+"<td>";
}
str += "</table>";
System.out.println("успіх");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
System.err.println("Error: " + ex.getMessage());
}
}
return str;
}
public String vuv3(){
String str="";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
ResultSet rs1 = null;
try {Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/num2";
con = DriverManager.getConnection(url, "root", "1234");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM ygodu");
str="<table border='1'><caption>ygodu</caption>";
while (rs.next()) {
str += "<tr>" + "<td>"+rs.getInt(1) + "</td>" + "<td>"+rs.getDate(2)+"</td>"+"<td>"+rs.getInt(3)+"</td>"+"<td>"+rs.getInt(4)+"</td>"+"<td>"+rs.getInt(5)+"</td>"+"<td>"+rs.getInt(6)+"</td></tr>"+"<td>";
}
str += "</table>";
System.out.println("успіх");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
System.err.println("Error: " + ex.getMessage());
}
}
return str;
}
}
Висновок: на цій лабораторні роботі я розробив веб-ужиток за допомогою java dynamic web project для роботи з базою даних з першої лабораторної роботи. Створений веб-ужиток розмістив на сервері Tomcat.