Міністерство освіти, науки, молоді і спорту України
Національний університет «Львівська політехніка»
Звіт
До лабораторної роботи №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.