【JAVA】科研信息管理系统

一、前言
本学期学习了JAVA语言,在学期的结束,写一个有操作界面,与数据库关联的管理系统,用来巩固自己本学习所学的知识。
用到的知识:JAVA基础,JAVA界面设计(GUI),Oracle数据库(需要掌握数据库的基本操作语句),链接数据库。
使用的开发工具:MyEclipse Professional 2014
二、设计
我们管理的属性有:项目编号,项目名称,参与人员,负责人,项目开始时间,结束时间。科研项目系统主要有四个功能,对科研项目的增加、删除、修改、查询。以及为增加系统安全性所设计的登陆模式。
2.1 增加:向数据库的表中增加科研项目的所有信息

这里写图片描述
添加后在控制台使用SQL语句查找,验证是否已添加至数据库中。
这里写图片描述

2.2 查询:通过具有唯一性的项目编号查找该项目的所有信息

这里写图片描述

2.3 修改:根据项目编号选中要修改的项目,并重新输入项目信息进行修改

这里写图片描述
这里写图片描述

2.4 删除:通过具有唯一性的项目编号删除对应项目的所有信息
这里写图片描述

三、窗体源码
3.1 登录界面

package 科研信息管理系统;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public  class LoginWindows extends Frame implements WindowListener,ActionListener 
{
	public Label lgLabel;   //用户名标签
	public Label pwdLabel;    //密码标签
	public TextField lgText;   //用户名文本框
	public TextField pwdText;    //密码文本框
	public Button lgBt;          //登录按钮
	public Button quitBt;      //退出按钮
     
	  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=new Button();
		  lgBt.setLabel("登录");
		  lgBt.setSize(60,30);
		  lgBt.setLocation(120, 220);
		  
		  quitBt=new Button();
		  quitBt.setLabel("退出");
		  quitBt.setSize(60,30);
		  quitBt.setLocation(220,220);
		  quitBt.addActionListener(this);
		  lgBt.addActionListener(this);
		  this.addWindowListener(this);
		  
		  this.add(lgLabel);
		  this.add(pwdLabel);
		  this.add(lgText);
		  this.add(pwdText);
		  this.add(lgBt);
		  this.add(quitBt);
		  this.setVisible(true);
		  
	  }
	  public static void main(String args[])
	  {
		  LoginWindows main=new LoginWindows();
		  
	  }
	@Override
	public void actionPerformed(ActionEvent e) {
	
		Button bt=(Button) e.getSource();
		if(bt.getLabel().equals("退出"))
		{
			System.exit(0);
		}
		else {
		if ((lgText.getText().equals(""))||(pwdText.getText().equals(""))) 
			{
			   JOptionPane.showMessageDialog(this,"账号或密码为空");
			}
			else
			{
			       if ((lgText.getText().equals("admin"))&&(pwdText.getText().equals("111"))) 
			//if((lgText.getText().equals(""))||(pwdText.getText().equals("")))
				{
					this.setVisible(false);
				//	Sqlwindow sql=new Sqlwindow();
				  WindowsView w=new WindowsView();
				  w.SciencePro();
				  
				}
				else {
					JOptionPane.showMessageDialog(this, "没有权限");
				}
			}}}
			
		
		
		
	

	@Override
	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method busb
		
	}

	@Override
	public void windowClosing(WindowEvent e) {
		// TODO Auto-generated method busb
		System.exit(0);
	}

	@Override
	public void windowClosed(WindowEvent e) {
		// TODO Auto-generated method busb
		
	}

	@Override
	public void windowIconified(WindowEvent e) {
		// TODO Auto-generated method busb
		
	}

	@Override
	public void windowDeiconified(WindowEvent e) {
		// TODO Auto-generated method busb
		
	}

	@Override
	public void windowActivated(WindowEvent e) {
		// TODO Auto-generated method busb
		
	}

	@Override
	public void windowDeactivated(WindowEvent e) {
		// TODO Auto-generated method busb
		
	}
}

3.2主窗体源码

package 科研信息管理系统;
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

import javax.swing.event.*;
import javax.swing.tree.*;

public class WindowsView implements TreeSelectionListener,ActionListener  //窗口类
{
	JFrame main;
    JPanel leftPa;
    JPanel upPa;
    JPanel downPa;
    
    ///查询用控件
    JLabel numLa;  //通过项目编号查询
    JTextField numTxt;
    JButton numBt;
    
    JTextField nameTxt;  //显示项目名称的文本框
    JTextField peopleTxt;   //显示参与人员
    JTextField principalTxt;  //显示主要负责人
    JTextField timeStartTxt;  //显示开始时间的文本框
    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 showTable;
    
