1. مقدمة
لقد تعلمت لغة جافا في هذا الفصل الدراسي. في نهاية الفصل الدراسي ، كتبت نظامًا للإدارة مع واجهة تشغيل وترتبط بقاعدة البيانات لتوحيد المعرفة التي تعلمتها في هذه الدراسة.
المعرفة المستخدمة: Java Basics ، Java Interface Design (GUI) ، Database Oracle (تحتاج إلى إتقان بيانات التشغيل الأساسية لقاعدة البيانات) ، وقاعدة بيانات الارتباط.
أدوات التطوير المستخدمة: Myeclipse Professional 2014
2. التصميم
السمات التي نديرها هي: رقم المشروع ، اسم المشروع ، المشارك ، الشخص المسؤول ، وقت بدء المشروع ، ووقت الانتهاء. يحتوي نظام مشروع البحث العلمي على أربع وظائف رئيسية: الإضافة والحذف والتعديل والاستعلام عن مشاريع البحث العلمي. ووضع تسجيل الدخول المصمم لزيادة أمان النظام.
2.1 إضافة: أضف جميع المعلومات حول مشاريع البحث العلمي إلى الجدول في قاعدة البيانات
بعد الإضافة ، استخدم عبارات SQL للبحث في وحدة التحكم للتحقق من إضافتها إلى قاعدة البيانات.
2.2 استعلام: ابحث عن جميع المعلومات حول المشروع برقم مشروع فريد
2.3 التعديل: حدد المشروع المراد تعديله وفقًا لرقم المشروع ، وإعادة إدخال معلومات المشروع لتعديله
2.4 حذف: حذف جميع معلومات المشروع المقابل من خلال رقم مشروع فريد
3. شكل رمز المصدر
3.1 واجهة تسجيل الدخول
حزمة نظام إدارة معلومات البحث العلمي ؛ استيراد java.awt.*؛ استيراد java.awt.event.*؛ استيراد javax.swing.*؛ فئة public loginwindows يمتد إطار الأدوات windowlistener ، actionlistener {public lable lglabel ؛ // اسم المستخدم العلامة العامة pwdlabel ؛ // TAG PORPORT Public Textfield lgtext ؛ // مربع نص اسم المستخدم Public Textfield PwdText ؛ // مربع نص كلمة المرور الزر العام LGBT ؛ // زر تسجيل الدخول الزر العام quitbt ؛ // exit button public loginWindows () {super () ؛ this.setsize (400 ، 300) ؛ this.settitle ("نظام إدارة المعلومات العلمية") ؛ this.setLayout (null) ؛ lglabel = new label () ؛ lglabel.settext ("حساب تسجيل الدخول:") ؛ lglabel.setsize (60 ، 30) ؛ lglabel.setlocation (70 ، 70) ؛ pwdlabel = new label () ؛ pwdlabel.settext ("كلمة المرور:") ؛ pwdlabel.setsize (60 ، 30) ؛ pwdlabel.setlocation (70 ، 150) ؛ lgtext = new TextField () ؛ lgtext.setsize (180 ، 30) ؛ lgtext.setLocation (140 ، 70) ؛ pwDText = new TextField () ؛ pwdtext.setsize (180 ، 30) ؛ pwdtext.setLocation (140 ، 150) ؛ LGBT = زر جديد () ؛ LGBT.SetLabel ("تسجيل الدخول") ؛ LGBT.Setsize (60 ، 30) ؛ LGBT.SetLocation (120 ، 220) ؛ QUITBT = زر جديد () ؛ quitbt.setLabel ("Exit") ؛ quitbt.setsize (60،30) ؛ quitbt.setLocation (220،220) ؛ quitbt.addActionListener (هذا) ؛ LGBT.AddActionListener (هذا) ؛ this.addwindowlistener (هذا) ؛ this.add (lglabel) ؛ this.add (pwdlabel) ؛ this.add (lgtext) ؛ this.add (LGBT) ؛ this.add (QuitBt) ؛ this.setVisible (صحيح) ؛ } public static void main (String args []) {loginWindows main = new loginwindows () ؛ } Override public void actionperformed (ActionEvent e) {button bt = (button) e.GetSource () ؛ if (bt.getlabel (). يساوي ("exit")) {system.exit (0) ؛ } آخر {if ((lgtext.gettext (). يساوي ("")) || (pwdtext.getText (). equals (""))) {joptionpane.showmessagedialog (هذا ، "حساب أو كلمة المرور فارغة") ؛ } آخر {if ((lgtext.gettext (). يساوي ("المسؤول")) // sqlwindow sql = new sqlwindow () ؛ WindowsView w = new windowsview () ؛ W.SciencePro () ؛ } آخر {joptionpane.showmessagedialog (هذا ، "لا إذن") ؛ }}}} Override public void windowsed (windowevent e) {// todo method method busb} override public void windowclosing (windowevent e) {// todo method method method system.exit (0) ؛ } Override public void windowclosed (windowevent e) {// todo method method method tuto busb} override public void windowiconified (windowevent e) {// todo method method method busB} override public void windowdeiconized (windowevent e) {// to method method-generated} e) {// todo method tuto method busb} Override public void windowdeactivated (windowevent e) {// todo method method tuto busb}}3.2 رمز مصدر النموذج الرئيسي
حزمة نظام إدارة معلومات البحث العلمي ؛ استيراد javax.swing.*؛ استيراد java.awt.*؛ استيراد java.awt.event.*؛ استيراد javax.swing.event.*؛ استيراد javax.swing.tree. jpanel Leftpa ؛ jpanel uppa ؛ jpanel downpa ؛ /// التحكم في الاستعلام Jlabel Numla ؛ // Query JTextfield numtxt ؛ Jbutton numbt ؛ Jtextfield Nametxt ؛ // إظهار مربع النص الذي يعرض اسم المشروع JTextfield Peopletxt ؛ // إظهار المشارك JTextField Principaltxt ؛ // إظهار الشخص الرئيسي المسؤول JTextField MIDESTARTTXT ؛ // إظهار مربع النص الذي يعرض وقت البدء jtextfield timeendtxt ؛ // إظهار مربع النص الذي يعرض وقت النهاية المتوقع // إضافة التحكم JLabel Anumla ؛ Jlabel Anamela ؛ Jlabel Apeoplela ؛ Jlabel Aprincipalla ؛ Jlabel Atimestartla ؛ Jlabel atimeendla ؛ JTextfield Anumtxt ؛ Jtextfield Anametxt ؛ JTextfield Apeopletxt ؛ Jtextfield Aprincipaltxt ؛ JTextfield Atimestarttxt ؛ JTextfield Atimeendtxt ؛ jbutton addbt ؛ jtable عرض. // حذف التحكم Jlabel Dnumla ؛ jbutton dnumbt ؛ JTextfield Dnumtxt ؛ // تعديل التحكم Jlabel alnumla ؛ Jtextfield allnumtxt ؛ Jbutton Alsebt ؛ Jlabel allnumla ؛ Jlabel allnumla ؛ Jlabel Alnamela ؛ Jlabel alpeoplela ؛ Jlabel Alprincipalla ؛ Jlabel Altimestartla ؛ Jlabel altimeendla ؛ Jtextfield Alnumtxt ؛ Jtextfield Alnametxt ؛ Jtextfield Alpeopletxt ؛ Jtextfield Alprincipaltxt ؛ Jtextfield Altimestarttxt ؛ Jtextfield Altimeendtxt ؛ public void sciencepro () {main = new Jframe () ؛ Main.SetSize (800،800) ؛ Main.Settitle ("إدارة معلومات البحث العلمي") ؛ main.setLayout (null) ؛ LeftPa = New JPanel () ؛ LeftPa.Setsize (150 ، 600) ؛ LeftPa.SetLocation (0 ، 0) ؛ LeftPa.SetBackground (color.hite) ؛ initleftpanel () ؛ Main.Add (LeftPa) ؛ UPPA = New JPanel () ؛ UPPA.Setsize (650 ، 400) ؛ UPPA.SetLocation (150 ، 0) ؛ UPPA.SetBackground (color.gray) ؛ Main.Add (UPPA) ؛ downpa = new jpanel () ؛ downpa.setsize (650 ، 400) ؛ UPPA.SetBackground (color.gray) ؛ Main.Add (UPPA) ؛ downpa = new jpanel () ؛ downpa.setsize (650 ، 400) ؛ DownPa.SetLocation (150 ، 400) ؛ downpa.setbackground (color.orange) ؛ main.add (downpa) ؛ main.setVisible (صحيح) ؛ } private void initleftpanel () {string [] strs = {"query" ، "add" ، "delete" ، "modify"} ؛ Jtree Tree = New Jtree (Strs) ؛ Tree.AddTreeSelectionListener (هذا) ؛ leftpa.add (شجرة) ؛ } public void valuechanged (treeselectionevent e) {jtree tree = (jtree) e.GetSource () ؛ defaultMutAbleTreenode SelectionNode = (DefaultMutableTreenode) Tree.getLastselectedPathComponent () ؛ String str = selectNode.toString () ؛ if (str.equals ("query")) {initupDownPawHensearch () ؛ } if (str.equals ("add")) {initupdownpawhenadd () ؛ } if (str.equals ("delete")) {initupDownPawHendelete () ؛ } if (str.equals ("modify")) {initupDownPawhenalert () ؛ }} private void initupdownpawhensearch () {// clear uppa.removeall () ؛ downpa.removeall () ؛ // قم بتحميل عناصر التحكم في الألواح العلوية والسفلية UPPA.SetLayout (NULL) ؛ numla = new Jlabel () ؛ numla.settext ("الرجاء إدخال رقم المشروع") ؛ Numla.SetLocation (40 ، 60) ؛ numla.setsize (100 ، 40) ؛ numtxt = new JTextField () ؛ numtxt.setLocation (180 ، 60) ؛ numtxt.setsize (200 ، 30) ؛ numbt = new jbutton () ؛ numbt.settext ("query") ؛ numbt.addActionListener (this) ؛ numbt.setlocation (250 ، 160) ؛ numbt.setsize (60 ، 30) ؛ UPPA.Add (numla) ؛ UPPA.Add (numtxt) ؛ UPPA.Add (numbt) ؛ UPPA.Validate () ؛ uppa.repaint () ؛ numbt.addActionListener (this) ؛ // تحميل ديناميكي عنصر التحكم في لوحة nametxt = new JTextField () ؛ nametxt.setLocation (80 ، 50) ؛ nametxt.setsize (300 ، 30) ؛ peopletxt = new JTextField () ؛ peopletxt.setLocation (80 ، 100) ؛ peopletxt.setsize (300 ، 30) ؛ Principaltxt = new JTextField () ؛ Principaltxt.setLocation (80 ، 150) ؛ principaltxt.setsize (300 ، 30) ؛ MIDESTARTTXT = New JTextField () ؛ MIDESTARTTXT.SETLOCATION (80 ، 200) ؛ MIDESTARTTXT.SetSize (300 ، 30) ؛ timeendtxt = new JTextField () ؛ timeendtxt.setLocation (80 ، 250) ؛ timeendtxt.setsize (300 ، 30) ؛ downpa.setlayout (null) ؛ downpa.add (nametxt) ؛ downpa.add (peopletxt) ؛ DownPa.Add (principaltxt) ؛ downpa.add (mathestarttxt) ؛ downpa.add (timeendtxt) ؛ downpa.validate () ؛ downpa.repaint () ؛ } public void actionperformed (actionevent e) {jbutton bt = (jbutton) e.GetSource () ؛ //BT.AddActionListener(this) ؛ if (bt.getText (). يساوي ("query")) {if (numtxt.getText (). equals ("")) {joptionpane.showmessagedialog (null ، "الرجاء إدخال رقم المشروع") ؛ } آخر {dealsearch deal = new dealsearch () ؛ string inf = deal.findprobynum (integer.parseint (numtxt.getText (). trim ())) ؛ if ((inf! = null) && (! inf.equals (""))))) {string [] strs = inf.split ("،") ؛ nametxt.settext (strs [1]) ؛ peopletxt.settext (strs [2]) ؛ principttxt.settext (Strs [3]) ؛ MIDESTARTTXT.Settext (Strs [4]) ؛ timeendtxt.settext (strs [5]) ؛ }}} if (bt.getText (). يساوي ("جديد")) {if (anumtxt.gettext (). يساوي ("") || anametxt.gettext (). يساوي ("") || apeopletxt.gettext (). يساوي ("") || aprin cipaltxt.gettext (). يساوي ("") || atimestarttxt.gettext (). يساوي ("") || atimeendtxt.gettext (). متساوٍ (""))) {joptionpane.showmessagedialog (null ، "لا يمكن أن يكون هناك قيمة فارغة في الإدخال !!") ؛ } آخر {scienceProject s = new ScienceProject () ؛ S.SetNum (integer.parseint (anumtxt.getText ())) ؛ S.SetName (nametxt.getText ()) ؛ S.SetPeople (apeopletxt.getText ()) ؛ S.SetLeader (Aprincipaltxt.getText ()) ؛ S.SetTimestart (atimestarttxt.getText ()) ؛ S.SetTimeFinish (atimeendtxt.getText ()) ؛ DealAdd Deal = new dealadd () ؛ Deal.Add (s) ؛ }} if (bt.getText (). يساوي ("delete")) {if (integer.parseint (dnumtxt.getText ()) == 0) {joptionpane.showmessagedialog (null ، "لا يمكن حذف رقم البند الفارغ !!") ؛ } آخر {dealdelete deal = new dealDelete () ؛ deal.delete (integer.parseint (dnumtxt.getText (). trim ())) ؛ }} if (bt.getText (). يساوي ("إرسال")) {if (integer.parseint (allnumtxt.getText ())) == 0) {joptionpane.showmessagedialog (null ، "رقم المشروع الفارغ لا يمكن تعديله !!") ؛ } آخر {dealsub deal = new dealsub () ؛ deal.submit (integer.parseint (allnumtxt.getText ())) ؛ }} if (bt.getText (). يساوي ("تعديل")) {إذا (alnametxt.gettext (). يساوي ("") || alpeopletxt.gettext (). يساوي ("") || alprincipaltxt.gettext (). يساوي ("") || altimestarttxt.gettext (). joptionpane.showmessagedialog (NULL ، "لا يمكن أن يكون هناك قيمة فارغة في المدخلات !!") ؛ } آخر {scienceProject s = new ScienceProject () ؛ S.SetNum (integer.parseint (allnumtxt.getText ())) ؛ S.SetName (Alnametxt.getText ()) ؛ S.SetPeople (alpeopletxt.getText ()) ؛ S.SetLeader (alprincipaltxt.getText ()) ؛ S.SetTimEstart (altimestarttxt.getText ()) ؛ S.SetTimeFinish (altimeendtxt.getText ()) ؛ Dealalter Deal = New Dealalter () ؛ Deal.Alter (s) ؛ }}} private void initupdownpawhenadd () {// clear uppa.removeall () ؛ downpa.removeall () ؛ // التحميل الديناميكي للوحة العلوية UPPA.SetLayout (NULL) ؛ anumla = new jlabel () ؛ Anumla.settext ("الرجاء إدخال رقم العنصر المراد إضافته") ؛ anumla.setlocation (30 ، 50) ؛ anumla.setsize (150 ، 40) ؛ anumtxt = new JTextField () ؛ Anumtxt.setLocation (200 ، 50) ؛ anumtxt.setsize (250 ، 30) ؛ Anamela = New Jlabel () ؛ Anamela.settext ("الرجاء إدخال اسم المشروع المراد إضافته") ؛ Anamela.SetLocation (30 ، 100) ؛ Anamela.setsize (150 ، 40) ؛ Anametxt = new JTextField () ؛ Anametxt.setLocation (200 ، 100) ؛ anametxt.setsize (250 ، 30) ؛ Apeoplela = New Jlabel () ؛ Apeoplela.settext ("الرجاء إدخال المشارك في المشروع") ؛ Apeoplela.SetLocation (30 ، 150) ؛ Apeoplela.setsize (150 ، 40) ؛ ApeOpletxt = new JTextField () ؛ Apeopletxt.setLocation (200 ، 150) ؛ apeopletxt.setsize (250 ، 30) ؛ Aprincipalla = New Jlabel () ؛ Aprincipalla.settext ("الرجاء إدخال قائد المشروع") ؛ Aprincipalla.SetLocation (30 ، 200) ؛ Aprincipalla.setsize (150 ، 40) ؛ Aprincipaltxt = new JTextField () ؛ Aprincipaltxt.setLocation (200 ، 200) ؛ Aprincipaltxt.Setsize (250 ، 30) ؛ atimestartla = new Jlabel () ؛ atimestartla.settext ("الرجاء إدخال وقت بدء المشروع") ؛ atimestartla.setlocation (30 ، 250) ؛ atimestartla.setsize (150 ، 40) ؛ atimestarttxt = new JTextField () ؛ atimestarttxt.setLocation (200 ، 250) ؛ atimestarttxt.setsize (250 ، 30) ؛ atimeendla = new Jlabel () ؛ atimeendla.settext ("الرجاء إدخال وقت نهاية المشروع") ؛ atimeendla.setLocation (30 ، 300) ؛ atimeendla.setsize (150 ، 40) ؛ atimeendtxt = new JTextField () ؛ atimeendtxt.setLocation (200 ، 300) ؛ atimeendtxt.setsize (250 ، 30) ؛ addbt = new jbutton () ؛ addbt.settext ("جديد") ؛ addbt.addActionListener (هذا) ؛ //addbt.addmouselistener( thiss) ؛ addbt.setLocation (250 ، 340) ؛ addbt.setsize (60 ، 30) ؛ UPPA.Add (ADDBT) ؛ UPPA.Add (Anumla) ؛ UPPA.Add (Namela) ؛ UPPA.Add (apeoplela) ؛ UPPA.Add (Aprincipalla) ؛ uppa.add (atimestartla) ؛ UPPA.Add (atimeendla) ؛ UPPA.Add (atimetxt) ؛ UPPA.Add (anumtxt) ؛ UPPA.Add (ApeOpletxt) ؛ UPPA.Add (Aprincipaltxt) ؛ UPPA.Add (atimestarttxt) ؛ UPPA.Add (atimeendtxt) ؛ UPPA.Validate () ؛ uppa.repaint () ؛ downpa.validate () ؛ downpa.repaint () ؛ downpa.repaint () ؛ } private void initupdownpawhendelete () {// clear uppa.removeall () ؛ downpa.removeall () ؛ // تحميل ديناميكي التحكم في اللوحة العلوية UPPA.SetLayout (NULL) ؛ numla = new Jlabel () ؛ numla.settext ("الرجاء إدخال رقم العنصر المراد حذفه") ؛ Numla.SetLocation (40 ، 60) ؛ numla.setsize (150 ، 40) ؛ dnumtxt = new JTextField () ؛ dnumtxt.setLocation (200 ، 60) ؛ dnumtxt.setsize (250 ، 30) ؛ dnumbt = new jbutton () ؛ dnumbt.settext ("delete") ؛ dnumbt.addActionListener (this) ؛ Dnumbt.SetLocation (270 ، 170) ؛ dnumbt.setsize (60 ، 30) ؛ UPPA.Add (numla) ؛ UPPA.Add (dnumtxt) ؛ UPPA.Add (dnumbt) ؛ UPPA.Validate () ؛ uppa.repaint () ؛ downpa.validate () ؛ downpa.repaint () ؛ } private void initupdownpawhenalert () {// clear uppa.removeall () على الألواح العلوية والسفلية ؛ downpa.removeall () ؛ // تحميل ديناميكي التحكم في اللوحة العلوية UPPA.SetLayout (NULL) ؛ alnumla = new jlabel () ؛ alnumla.settext ("الرجاء إدخال رقم المشروع ليتم تعديله") ؛ alnumla.setlocation (40 ، 60) ؛ alnumla.setsize (150 ، 40) ؛ alsebt = new jbutton () ؛ Alsebt.settext ("إرسال") ؛ alsebt.addActionListener (this) ؛ Alsebt.setLocation (270 ، 170) ؛ alsebt.setsize (60 ، 30) ؛ allnumtxt = new JTextField () ؛ allnumtxt.setLocation (200 ، 60) ؛ allnumtxt.setsize (200 ، 30) ؛ UPPA.Add (alnumla) ؛ UPPA.Add (alsebt) ؛ UPPA.Add (allnumtxt) ؛ UPPA.Validate () ؛ uppa.repaint () ؛ albt = new jbutton () ؛ alt.settext ("تعديل") ؛ albt.addactionlistener (this) ؛ Abt.SetLocation (450 ، 170) ؛ Abt.setsize (60 ، 30) ؛ /* allnumla = new Jlabel () ؛ allnumla.settext ("الرجاء إدخال رقم المشروع المعدل") ؛ allnumla.setlocation (30 ، 00) ؛ allnumla.setsize (150 ، 40) ؛ alnumtxt = new jtextfield () ؛ alnumtxt.setLocation (180 ، 00) ؛ alnumtxt.setsize (250 ، 30) ؛*/ alnamela = new Jlabel () ؛ Alnamela.settext ("الرجاء إدخال اسم المشروع المعدل") ؛ Alnamela.SetLocation (30 ، 50) ؛ Alnamela.Setsize (150 ، 40) ؛ Alnametxt = new JTextField () ؛ Alnametxt.setLocation (180 ، 50) ؛ Alnametxt.SetSize (250 ، 30) ؛ alpeoplela = new Jlabel () ؛ alpeoplela.settext ("الرجاء إعادة تعيين المشارك") ؛ Alpeoplela.SetLocation (30 ، 100) ؛ alpeoplela.setsize (150 ، 40) ؛ alpeopletxt = new JTextField () ؛ alpeopletxt.setLocation (180 ، 100) ؛ alpeopletxt.setsize (250 ، 30) ؛ Alprincipalla = New Jlabel () ؛ Alprincipalla.settext ("يرجى إعادة تعيين قائد المشروع") ؛ Alprincipalla.SetLocation (30 ، 150) ؛ Alprincipalla.Setsize (150 ، 40) ؛ alprincipaltxt = new JTextField () ؛ Alprincipaltxt.setLocation (180 ، 150) ؛ alprincipaltxt.setsize (250 ، 30) ؛ Altimestartla = New JLabel () ؛ Altimestartla.settext ("يرجى إعادة تعيين وقت بدء المشروع") ؛ Altimestartla.SetLocation (30 ، 200) ؛ altimestartla.setsize (150 ، 40) ؛ altimestarttxt = new JTextField () ؛ altimestarttxt.setLocation (180 ، 200) ؛ altimestarttxt.setsize (250 ، 30) ؛ Altimeendla = New Jlabel () ؛ Altimeendla.settext ("يرجى إعادة تعيين وقت نهاية المشروع") ؛ Altimeendla.SetLocation (30 ، 250) ؛ Altimeendla.setsize (150 ، 40) ؛ AltimeendTxt = new JTextField () ؛ Altimeendtxt.setLocation (180 ، 250) ؛ AltimeendTxt.SetSize (250 ، 30) ؛ downpa.add (albt) ؛ //downpa.add(allnumla) ؛ downpa.add (Alnamela) ؛ downpa.add (alpeoplela) ؛ downpa.add (alprincipalla) ؛ downpa.add (altimestartla) ؛ downpa.add (altimeendla) ؛ downpa.add (altimetxt) ؛ //downpa.add(alnumtxt) ؛ downpa.add (alpeopletxt) ؛ downpa.add (alprincipaltxt) ؛ downpa.add (altimestarttxt) ؛ downpa.add (altimendtxt) ؛ downpa.setlayout (null) ؛ downpa.validate () ؛ downpa.repaint () ؛ }}3.3 تنظيم عبارات SQL وأجزاء قاعدة بيانات الارتباط
حزمة نظام إدارة معلومات البحث العلمي ؛ استيراد java.sql.*؛ استيراد java.util.scanner ؛ الطبقة العامة sql {public void addScienceProject (ScienceProject ScienceProject) {try {class.forname ("oracle.jdbc.driver.oracledriver"). newinstance () ؛ String const = "jdbc: oracle: thin:@localhost: 1521: xe" ؛ connection con = drivermanager.getConnection (const ، "system" ، "1") ؛ StringBuffer SQL = New StringBuffer ("أدخل في العلوم القيم ("+ScienceProject.getNum ()+" ، "+ScienceProject.getName ()+" "،"+ScienceProject.getPeople ()+"" ، "+ScienceProject.getLeader ()+" "،"+ScienceProjectart.getTimestart ()+""+" بيان st = con.createstatement () ؛ St.Execute (SQL.ToString ()) ؛ St.Close () ؛ con.close () ؛ } catch (استثناء e) {// todo: التعامل مع SESTUSE.out.println (E.TOSTRING ()) ؛ }} public void delscienceProject (ScienceProject ScienceProject) {try {class.forname ("oracle.jdbc.driver.oracledriver"). newinstance () ؛ String const = "jdbc: oracle: thin:@localhost: 1521: xe" ؛ connection con = drivermanager.getConnection (const ، "system" ، "1") ؛ StringBuffer SQL = جديد StringBuffer ("حذف من العلوم حيث num ="+scienceProject.getNum ()+"") ؛ بيان st = con.createstatement () ؛ St.Execute (SQL.ToString ()) ؛ St.Close () ؛ con.close () ؛ } catch (استثناء e) {// todo: التعامل مع SESTUSE.out.println (E.TOSTRING ()) ؛ }} public void updscienceProject (ScienceProject ScienceProject) {try {class.forname ("oracle.jdbc.driver.oracledriver"). newinstance () ؛ String const = "jdbc: oracle: thin:@localhost: 1521: xe" ؛ connection con = drivermanager.getConnection (const ، "system" ، "1") ؛ StringBuffer SQL = New StringBuffer ("تحديث مجموعة العلوم name = '"+ScienceProject.getName ()+"' ، workpeople = '"+scienceproject.getPeople ()+"' ، manager = '"+scienceproject.getLeader ()+"' ، timestart = '"+scienceProject.getTimeStart ()+" ، timeend = ""+scienceProject.getimeish () num = "+ScienceProject.getNum ()+" ") ؛ بيان st = con.createstatement () ؛ St.Execute (SQL.ToString ()) ؛ St.Close () ؛ con.close () ؛ } catch (استثناء e) {// todo: التعامل مع SESTEM.out.println ("تعديل الاستثناء") ؛ System.out.println (E.ToString ()) ؛ }} scienceproject findbynum (int num) {ScienceProject ScienceProject = new ScienceProject () ؛ حاول {class.forname ("oracle.jdbc.driver.oracledriver"). newinstance () ؛ String const = "jdbc: oracle: thin:@localhost: 1521: xe" ؛ connection con = drivermanager.getConnection (const ، "system" ، "1") ؛ StringBuffer SQL = New StringBuffer ("SELECT * from Science where num ="+num+"") ؛ بيان st = con.createstatement () ؛ resultset rs = St.Executequery (sql.toString ()) ؛ بينما (rs.next ()) {ScienceProject.setNum (rs.getInt (1)) ؛ ScienceProject.setName (Rs.GetString (2)) ؛ ScienceProject.setpeople (Rs.GetString (3)) ؛ ScienceProject.setLeader (Rs.GetString (4)) ؛ ScienceProject.Settimestart (RS.GetString (5)) ؛ ScienceProject.SettimeFinish (Rs.GetString (6)) ؛ } st.close () ؛ con.close () ؛ } catch (استثناء e) {// todo: التعامل مع SESTUSE.out.println (E.TOSTRING ()) ؛ } Return ScienceProject ؛ } ScienceProject look () {ScienceProject ScienceProject = New ScienceProject () ؛ حاول {class.forname ("oracle.jdbc.driver.oracledriver"). newinstance () ؛ String const = "jdbc: oracle: thin:@localhost: 1521: xe" ؛ connection con = drivermanager.getConnection (const ، "system" ، "1") ؛ StringBuffer SQL = New StringBuffer ("SELECT *from Science") ؛ بيان st = con.createstatement () ؛ resultset rs = St.Executequery (sql.toString ()) ؛ بينما (rs.next ()) {ScienceProject.setNum (rs.getInt (1)) ؛ ScienceProject.setName (Rs.GetString (2)) ؛ ScienceProject.setpeople (Rs.GetString (3)) ؛ ScienceProject.setLeader (Rs.GetString (4)) ؛ ScienceProject.Settimestart (RS.GetString (5)) ؛ ScienceProject.SettimeFinish (Rs.GetString (6)) ؛ } st.close () ؛ con.close () ؛ } catch (استثناء ex) {// toDo: التعامل مع STISTED SYSTEM.out.println (ex.toString ()) ؛ } Return ScienceProject ؛ } الفراغ الثابت العام (سلسلة args []) {}}3.4 إضافة وحذف والبحث وتعديل رمز المصدر المقابل
// استكشاف الأخطاء وإصلاحها إضافة نظام إدارة معلومات البحث العلمي ؛ استيراد javax.swing.joptionpane ؛ الطبقة العامة صفقة {public dealadd () {} public void add (ScienceProject s) {sql sql = new sql () ؛ if (sql.findbynum (s.getnum ()). getNum ()! = 0) {joptionpane.showmessagedialog (null ، "هذا المشروع موجود بالفعل ، يرجى إعادة الدخول!") ؛ } آخر {sql.addscienceProject (s) ؛ joptionpane.showmessagedialog (NULL ، "addsuccess") ؛ }}} كما يتضح من جزء التصميم ، يجب تقديم رقم المشروع أولاً عند الحذف ، لذلك يجب معالجة حدث التقديم.
// معالجة نظام إدارة معلومات البحث العلمي في حزمة التقديم ؛ استيراد javax.swing.joptionpane ؛ الطبقة العامة صفقات {dealsub () {} public void إرسال (int num) {sql sql = new sql () ؛ if (sql.findbynum (num) .getnum () == 0) {joptionpane.showmessagedialog (null ، "هذا المشروع غير موجود") ؛ } آخر {joptionpane.showmessagedialog (null ، "يرجى ملء معلومات المشروع المعدلة أدناه") ؛ }}} // معالجة نظام إدارة معلومات البحث العلمي الحزمة ؛ استيراد javax.swing.joptionpane ؛ الطبقة العامة dealdelete {public dealdelete () {} public void delete (int num) {scienceProject s = new ScienceProject () ؛ SQL SQL = جديد SQL () ؛ if (sql.findbynum (num) .getnum () == 0) {joptionpane.showmessagedialog (null ، "المشروع غير موجود ~") ؛ } آخر {s = sql.findbynum (num) ؛ sql.delscienceProject (s) ؛ joptionpane.showmessagedialog (null ، "delete بنجاح ~") ؛ }}} // معالجة وتعديل نظام إدارة معلومات البحث العلمي ؛ استيراد javax.swing.joptionpane ؛ الطبقة العامة Dealalter {public dealalter () {} public void alter (ScienceProject s) {sql sql = new sql () ؛ sql.updscienceProject (s) ؛ joptionpane.showmessagedialog (خالية ، "تعديل بنجاح") ؛ }} // مقبض والاستعلام نظام إدارة معلومات البحث العلمي ؛ فئة Public Classe Search // مقبض واستعلام أحداث {Public DealSearch () {} السلسلة العامة FindProbynum (int num) // Query by Project Number {String result = "" ؛ ScienceProject s = New ScienceProject () ؛ SQL SQL = جديد SQL () ؛ s = sql.findbynum (num) ؛ النتيجة = S.GetNum ()+"،"+S.GetName ()+"،"+S.GetPeople ()+"،"+S.GetLeader ()+"،"+S.GetTimeStart ()+"،"+S.GetTimeFinish () ؛ نتيجة العودة }}3.5 نافذة تسجيل دخول المكالمة الرئيسية للوظيفة
حزمة نظام إدارة معلومات البحث العلمي ؛ اختبار الفئة العامة {public static void main (string [] args) {loginWindows v = new loginWindows () ؛ }}4. ملخص
لا تزال هناك بعض العيوب. نظرًا لعدم الإلمام بمشاريع البحث العلمي ، فإن بعض السمات غير معقولة ، وهناك العديد من الأشياء التي لم يتم النظر فيها. بالإضافة إلى ذلك ، لا يحد عدم المألوف مع واجهة المستخدم الرسومية أيضًا تصميمنا على النافذة. كما يجب تعديلها من حيث خصائص المشروع والنوافذ.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.