الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لدي قاعدة بيانات واريد حذف بيانات شخص محدد من القاعدة

بدأه mahmoodsami في 16 مارس 2010 · 8 رد · 870 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لدي قاعدة بيانات فيها بيانات طلاب وباعتباري انا مدير الموقع فاريد حذف معلومات طالب محدد طبقا الى number-id

وهذه البرمجة الخاص بالواجهة المدير :

<%--
    Document   : combo
    Created on : Mar 1, 2010, 8:45:56 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="java.sql.*" %>
<%@page import="java.sql.*,java.io.*,java.net.*" %>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Delete Student From DB</title>
</head>
<body>


<table width="240" height="5" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#66CC33">
<tr>
<td  bgcolor="#3333FF"  align="center" width="240" height="5" valign="top" ></td>
</tr>
<tr>
<td align="center" width="240" valign="top">
<center>
<font color="#FFFFFF" size="5">Delete Student From DB</font>
</center>
</td>
</tr>
<tr>
<td  bgcolor="#66CC33"  align="center" width="240" height="7" valign="top" ></td>
</tr>
<tr>
<td  bgcolor="#3333FF"  align="center" width="240" height="7" valign="top" ></td>
</tr>

<form action="deletestudentpro.jsp" method="get">
<br><br>
<table width="240" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#66CC33">
<tr>
<td  bgcolor="#66CC33"  align="center" width="240" height="15" valign="top" ></td>
</tr>
<%-- select ID --%>
<tr>
<td align="center" valign="baseline" width="90"><font color="#000000" size="1" face="Arial">First Name:</font></td>
<td  align="left" width="150">
	   <select name="id" onchange="showEmp(this.value);">
               <%
Connection conn1 = null;
String driver1 = "com.mysql.jdbc.Driver";

       int sumcount1=0;
	Statement st1;
    try {
      Class.forName(driver1).newInstance();

      conn1 = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
	    String query1 = "select * from students";

       st1 = conn1.createStatement();
	   ResultSet  rs1 = st1.executeQuery(query1);
	   %>

	   <%
	  while(rs1.next())
		{
		  %>

		   <option value="<%=rs1.getString(10)%>"><%=rs1.getString(10)%></option>

  <%
		}
  %>

  <%

	}
	catch (Exception e)
        {
      e.printStackTrace();
        }

%>
 </select>
</td></tr>
<tr>
<td  bgcolor="#66CC33"  align="center" width="240" height="15" valign="top" ></td>
</tr>

<%-- select fNAME --%>
<tr>
<td align="center" valign="baseline" width="90"><font color="#000000" size="1" face="Arial">First Name:</font></td>
<td  align="left" width="150">
	   <select name="name1" onchange="showEmp(this.value);">
               <%
Connection conn2 = null;
String driver2 = "com.mysql.jdbc.Driver";

       int sumcount2=0;
	Statement st2;
    try {
      Class.forName(driver2).newInstance();

      conn2 = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
	    String query2 = "select * from students";

       st2 = conn2.createStatement();
	   ResultSet  rs2 = st2.executeQuery(query2);
	   %>

	   <%
	  while(rs2.next())
		{
		  %>

		   <option value="<%=rs2.getString(3)%>"><%=rs2.getString(3)%></option>

  <%
		}
  %>

  <%

	}
	catch (Exception e)
        {
      e.printStackTrace();
        }

%>
 </select>
</td></tr>
<tr>
<td  bgcolor="#66CC33"  align="center" width="240" height="15" valign="top" ></td>
</tr>
<%-- select lNAME --%>
<tr>
<td align="center" valign="baseline" width="90"><font color="#000000" size="1" face="Arial">Second Name:</font></td>
<td  align="left" width="150">
	   <select name="name2" onchange="showEmp(this.value);">
	   <%
Connection conn = null;
String driver = "com.mysql.jdbc.Driver";

       int sumcount=0;
	Statement st;
    try {
      Class.forName(driver).newInstance();

      conn = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
	    String query = "select * from students";

       st = conn.createStatement();
	   ResultSet  rs = st.executeQuery(query);
	   %>

	   <%
	  while(rs.next())
		{
		  %>

		   <option value="<%=rs.getString(4)%>"><%=rs.getString(4)%></option>

  <%
		}
  %>

  <%

	}
	catch (Exception e)
        {
      e.printStackTrace();
        }

%>
 </select>
</td></tr>

<tr>
<td  bgcolor="#66CC33"  align="center" width="240" height="10" valign="top" ></td>
</tr>

<%-- insert submit and resst --%>
<tr>
<td  align="center"><input align="center" size="5" maxlength="100" type="submit" value="Submit" /></td>
<td  align="center"><input align="center" size="5" maxlength="100" type="reset" value="Reset" /></td>
</tr>


