java 学生信息管理系统

只设计了一部分 全部的太多了。会慢慢更新增加。

学生信息管理包括添加,删除,修改,查询,显示全部等

具体结构如图

java 学生信息管理系统_第1张图片

在SQL Server 2005数据库上实现数据操作。使用纯面向对象的java语言作为开发语言

在sql server 2005新建一个名为Student的数据库,在下面新建一个名为stu的表

java 学生信息管理系统_第2张图片

再新建一个名为login的表 存贮账号 密码

java 学生信息管理系统_第3张图片

当然 列名你可以随便写 当然 要有个学号啊。我的修改等等都是根据学号的。

这是登录界面入口

 

package 学生信息管理系统;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Color;
public class 学生信息管理系统 {
	public static void main(String[] args) {
		new loginFrame();
	}
}
class loginFrame extends JFrame implements ActionListener{
	Box box1,box2,baseBox;
	JLabel userName,userPwd,tubiao;
	JTextField nameField;
	JPasswordField pwdField;
	JButton button;
	JTabbedPane choose;
	JPanel panel1,panel2;
	loginFrame(){
		setBackground(Color.green);
		tubiao=new JLabel(new ImageIcon("image/4.png"));
		add(tubiao,BorderLayout.NORTH);
		userName=new JLabel("账号",JLabel.CENTER);
		userPwd=new JLabel("密码",JLabel.CENTER);
		nameField=new JTextField(8);
		pwdField=new JPasswordField(8);
		panel1=new JPanel();
		panel2=new JPanel();
		choose=new JTabbedPane();
		choose.add("教师登陆",panel1);
		choose.add("学生登陆",panel2);
		panel1.setLayout(new GridLayout(2,2));
		panel1.add(userName);panel1.add(nameField);
		panel1.add(userPwd);panel1.add(pwdField);
		add(choose,BorderLayout.CENTER);
		button=new JButton("登陆");
		add(button,BorderLayout.SOUTH);
		button.addActionListener(this);
		ImageIcon tubiao=new ImageIcon("image/3.png");
		setIconImage(tubiao.getImage());
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		setBounds(400,150,300,250);
		setTitle("登陆");
		validate();
	}
	public void actionPerformed(ActionEvent e){
		String name,pwd;
		name=nameField.getText();
		pwd=pwdField.getText();
		try{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		}
		catch(ClassNotFoundException ex){
		System.out.println(ex);
		}
		try{
			Connection con;
			Statement sql;
			ResultSet rs;
			String url,userName,userPwd;
			url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
			userName="sa";
			userPwd="aaascx";
			con=DriverManager.getConnection(url,userName,userPwd);
			sql=con.createStatement();
			rs=sql.executeQuery("select * from login where name ='"+name+"' and pwd='"+pwd+"'");
			int q=0;
			while(rs.next()){
				q++;
			}
			if(q>0){
				JOptionPane.showMessageDialog(this, "登陆成功!","消息对话框",JOptionPane.WARNING_MESSAGE);
				this.dispose();
				new CommFrame();
				
			}
			else
				JOptionPane.showMessageDialog(this, "账号或者密码错误!","消息对话框",JOptionPane.WARNING_MESSAGE);
		}
		catch(SQLException exp){
			System.out.println(exp);
		}
	}
}

 

 

 


这是登陆界面:java 学生信息管理系统_第4张图片java 学生信息管理系统_第5张图片

 

 

 

登陆成功后 点击确定 登陆界面会消失  出现学生信息界面 。我的初始密码是12345 12345 

你也可以随便设置。

还有我只设置了教师登陆的界面,学生登陆的界面没有设置。

然后就是一个集合所有窗口的卡片式布局,称为CommFrame

 

 

package 学生信息管理系统;
import javax.swing.*;