    //删除用控件
    JLabel dnumLa; 
    JButton dnumBt;
    JTextField dnumTxt;
    
    //修改用控件
    JLabel alnumLa;  
    JTextField allnumTxt;
    JButton alseBt;
    JButton alBt;
    
    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.white);
    	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);
    	downPa.setLocation(150, 400);
    	downPa.setBackground(Color.orange);
    	main.add(downPa);
    	
    	
    	main.setVisible(true);
    }
    
    private void initLeftPanel()
    {
    	String[] strs={"查询","增加","删除","修改"};
    	JTree tree=new JTree(strs);
    	tree.addTreeSelectionListener(this);
    	leftPa.add(tree);
    }
    
    public void valueChanged(TreeSelectionEvent e)
    {
    	JTree tree=(JTree)e.getSource();
   	    DefaultMutableTreeNode selectionNode =(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
        String str=selectionNode.toString();
        if(str.equals("查询"))
        {
        	initUpDownPaWhenSearch();
        }
        if(str.equals("增加"))
        {
        	initUpDownPaWhenAdd();
        }
        if(str.equals("删除"))
        {
        	initUpDownPaWhenDelete();
        }
        if(str.equals("修改"))
        {
        	initUpDownPaWhenAlert();
        }
    }
    
    private void initUpDownPaWhenSearch()
    {
    	//清空上下面板上的控件
    	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("查询");
    	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);
    	
    	timeStartTxt=new JTextField();
    	timeStartTxt.setLocation(80, 200);
    	timeStartTxt.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(timeStartTxt);
    	downPa.add(timeEndTxt);
    	downPa.validate();
    	downPa.repaint();
    	
    }
    
    public void actionPerformed(ActionEvent e)
    {
    	JButton bt=(JButton)e.getSource();
    	//bt.addActionListener(this);
    	if(bt.getText().equals("查询"))
    	{
    		if(numTxt.getText().equals(""))
    		{
    			JOptionPane.showMessageDialog(null, "请输入项目编号");
    		}
    		else
    		{
	    		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]);
	    		  principalTxt.setText(strs[3]);
	    		  timeStartTxt.setText(strs[4]);
	    		  timeEndTxt.setText(strs[5]);
	    		}
    		}
    	}
    	if(bt.getText().equals("新增"))
    	{
    		if (anumTxt.getText().equals("")||anameTxt.getText().equals("")||apeopleTxt.getText().equals("")||aprincipalTxt.getText().equals("")||atimeStartTxt.getText().equals("")||atimeEndTxt.getText().equals(""))
    		{
    			JOptionPane.showMessageDialog(null, "输入中不能有空值!!");
    		}
    		else
	    	{
    			ScienceProject s=new ScienceProject();
	    		s.SetNum(Integer.parseInt(anumTxt.getText()));
	    		s.SetName(anameTxt.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().equals("删除"))
    	{
    		if(Integer.parseInt(dnumTxt.getText())==0)
    		{
    			JOptionPane.showMessageDialog(null, "不能删除空的项目编号!!");
    		}
    		else
    		{
    			DealDelete deal=new DealDelete();
    			deal.delete(Integer.parseInt(dnumTxt.getText().trim()));
    		}
    	}
    	if(bt.getText().equals("提交"))
    	{
    		if(Integer.parseInt(allnumTxt.getText())==0)
    		{
    			JOptionPane.showMessageDialog(null, "不能修改空的项目编号!!");
    		}
    		else
    		{
    			DealSub deal=new DealSub();
    			deal.submit(Integer.parseInt(allnumTxt.getText()));
    		}
    	}
    	if(bt.getText().equals("修改"))
    	{
    		if (alnameTxt.getText().equals("")||alpeopleTxt.getText().equals("")||alprincipalTxt.getText().equals("")||altimeStartTxt.getText().equals("")||altimeEndTxt.getText().equals(""))
    		{
    			JOptionPane.showMessageDialog(null, "输入中不能有空值!!");
    		}
    		else
    		{
        		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()
    {
    	//清空上下面板上的控件
    	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(this);
    	//addBt.addMouseListener(this);
    	addBt.setLocation(250, 340);
    	addBt.setSize(60, 30);
    	
    	upPa.add(addBt);
        upPa.add(anumLa);
        upPa.add(anameLa);
        upPa.add(apeopleLa);
        upPa.add(aprincipalLa);
        upPa.add(atimeStartLa);
        upPa.add(atimeEndLa);
    	upPa.add(anameTxt);
    	upPa.add(anumTxt);
    	upPa.add(apeopleTxt);
    	upPa.add(aprincipalTxt);
    	upPa.add(atimeStartTxt);
    	upPa.add(atimeEndTxt);
    	upPa.validate();
    	upPa.repaint();
    	
    	downPa.validate();
    	downPa.repaint();
    }
    
    private void initUpDownPaWhenDelete()
    {
    	//清空上下面板上的控件
    	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("删除");
    	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()
    {
    	//清空上下面板上的控件
    	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();
    	alBt.setText("修改");
    	alBt.addActionListener(this);
    	alBt.setLocation(450, 170);
    	alBt.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(alnameTxt);
    	//downPa.add(alnumTxt);
    	downPa.add(alpeopleTxt);
    	downPa.add(alprincipalTxt);
    	downPa.add(altimeStartTxt);
    	downPa.add(altimeEndTxt);
    	downPa.setLayout(null);
    	downPa.validate();
    	downPa.repaint();
    }
}

3.3 组织SQL语句,链接数据库部分

package 科研信息管理系统;
import java.sql.*;
import java.util.Scanner;

public class Sql {
  public void AddScienceProject(ScienceProject scienceProject)
  {
	  try
	  {
		  Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
		  String conStr="jdbc:oracle:thin:@localhost:1521:XE";
		  Connection con=DriverManager.getConnection(conStr,"system","1");
		  StringBuffer sql=new StringBuffer("insert into science values("+scienceProject.GetNum()+",'"+scienceProject.GetName()+"','"+scienceProject.GetPeople()+"','"+scienceProject.GetLeader()+"','"+scienceProject.GetTimeStart()+"','"+scienceProject.GetTimeFinish()+"')");
		
		  Statement st=con.createStatement();
		  st.execute(sql.toString());
		  st.close();
		  con.close();    
      } 
	  catch (Exception e) 
	  {
		// TODO: handle exception
		
	   System.out.println(e.toString());
	  }
  }
  public void DelScienceProject(ScienceProject scienceProject)
  {
	  try 
	  {
		Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
		String conStr="jdbc:oracle:thin:@localhost:1521:XE";
		Connection con=DriverManager.getConnection(conStr,"system","1");
	    StringBuffer sql=new StringBuffer("delete from science where num="+scienceProject.GetNum()+""); 
	    Statement st=con.createStatement();
	    st.execute(sql.toString());
	    st.close();
	    con.close();
	  } 
	  catch (Exception e) 
	  {
		// TODO: handle exception
       System.out.println(e.toString());
	  }
	  
  }
  public void UpdScienceProject(ScienceProject scienceProject)
  {
	  try 
	  {
	    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();	
	    String conStr="jdbc:oracle:thin:@localhost:1521:XE";
	    Connection con=DriverManager.getConnection(conStr,"system","1");
	    StringBuffer sql =new StringBuffer("update science set name='"+scienceProject.GetName()+"',workpeople='"+scienceProject.GetPeople()+"',manager='"+scienceProject.GetLeader()+"',timestart='"+scienceProject.GetTimeStart()+"',timeend='"+scienceProject.GetTimeFinish()+"' where num="+scienceProject.GetNum()+"");
	    Statement st=con.createStatement();
	    st.execute(sql.toString());
	    st.close();
	    con.close();
	  }
	  catch (Exception e) 
	  {
		// TODO: handle exception
		  System.out.println("修改异常");
	  System.out.println(e.toString());
	  }
  }
  public ScienceProject Findbynum(int num)
  {
	  ScienceProject scienceProject=new ScienceProject();
	  try 
	  {
		  Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
		  String conStr="jdbc:oracle:thin:@localhost:1521:XE";
		  Connection con=DriverManager.getConnection(conStr,"system","1");
		  StringBuffer sql=new StringBuffer("select * from science where num="+num+"");
		  Statement st=con.createStatement();
		  ResultSet rs=st.executeQuery(sql.toString());
		  while(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 (Exception e) {
		// TODO: handle exception
	    System.out.println(e.toString());
	  }
	return scienceProject;	 
  }
  public ScienceProject Look()
  {
	  ScienceProject scienceProject=new ScienceProject();
	    try
	     {
		  Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
		  String conStr="jdbc:oracle:thin:@localhost:1521:XE";
		  Connection con=DriverManager.getConnection(conStr,"system","1");
		  StringBuffer sql=new StringBuffer("select *from science");
		  Statement st=con.createStatement();
		  ResultSet rs=st.executeQuery(sql.toString());
		  while(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 (Exception ex) 
	  {
		// TODO: handle exception
	   System.out.println(ex.toString());
	  }
	return scienceProject;
  }
  public static void main(String args[])
  {

  }
}


3.4 增删查改对应处理的源码

//处理增加
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealAdd 
{
    public DealAdd()
    {}
    public void add(ScienceProject s)
    {
    	Sql sql=new Sql();
    	if(sql.Findbynum(s.GetNum()).GetNum()!=0)
    	{
    		JOptionPane.showMessageDialog(null, "该项目已存在,请重新输入!");
    	}
    	else
    	{
    	
            sql.AddScienceProject(s);
    		JOptionPane.showMessageDialog(null,"增加成功");
    	}
    }
}
由设计部分可以看到,删除时需要先提交项目编号,所以,需要处理提交事件
//处理提交
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealSub
{
    DealSub()
    {}
    public void submit(int num)
    {
    	Sql sql =new Sql();
    	if(sql.Findbynum(num).GetNum()==0)
    	{
    		JOptionPane.showMessageDialog(null, "不存在该项目");
    	}
    	else
    	{
    		JOptionPane.showMessageDialog(null, "请在下方填写修改后的项目信息");
    	}
    }
}
//处理删除
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealDelete
{
    public DealDelete()
    {}
    public void delete(int num)
    {
    	ScienceProject s=new ScienceProject();
    	Sql sql=new Sql();
    	if(sql.Findbynum(num).GetNum()==0)
    	{
    		JOptionPane.showMessageDialog(null, "不存在该项目~");
    	}
    	else
    	{
    		s=sql.Findbynum(num);
    		sql.DelScienceProject(s);
    		JOptionPane.showMessageDialog(null, "删除成功~");
    	}
    }
}
//处理修改
package 科研信息管理系统;

import javax.swing.JOptionPane;

public class DealAlter 
{
    public DealAlter()
    {}
    public void alter(ScienceProject s)
    {
    	Sql sql=new Sql();
        sql.UpdScienceProject(s);
		JOptionPane.showMessageDialog(null,"修改成功");
    }
}
//处理查询
package 科研信息管理系统;

public class DealSearch   //处理查询事件
{
    public DealSearch()   
    {}
    public String findProByNum(int num)//通过项目编号查询
    {
    	String result="";
    	ScienceProject s=new ScienceProject();
    	Sql sql=new Sql();
    	s=sql.Findbynum(num);
    	result=s.GetNum()+","+s.GetName()+","+s.GetPeople()+","+s.GetLeader()+","+s.GetTimeStart()+","+s.GetTimeFinish();
    	return result;
    }
}

3.5 主函数调用登录窗口

package 科研信息管理系统;

public class Test {

	public static void main(String[] args)
	{
		LoginWindows v=new LoginWindows();
 
	}

}

补充ScienceProject.java:

package 科研信息管理系统;

public class ScienceProject    //科研项目类
{
    
    private int _num;      //项目编号
    private String _name;      //项目名称
    private String _people;  //参与人员
    private String _leader;   //负责人
    private String _timeStart;   //项目开始时间
    private String _timeFinish;  //项目结束时间
    
   public ScienceProject(int num,String name,String timeStart,String timeFinish)
    {
	   _num=num;
    	_name=name;
    	
    	//_people=people;
    	//_leader=leader;
    	_timeStart=timeStart;
    	_timeFinish=timeFinish;
    	
    }
   public ScienceProject()
   {}
    
   public void SetPeople(String people)   //设置项目参与人员
    {
        _people=people;
    }
    public String GetPeople()
    {
 /*   	String ret="";
    	for(int i=0;i<_people.length;i++)
    	{
    		ret+=_people[i];
    		ret+=',';
    	}
    	
    	return ret;*/
    	return _people;
    }
    public void SetLeader(String leader)    //设置项目负责人
    {
    	_leader=leader;
    	
    }
   public String GetLeader()
    {
    	return _leader;
    }

    public void SetName(String newName)
    {
    	_name=newName; 
    }
    public String GetName()
    {
    	return _name;
    }
    public void SetNum(int newNum)
    {
    	_num=newNum;
    }
    public int  GetNum()
    {
    	return _num;
    }
    public void SetTimeStart(String newTime)
    {
    	_timeStart=newTime;
    }
    public String GetTimeStart()
    {
    	return _timeStart;
    }
    public void SetTimeFinish(String newTime)
    {
    	_timeFinish=newTime;
    }
    public String GetTimeFinish()
    {
    	return _timeFinish;
    }

}

四、总结

还是有一些的缺陷存在的,由于对科研项目的不熟悉,有些属性设计得不合理,还有很多没有考虑到的地方,另外对GUI的不熟悉也限制了我们在窗口上的设计。还需要在项目属性及窗口等方面进行修改。

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值