</table>
</form>


<table width="240" height="5" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#66CC33">
<tr>
<td  bgcolor="#66CC33"  align="center" width="240" height="10" valign="top" ></td>
</tr>
<tr>
<td width="240" valign="middle" align="center"><a href=".jsp" >
<STYLE TYPE="text/css">
A { text-decoration: none; }
A:link { color: #000000; }
A:visited { color: #000000; }
</STYLE>
<font face="Arial" color="#000000" size="2">Back</font></a>
</td>
</tr>
<tr>
<td  bgcolor="#66CC33"  align="center" width="240" height="10" valign="top" ></td>
</tr>
</table>

 </body>
</html>

وهذه برمجة الربط بقاعدة البيانات :

<%--
    Document   : deletDBch
    Created on : Mar 10, 2010, 9:00:34 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Delet Evalute DB</title>
    </head>
<body>
    <center> 
<%@ page import="java.sql.*" %>
<%
String userid=request.getParameter("id");
session.putValue("userid",userid);
String fname="?";
String lname="?";
String user="?";
String password="?";
String email="?";
String collegedep="?";
String stagestudy="?";
String countryname="?";
String cityname="?";
String numberid1="?";
String mobileno="?";
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
Statement st= con.createStatement();
rs=st.executeQuery("select * from students");
if(rs.getString(10).equals(userid))
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection con1 = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
Statement st1= con1.createStatement();
int i=st1.executeUpdate("insert into students values ('"+user+"','"+password+"','"+fname+"','"+lname+"','"+email+"','"+collegedep+",'"+stagestudy+",'"+countryname+",'"+cityname+",'"+numberid1+",'"+mobileno+"')");
response.sendRedirect("delettstudent.jsp");
}
else
{
response.sendRedirect("index.jsp");
}
%>

 </center>
    </body>
</html>

وهذه قاعدة البيانات :

DROP TABLE IF EXISTS `mahmood`.`students`;
CREATE TABLE  `mahmood`.`students` (
  `userid` varchar(75) collate utf8_unicode_ci NOT NULL,
  `password` varchar(75) collate utf8_unicode_ci default NULL,
  `fname` varchar(75) collate utf8_unicode_ci default NULL,
  `lname` varchar(75) collate utf8_unicode_ci default NULL,
  `email` varchar(75) collate utf8_unicode_ci default NULL,
  `college dep.` varchar(75) collate utf8_unicode_ci default NULL,
  `stage study` varchar(75) collate utf8_unicode_ci default NULL,
  `country name` varchar(75) collate utf8_unicode_ci default NULL,
  `city name` varchar(75) collate utf8_unicode_ci default NULL,
  `number-id` varchar(75) collate utf8_unicode_ci NOT NULL,
  `mobile no.` bigint(20) default NULL,
  PRIMARY KEY  USING BTREE (`number-id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

فارجو منكم توجيهي الى الحل الصحيح او تصحيح الشئ الخطأ في البرمجة

سلامي

اخوكم

محمود سامي

تم تعديل هذه المشاركة بواسطة mahmoodsami في 16 مارس 2010 في 23:37

#2

السلام عليكم و رحمة الله و بركاته،،

ما المشكلة أخي الكريم؟

من حيث الأسس هذا الكود غير مصمم بنمط MVC و بالتالي من الممكن أن يجلب لك المشاكل و صعوبة التعامل في المستقبل و مع زيادة حجم الكود..

هل تريد تنقيح على مستوى الفكرة؟ أم على مستوى الكود المكتوب؟

أرجو تحديد المطلوب بالضبط..

تحياتي،،

n622971709_461151_8573.jpg
#3

لا أرجوك إلا كما رجاك أخي محمد!!!.

#4

السم عليكم ورحمة الله وبركاته

شكرا لك اخي محمد رياض الخضري

اخي ماذا تقصد بـ ( من حيث الأسس هذا الكود غير مصمم بنمط MVC و بالتالي من الممكن أن يجلب لك المشاكل و صعوبة التعامل في المستقبل و مع زيادة حجم الكود). ارجو توضيح ذلك حتى يكون لدي علم وفهم لهذه الملاحظة

اذا كان الكود بماكانك تصحيحه فانا اريد تصحيح على اساس الكود الموجود

اما اذا كان التنقيح على اساس الفكرة الصحيحة يجعل من عملى جيد فارجو التصحيح على اساسه ( الفكرة الصحيحة )

انتظر ردك اخي

سلامي

اخوك

محمود سامي

#5

السلام عليكم.

فكرة تحويل الكود إلى MVC قد تكون مكلفة(زمنياً) حالياً، وإذا كنت لا تملك فكرة جيدة عن MVC فلا أنصحك بالتفكير بها حاليا إذا كنت تطلب السرعة في العمل حاليا.

أما بالنسبة لجعل هذا الكود MVC فهذه مسؤوليتك أخي محمود ونحن علينا إرشادك إلى أسلوب العمل.

http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html

والسلام.

تم تعديل هذه المشاركة بواسطة JDurrah في 17 مارس 2010 في 16:14

#6

السلام عليكم ورحمة الله وبركاته

شكرا اخي JDurrah

ولكن الاخ محمد رياض الخضري

ارجو منه ان يعدل على برمجتي او يعطيني برمجة صحيحة

سلامي

اخوكم

محمود سامي

#7

السلام عليكم ورحمة الله وبركاته

اخوتي في الله ارجو مساعدتكم الله يبارك فيكم

اخي محمد رياض خضيري انتظر ردك الله يبارك فيك :wub:

سلامي

اخوكم

محمود سامي

#8

السلام عليكم

أخي محمود, لقد قمت ببناء بذره صغيره لك على نمط ال MVC .

و ال MVC هو عباره عن منهجيه لبناء تطبيقات الويب (من بين العديد من التطبيقات)

المكونات الأساسيه لل MVC هي

1- ال Model : و هو عباره عن الجزء من البرنامج الذي يتعامل مع البيانات مثل Cusomer, CustomerService, EmployeeDAO, UserBO

2- ال VIEW : و هو الجزء من البرنامج الذي يقوم بعرض البيانات من ال model و يقوم بإدخال البيانات إلي ال model

3- ال controller : و هو الجزء من البرنامج الذي يقع بين ال view و ال model.

فبشكل عام, يقوم ال view بتحديث البيانات و إظهارها من ال model و يتم ذلك من خلال ال controller

ففي ال JSP/Servlet يكون ال VIEW هو صفحات ال JSP (فهو للعرض و لإدخال البيانات فقط, فلا يجب أن يكون به أي كود أخر مثل كود ال JDBC كما هو الحال معك)

و يكون ال model هو الفئات ببرنامجك التي تتعامل مع قاعدة البيانات (فهو لتنفيذ ال Business logic و التعامل مع قاعدة البيانات , إضافه-حذف- تعديل - إسترجاع)

أما ال Controller فهي شغلة ال Servlets (فهو مثل ال internet router , لا يقوم بأي عمل سوي التوجيه للصفحه المناسبه)

مثال, مثال لل View :(لاحظ, لايوجد به أي كود جافا, حاول دائما أن تقلل كود الجافا في صفحات ال JSP قد المستطاع)

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Add new Student</title>
</head>
<body>
    <form action="AddStudentServlet.do" method="post">
        <table>
            <tr>
                <td>User Id</td>
                <td><input type="text" name="userIdTxt"> </td>
            </tr>
            <tr>
                <td>password</td>
                <td><input type="text" name="passwordTxt"> </td>
            </tr>
            <tr>
                <td>First name</td>
                <td><input type="text" name="firstNameTxt"> </td>
            </tr>
            <tr>
                <td>Last name</td>
                <td><input type="text" name="lastNameTxt"> </td>
            </tr>
            <tr>
                <td>Email</td>
                <td><input type="text" name="emailTxt"> </td>
            </tr>
            <tr>
                <td>College department</td>
                <td><input type="text" name="collegeDeptTxt"> </td>
            </tr>
            <tr>
                <td>Stage study</td>
                <td><input type="text" name="stageStudyTxt"> </td>
            </tr>
            <tr>
                <td>Country name</td>
                <td><input type="text" name="countryNameTxt"> </td>
            </tr>
            <tr>
                <td>City name</td>
                <td><input type="text" name="cityNameTxt"> </td>
            </tr>
            <tr>
                <td>Number Id</td>
                <td><input type="text" name="NumberIdTxt"> </td>
            </tr>
            <tr>
                <td>Mobile Number</td><!-- DO Java script validation here to ensure that this filed contains numbers only -->
                <td><input type="text" name="mobileNoTxt"> </td>
            </tr>
            <tr>
                <td><input type="submit"> </td>
                <td></td>
            </tr>
        </table>
        <br />
		${param.message}
    </form>
</body>
</html>

مثال لل model :(فهو هنا يتعامل مع قاعدة البيانات, من حذف و تعديل,..........)

package com.mahmoud.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.mahmoud.db.DBManager;
import com.mahmoud.model.Student;

public class StudentDAO implements DAO<Student> {

	public int delete(Object id) throws DAOException {
		// TODO
		return 0;
	}

	public void add(Student object) throws DAOException {
		DBManager db = new DBManager();
		try {
			Connection conn = db.openConnection();
			PreparedStatement pstmt =
				conn.prepareStatement("insert into students values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
			pstmt.setString(1, object.getUserId());
			pstmt.setString(2, object.getPassword());
			pstmt.setString(3, object.getFirstName());
			pstmt.setString(4, object.getLastName());
			pstmt.setString(5, object.getEmail());
			pstmt.setString(6, object.getCollegeDep());
			pstmt.setString(7, object.getStageStudy());
			pstmt.setString(8, object.getCountryName());
			pstmt.setString(9, object.getCityName());
			pstmt.setString(10, object.getNumberId());
			pstmt.setLong(11, object.getMobileNo());
			int result = pstmt.executeUpdate();
			if (result <= 0)
				throw new DAOException("No rows inserted");
		}catch (Exception ex) {
			ex.printStackTrace();
			throw new DAOException(ex.getMessage(), ex);
		}finally {
			try {
				db.close();
			}catch(SQLException ex) {}
		}
	}

	public List<Student> getAll() throws DAOException {
		DBManager db = new DBManager();
		try {
			Connection conn = db.openConnection();
			PreparedStatement pstmt = conn.prepareStatement("select * from students");
			ResultSet rs = pstmt.executeQuery();
			List<Student> stdList = new ArrayList<Student>();
			while (rs.next()) {
				Student std = new Student();
				std.setUserId(rs.getString("userid"));
				std.setPassword(rs.getString("password"));
				std.setFirstName(rs.getString("fname"));
				std.setLastName(rs.getString("lname"));
				std.setEmail(rs.getString("email"));
				std.setCollegeDep(rs.getString("college dep"));
				std.setStageStudy(rs.getString("stage study"));
				std.setCountryName(rs.getString("country name"));
				std.setCityName(rs.getString("city name"));
				std.setNumberId(rs.getString("number-id"));
				std.setMobileNo(rs.getLong("mobile no"));
				stdList.add(std);
			}
			return stdList;
		}catch (Exception ex) {
			ex.printStackTrace();
			throw new DAOException(ex.getMessage(), ex);
		}finally {
			try {
				db.close();
			}catch(SQLException ex) {}

		}
	}

	public Student get() throws DAOException {
		// TODO
		return null;
	}

	public int update(Student object) throws DAOException {
		// TODO
		return 0;
	}
}

مثال لل Controller : فهو هنا لايقوم بأي شئ نفسه, فهو يقرأ المدخلات من صفحة ال JSP و يستدعي ال StudentDAO ليقوم بالنيابه عنه بتعدل ال model ثم يقوم ال controller بالتوجيه للصفحه المناسبه

package com.mahmoud.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mahmoud.dao.DAOException;
import com.mahmoud.dao.StudentDAO;
import com.mahmoud.model.Student;

public class AddStudentServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
		throws ServletException, IOException {

		String msg = doServerSideValidation(request);
		if (msg.length() <= 0) {
			Student student = new Student();
			student.setUserId(request.getParameter("userIdTxt"));
			student.setPassword(request.getParameter("passwordTxt"));
			student.setFirstName(request.getParameter("firstNameTxt"));
			student.setLastName(request.getParameter("lastNameTxt"));
			student.setEmail(request.getParameter("emailTxt"));
			student.setCollegeDep(request.getParameter("collegeDeptTxt"));
			student.setStageStudy(request.getParameter("stageStudyTxt"));
			student.setCountryName(request.getParameter("countryNameTxt"));
			student.setCityName(request.getParameter("cityNameTxt"));
			student.setNumberId(request.getParameter("NumberIdTxt"));
			student.setMobileNo(Integer.parseInt(request.getParameter("mobileNoTxt")));

			StudentDAO sDao = new StudentDAO();

			try {
				sDao.add(student);
				msg = "Student has been added successfully";
			}catch (DAOException ex) {
				msg = "some error occured during inserting the student \n" + ex.getMessage();
			}
			msg = "index.jsp?message=" + msg;
		}else {
			msg = "addStudent.jsp?message=" + msg;
		}

		RequestDispatcher view = request.getRequestDispatcher(msg);
		view.forward(request, response);
	}

	private String doServerSideValidation(HttpServletRequest request){
		String msg = "";
		try {
			Integer.parseInt(request.getParameter("mobileNoTxt")); 
		}catch(NumberFormatException ex) {
			msg += "mobileNoTxt should contains integer numbers only<br/>";
		}

		return msg;
	}
}

إنظر المرفقات studentManagerWeb.zip

1
#9

السلام عليكم ورحمة الله وبركاته

شكرا لك اخي الكريم وبارك الله فيك

على هذا التوجية

سلامي

اخوك

محمود سامي

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…