import java.awt.color.*;
import java.awt.*;
import java.awt.event.*;
public class CommFrame extends JFrame implements ActionListener{
	JMenuBar bar;
	JMenu menu;
	JMenuItem scanItem,deleteItem,updateItem,insertItem,searchItem;
	Scan_stu scan;//查看所有学生信息
	Delete_stu delete;//删除学生信息
	Update_stu update;//更新学生信息
	Insert_stu insert;//插入学生信息
	Search_stu search;//查找学生信息
	CardLayout card=null;
	JPanel pCenter;
	CommFrame(){
		setLayout(new FlowLayout());
		scanItem=new JMenuItem("浏览");
		deleteItem=new JMenuItem("删除");
		updateItem=new JMenuItem("修改");
		insertItem =new JMenuItem("添加");
		searchItem=new JMenuItem("查找");
		bar=new JMenuBar();
		menu=new JMenu("菜单");
		menu.add(scanItem);
		menu.add(deleteItem);
		menu.add(updateItem);
		menu.add(insertItem);
		menu.add(searchItem);
		bar.add(menu);
		setJMenuBar(bar);
		scanItem.addActionListener(this);
		deleteItem.addActionListener(this);
		updateItem.addActionListener(this);
		insertItem.addActionListener(this);
		searchItem.addActionListener(this);
		scan=new Scan_stu();
		update=new Update_stu();
		delete=new Delete_stu();
		insert=new Insert_stu();
		search=new Search_stu();
		card=new CardLayout();
		pCenter=new JPanel();
		pCenter.setLayout(card);
		pCenter.add("scanItem", scan);
		pCenter.add("deleteItem",delete);
		pCenter.add("updateItem",update);
		pCenter.add("insertItem",insert);
		pCenter.add("searchItem",search);
		add(pCenter,BorderLayout.SOUTH);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		setBounds(400,150,550,400);
		setTitle("学生信息管理系统");
		validate();
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==scanItem)
			card.show(pCenter, "scanItem");
		else if(e.getSource()==deleteItem)
			card.show(pCenter, "deleteItem");	
		else if(e.getSource()==updateItem)
			card.show(pCenter, "updateItem");
		else if(e.getSource()==insertItem)
			card.show(pCenter, "insertItem");
		else if(e.getSource()==searchItem)
			card.show(pCenter, "searchItem");
	}

}

这里是浏览所有学生信息:Scan_stu

 

 

package 学生信息管理系统;
import java.awt.*;

import javax.swing.JFrame;

import java.awt.event.*;

import javax.swing.*;
import javax.swing.table.*;
public class Scan_stu extends JPanel implements ActionListener{
	DefaultTableModel update_table;
	JTable table;
	Query query;
	JButton button;
	Object a[][];
	String b[];
	Scan_stu(){
		setLayout(new FlowLayout());
		setBackground(Color.green);
		query=new Query();
		query.setTableName("stu");
		a=query.getRecord();
		b=query.getField();
		update_table=new DefaultTableModel(a, b);
		table=new JTable(update_table);
		button=new JButton("更新");
		button.addActionListener(this);
		JScrollPane scrollPane = new JScrollPane(table);
		scrollPane.setBounds(0,0,550,380);
		table.setPreferredSize(new Dimension(scrollPane.getWidth() - 50, scrollPane.getHeight()*2));//使表格出现滑动条
		add(scrollPane);
		add(button);
	}
	public void actionPerformed(ActionEvent e){
		a=null;b=null;
		query=new Query();
		query.setTableName("stu");
		a=query.getRecord();
		b=query.getField();
		update_table.setDataVector(a, b);
	}
}

这里是界面java 学生信息管理系统_第6张图片

 

 

再加上Scan_stu调用的Query查找函数

 

