// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع قاعدة البيانات
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
// لأننا سنطلب من المستخدم إدخال بيانات أثناء تشغيل البرنامج Scanner هنا قمنا بإستدعاء الكلاس
import java.util.Scanner;
public static void main(String[] args) {
// و الذي سنحتاج إليه لإدخال بيانات من المستخدم input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
Scanner input = new Scanner(System.in);
// سنستخدم هذه المتغيرات لحفظ المعلومات التي يدخلها المستخدم عند تشغيل البرنامج
// سنستخدم قيمة هذا المتغير كشرط أساسي لإدخال أو عدم إدخال مستخدم جديد
// الذي سنعتمد عليه للوصول إلى قاعدة البيانات MYSQL Driver هنا قمنا بتحديد رابط الوصول لبرنامج الـ
Class.forName("com.mysql.jdbc.Driver");
// و الذي سنستخدمه لتحديد المعلومات الأساسية التي نحتاجها للإتصال بقاعدة البيانات Connection هنا قمنا بإنشاء كائن من الكلاس
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/company","root","password");
// لا يحفظ أي تحديث نجريه على قاعدة البيانات من البرنامج بشكل تلقائي con هنا جعلنا الكائن
con.setAutoCommit(false);
// و الذي سنستخدمه لإرسال إستعلامات إلى قاعدة البيانات بناءاً على المعلومات التي يدخلها المستخدم PreparedStatement هنا قمنا بتجهيز كائن نوعه
PreparedStatement pstmt = con.prepareStatement("INSERT INTO employee(fname,lname,email,phone) VALUES(?,?,?,?)");
// 'y' تساوي addUser هنا أنشأنا حلقة تعيد تكرار ما فيها طالما أن قيمة المتغير
// في كل مرة يريد فيها إدخال بيانات موظف جديد. في حال أدخل حرف آخر لن يطلب منه من جديد 'y' هنا سيطلب من المستخدم إدخال الحرف
System.out.print("\nIf you want to add a new user, enter 'y': ");
addUser = input.next().charAt(0);
// سيطلب منه إدخال معلومات الموظف و سيتم تخزين كل واحدة منهم في متغير مختلف 'y' في حال قام المستخدم بإدخال الحرف
System.out.print("Enter first name: ");
firstName = input.next();
System.out.print("Enter last name: ");
System.out.print("Enter email address: ");
System.out.print("Enter phone number: ");
// هنا قمنا بتمرير قيم المتغيرات التي تحتوي على بيانات الموظف مكان علامات الإستفهام الموضوعة في الإستعلام
pstmt.setString(1, firstName);
pstmt.setString(2, lastName);
pstmt.setString(3, email);
pstmt.setString(4, phone);
// commit() هنا قمنا بتجهيز إستعلام لن يتم تنفيذه إلا عند إستدعاء الدالة
// هنا قمنا بحفظ التحديثات التي أجريناها على قاعدة البيانات
// هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
System.out.println(e.getMessage());
// هنا قمنا بإستدعاء الكلاسات و الإنترفيسات التي سنستخدمها للتعامل مع قاعدة البيانات
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
// لأننا سنطلب من المستخدم إدخال بيانات أثناء تشغيل البرنامج Scanner هنا قمنا بإستدعاء الكلاس
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// و الذي سنحتاج إليه لإدخال بيانات من المستخدم input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
Scanner input = new Scanner(System.in);
// سنستخدم هذه المتغيرات لحفظ المعلومات التي يدخلها المستخدم عند تشغيل البرنامج
String firstName;
String lastName;
String email;
String phone;
// سنستخدم قيمة هذا المتغير كشرط أساسي لإدخال أو عدم إدخال مستخدم جديد
char addUser;
try {
// الذي سنعتمد عليه للوصول إلى قاعدة البيانات MYSQL Driver هنا قمنا بتحديد رابط الوصول لبرنامج الـ
Class.forName("com.mysql.jdbc.Driver");
// و الذي سنستخدمه لتحديد المعلومات الأساسية التي نحتاجها للإتصال بقاعدة البيانات Connection هنا قمنا بإنشاء كائن من الكلاس
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/company","root","password");
// لا يحفظ أي تحديث نجريه على قاعدة البيانات من البرنامج بشكل تلقائي con هنا جعلنا الكائن
con.setAutoCommit(false);
// و الذي سنستخدمه لإرسال إستعلامات إلى قاعدة البيانات بناءاً على المعلومات التي يدخلها المستخدم PreparedStatement هنا قمنا بتجهيز كائن نوعه
PreparedStatement pstmt = con.prepareStatement("INSERT INTO employee(fname,lname,email,phone) VALUES(?,?,?,?)");
// 'y' تساوي addUser هنا أنشأنا حلقة تعيد تكرار ما فيها طالما أن قيمة المتغير
do {
// في كل مرة يريد فيها إدخال بيانات موظف جديد. في حال أدخل حرف آخر لن يطلب منه من جديد 'y' هنا سيطلب من المستخدم إدخال الحرف
System.out.print("\nIf you want to add a new user, enter 'y': ");
addUser = input.next().charAt(0);
// سيطلب منه إدخال معلومات الموظف و سيتم تخزين كل واحدة منهم في متغير مختلف 'y' في حال قام المستخدم بإدخال الحرف
if(addUser == 'y')
{
System.out.print("Enter first name: ");
firstName = input.next();
System.out.print("Enter last name: ");
lastName = input.next();
System.out.print("Enter email address: ");
email = input.next();
System.out.print("Enter phone number: ");
phone = input.next();
// هنا قمنا بتمرير قيم المتغيرات التي تحتوي على بيانات الموظف مكان علامات الإستفهام الموضوعة في الإستعلام
pstmt.setString(1, firstName);
pstmt.setString(2, lastName);
pstmt.setString(3, email);
pstmt.setString(4, phone);
// commit() هنا قمنا بتجهيز إستعلام لن يتم تنفيذه إلا عند إستدعاء الدالة
pstmt.executeUpdate();
}
}while(addUser == 'y');
// هنا قمنا بحفظ التحديثات التي أجريناها على قاعدة البيانات
con.commit();
// هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
con.close();
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
}