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

شرح: طريقة اخذ نسخة احتياطية من قاعدة البيانات

بدأه BigMove في 16 يوليو 2008 · 0 رد · 7,052 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1

بسم الله الرحمن الرحيم

*هذا الموضوع مجرد فكرة خطرت على بالي واحببت مشاركتها مع الجميع

طريقة اخذ نسخة احتياطية من قاعدة بيانات MySQl

في البداية ننشئ قاعدة بيانات ولتكن تحمل اسم mydb

ثم ننشئ جدول اسمه user

CREATE TABLE `mydb`.`user` (
  `username` VARCHAR(40),
  `password` VARCHAR(16),
  `fullname` TEXT,
  `userno` INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`userno`)
)
CHARACTER SET utf8;

الان ننشئ صفحتى Jsp

الأولى باسم index.jsp

تحتوي على نموذج ادخال (Form) يحولك الى الصفحة الثانية

<%@ page contentType="text/html; charset=windows-1256" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
<title>BackUp</title>
</head>

<body>
<form method="post" action="active.jsp?action=backup">
<input type="submit" value="!BackUp" />
</form>
</body>
</html>

الصفحة الثانية باسم active.jsp

<%@ page contentType="text/html; charset=windows-1256" language="java" import="java.sql.*, java.io.*, java.util.Date" errorPage="" session="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
<title>BackUp...</title>
</head>

<body>
<%
//////////////////////DataBase
String dburl="localhost"; //MySql Url
String port="3306"; //MySql Port
String dbname="mydb"; //DataBase Name
String dbuser="root"; //DataBase UserName
String dbpass="root"; // User Password
String driver="com.mysql.jdbc.Driver"; //Driver
String url="jdbc:mysql://"+dburl+":"+port+"/"+dbname; //URL
///////////////////////////////
if(request.getParameter("action")!=null && request.getParameter("action").equals("backup")){
	String fileName = "backNo"+new Date().getTime()+".sql";
	String path = application.getRealPath(fileName);
	String text="CREATE DATABASE IF NOT EXISTS "+dbname+"; \n USE "+dbname+"; \n";
	text = text + "DROP TABLE IF EXISTS `"+dbname+"`.`user`; \n\n";
	text = text + "CREATE TABLE `"+dbname+"`.`user` (\n`username` VARCHAR(40),\n`password` VARCHAR(16),\n`fullname` TEXT,\n`userno` INT NOT NULL AUTO_INCREMENT,\nPRIMARY KEY (`userno`))\nCHARACTER SET utf8; \n\n";
	text = text + "LOCK TABLES `user` WRITE;\n\n";
	text = text + "INSERT INTO `"+dbname+"`.`user`(username,password,fullname,userno) VALUES \n";
	StringBuffer lsb_output = new StringBuffer();
	try
	{
		Class.forName (driver).newInstance ( );
		Connection Connec = DriverManager.getConnection(url, dbuser, dbpass);

		Statement Stat1 = Connec.createStatement ( );
		Stat1.executeQuery ("SELECT * FROM user");
		ResultSet ReSt = Stat1.getResultSet();
		while(ReSt.next())
		{
			text = text +"('"+ReSt.getString("username")+"','"+ReSt.getString("password")+"','"+ReSt.getString("fullname")+"',"+ReSt.getString("userno")+")";
			if(ReSt.isLast() )
				text = text +";\n UNLOCK TABLES;";
			else
				text = text +",\n";
		}
	}
	catch (Exception e)
	{
		String ax="Cannot connect to server : "+e;%>
		<%=ax %><%
	}
	lsb_output.append(text);
	File lf_file = new File(path);
	FileOutputStream los_file = new FileOutputStream(lf_file);
	PrintWriter lpw_wrtr = new PrintWriter(los_file);
	lpw_wrtr.print(lsb_output);
	lpw_wrtr.flush();
	lpw_wrtr.close();
	los_file.flush();
	los_file.close();
	response.sendRedirect(fileName);
}
%>
</body>
</html>

عند تشغيل الصفحة الاولى والضغط على زر backup

سينتج ملف بامتداد sql عبارة عن النسخة الاحتياطية

هذا الملف من انتاجي ونظرا للحاجة الملحة قررت وضعه هنا

اذا اكان هناك اي سؤال او اشكال الرجاء ابلاغي

تحياتي

backup.zip

تم تعديل هذه المشاركة بواسطة BigMove في 16 يوليو 2008 في 23:27

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

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

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

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

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