package 学生信息管理系统;
import java.sql.*;
public class Query {
	Object a[][]=null;
	String b[]=null;
	String tableName="";
	int 字段个数;
	public Query(){
		try{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		}
		catch(ClassNotFoundException e){
			System.out.println(e);
		}
	}
	public Object[][] getRecord(){//求表格的内容
		a=null;
		b=null;
		Connection con;
		Statement sql;
		ResultSet rs;
		try{
			String url,userName,userPwd;
			url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
			userName="sa";
			userPwd="aaascx";
			con=DriverManager.getConnection(url,userName,userPwd);
			int 字段个数=getZiDuan();
			int n=getAmount();
			a=new Object[n][字段个数];
			sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rs=sql.executeQuery("select * from "+tableName);
			int m=0;
			while(rs.next()){
				for(int k=1;k<=字段个数;k++){
					a[m][k-1]=rs.getString(k);
				}
				System.out.println();
				m++;
			}
			con.close();
		}
		catch(SQLException e){
			System.out.println("请输入正确的表名"+e);
		}
		return a;
	}
	public int getAmount(){//求表内容有多少行
		Connection con;
		Statement sql;
		ResultSet rs;
		try{
			String url,userName,userPwd;
			url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
			userName="sa";
			userPwd="aaascx";
			con=DriverManager.getConnection(url,userName,userPwd);
			sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rs=sql.executeQuery("select * from "+tableName);
			rs.last();
			int rows=rs.getRow();
			return rows;
		}
		catch(SQLException exp){
			System.out.println(""+exp);
			return 0;
		}
	}
	public String[] getField(){//求字段名称
		Connection con;
		try{
			String url,userName,userPwd;
			url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
			userName="sa";
			userPwd="aaascx";
			con=DriverManager.getConnection(url,userName,userPwd);
			DatabaseMetaData metadata=con.getMetaData();
			ResultSet rs1=metadata.getColumns(null, null, tableName, null);
			int 字段个数=getZiDuan();
			b=new String[字段个数];
			int k=0;
			while(rs1.next()){
				b[k]=rs1.getString(4);
				k++;
			}
			con.close();		
		}
		catch(SQLException e){
			System.out.println(e);
		}
		return b;
	}
	public void setTableName(String s){//初试表名
		tableName=s.trim();
	}
	public int getZiDuan(){//求字段个数
		Connection con;
		PreparedStatement sql;
		ResultSet rs;
		try{
			String url,userName,userPwd;
			url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
			userName="sa";
			userPwd="aaascx";
			con=DriverManager.getConnection(url,userName,userPwd);
			DatabaseMetaData metadata=con.getMetaData();
			ResultSet rs1=metadata.getColumns(null, null, tableName, null);
			字段个数=0;
			while(rs1.next())
				字段个数++;
		}
		catch(SQLException e){
			System.out.println(e);
		}
		return 字段个数;
	}
}

 

 

 

 

 

然后是删除学生信息函数

Delete_stu

 

package 学生信息管理系统;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.color.*;
import java.sql.*;
public class Delete_stu extends JPanel implements ActionListener{
	Box box1,box2,baseBox;
	Query query;
	JButton button;
	JTextField field[]=null;
	String a[]=null;
	int n,mark;
	Delete delete;
	String tableName;
	Delete_stu(){
		query=new Query();
		setBackground(Color.green);
		query.setTableName("stu");
		a=query.getField();
		box1=Box.createVerticalBox();
		box2=Box.createVerticalBox();
		n=a.length;
		field =new JTextField[n];
		for(int i=0;i


这是界面java 学生信息管理系统_第7张图片

 

这是调用的删除函数:Delete

 

package 学生信息管理系统;
import javax.swing.*;

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class Delete extends JFrame{
	String tableName;
	JTextField field[]=null;
	String a[]=null;
	public void setTableName(String s){
		tableName=s.trim();
	}
	public void setField(JTextField s[]){
		field=s;
	}
	public void setA(String e[]){
		a=e;
	}
	public Delete(){
		
	}
	public void  Execute_Delete(int n){
		String SQL="";
		Connection con;
		Statement sql;
		SQL="delete from "+tableName+" where "+a[n]+" ='"+field[n].getText().toString()+"'";
		try{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		}
		catch(ClassNotFoundException exp){
			System.out.println(exp);
		}
		try{
			String url,userName,userPwd;
			url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
			userName="sa";
			userPwd="aaascx";
			con=DriverManager.getConnection(url,userName,userPwd);
			sql=con.createStatement();
			sql.executeUpdate(SQL);
			con.close();
			JOptionPane.showMessageDialog(this, "删除成功","消息对话框",JOptionPane.WARNING_MESSAGE);
			for(int i=0;i

然后是修改学生信息的Update_stu函数

 

 

package 学生信息管理系统;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.color.*;
import java.sql.*;
public class Update_stu extends JPanel implements ActionListener{
	Box box1,box2,baseBox;
	Query query;
	JButton button;
	JTextField field[]=null;
	String a[]=null;
	int n,mark;
	Update update;
	String tableName;
	Update_stu(){
		query=new Query();
		setBackground(Color.green);
		query.setTableName("stu");
		a=query.getField();
		box1=Box.createVerticalBox();
		box2=Box.createVerticalBox();
		n=a.length;
		field =new JTextField[n];
		for(int i=0;i


这是界面java 学生信息管理系统_第8张图片

 

这是调用的修改函数Update

 

package 学生信息管理系统;
import javax.swing.*;

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class Update extends JFrame{
	String tableName;
	JTextField field[]=null;
	String a[]=null;
	public void setTableName(String s){
		tableName=s.trim();
	}
	public void setField(JTextField s[]){
		field=s;
	}
	public void setA(String e[]){
		a=e;
	}
	public Update(){
		
	}
	public void  Execute_Update(int mark){
		String SQL[]=new String [a.length];
		Connection con;
		Statement sql;
		for(int i=0;i


添加学生信息函数:Insert_Stu

 

 

package 学生信息管理系统;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.color.*;
import java.sql.*;
public class Insert_stu extends JPanel implements ActionListener{
	Box box1,box2,baseBox;
	Query query;
	JButton button;
	JTextField field[]=null;
	String a[]=null;
	int n,mark;
	Insert insert;
	String tableName;
	Insert_stu(){
		query=new Query();
		setBackground(Color.green);
		query.setTableName("stu");
		a=query.getField();
		box1=Box.createVerticalBox();
		box2=Box.createVerticalBox();
		n=a.length;
		field =new JTextField[n];
		for(int i=0;i


java 学生信息管理系统_第9张图片

 

 

 

调用的添加函数Insert

 

package 学生信息管理系统;
import javax.swing.*;

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class Insert extends JFrame{
	String tableName;
	JTextField field[]=null;
	String a[]=null;
	Update update;
	public void setTableName(String s){
		tableName=s.trim();
	}
	public void setField(JTextField s[]){
		field=s;
	}
	public void setA(String e[]){
		a=e;
	}
	public Insert(){
		
	}
	public void  Execute_Insert(int mark){
		String SQL;
		Connection con;
		Statement sql;
		try{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		}
		catch(ClassNotFoundException exp){
			System.out.println(exp);
		}
		try{
			String url,userName,userPwd;
			url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
			userName="sa";
			userPwd="aaascx";
			SQL="insert "+tableName+"("+a[mark]+") values ('"+field[mark].getText().toString()+"')";
			con=DriverManager.getConnection(url,userName,userPwd);
			sql=con.createStatement();
			sql.execute(SQL);
			con.close();
			update =new Update();
			update.setTableName(tableName);
			update.setField(field);
			update.setA(a);
			update.Execute_Update(mark);
			JOptionPane.showMessageDialog(this, "添加成功!!!","消息对话框",JOptionPane.WARNING_MESSAGE);
			for(int i=0;i


然后是查找学生信息的Search_stu函数

 

 

package 学生信息管理系统;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import java.awt.color.*;
import java.sql.*;
public class Search_stu extends JPanel implements ActionListener{
	Box box[],baseBox;
	Query query;
	JButton button;
	JTextField field[]=null;
	String a[]=null;
	int n,mark,m;
	Search search;
	String tableName;
	DefaultTableModel search_table;
	Object object[][];
	String b[];
	Search_stu(){
		setLayout(new FlowLayout());
		query=new Query();
		setBackground(Color.green);
		query.setTableName("stu");
		a=query.getField();
		n=a.length;
		box=new Box [n+1];
		field =new JTextField[n];
		for(int i=0;i


这是查找界面

 

java 学生信息管理系统_第10张图片

然后是查找函数:

 

package 学生信息管理系统;
import javax.swing.*;

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class Search extends JFrame{
	String tableName;
	JTextField field[]=null;
	String a[]=null;
	Object object[][];
	String b[];
	public void setTableName(String s){
		tableName=s.trim();
	}
	public void setField(JTextField s[]){
		field=s;
	}
	public void setA(String e[]){
		a=e;
	}
	public Search(){
		
	}
	public void  Execute_Search(){
		String SQL="select * from "+tableName+" where ";
		Connection con;
		Statement sql;
		ResultSet rs;
		int sum=0;
		for(int i=0;i


写的时候没发现  现在看看挺多的。。其实代码不多,我每个删除 更新 添加 查看 查找 之所以又写了一个删除 更新 添加 查找函数 因为我还会往下写的。。在后面更新 会 查找课程信息 成绩信息 什么的直接调用函数就行了。所以不要嫌多。。而且这些函数的内容都是差不多的。

 

比如写完一个更新操作 把里面的sql语句改改 不就是删除操作吗。。内容看着多 其实都一样。一起加油吧!

 

你可能感兴趣的:(【java】,【JAVA小游戏】,java)