前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 学生信息管理系统

java 学生信息管理系统

作者头像
全栈程序员站长
发布2022-09-14 10:31:57
5.6K0
发布2022-09-14 10:31:57
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

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

具体结构如图

java 学生信息管理系统
java 学生信息管理系统

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

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

java 学生信息管理系统
java 学生信息管理系统

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

java 学生信息管理系统
java 学生信息管理系统

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

这是登录界面入口

代码语言:javascript
复制
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 学生信息管理系统
java 学生信息管理系统
java 学生信息管理系统
java 学生信息管理系统

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

你也可以随便设置。

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

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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 学生信息管理系统
java 学生信息管理系统

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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<n;i++){
			field[i]=new JTextField(10);
			if(a[i].equals("学号")==true)
				box1.add(new JLabel("* "+a[i]));
			else
			box1.add(new JLabel("  "+a[i]));
			box1.add(Box.createVerticalStrut(8));
			box2.add(field[i]);
			box2.add(Box.createVerticalStrut(8));
		}
		box1.add(new JLabel("  单击删除"));
		button=new JButton("删除");
		button.addActionListener(this);
		box2.add(button);
		baseBox=Box.createHorizontalBox();
		baseBox.add(box1);
		baseBox.add(Box.createHorizontalStrut(8));
		baseBox.add(box2);
		add(baseBox);
	}
	public void actionPerformed(ActionEvent e){
		if(field[mark].getText().toString().equals("")==true)
			JOptionPane.showMessageDialog(this, "带*号为必填内容","消息对话框",JOptionPane.WARNING_MESSAGE);
		else
		{
			Delete delete=new Delete();
			delete.setTableName("stu");
			delete.setField(field);
			delete.setA(a);
			delete.Execute_Delete(mark);
		}
	}
}

这是界面

java 学生信息管理系统
java 学生信息管理系统

这是调用的删除函数:Delete

代码语言:javascript
复制
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<field.length;i++)
				field[i].setText(null);;
		}
		catch(SQLException ex){
			System.out.println(ex);
		}
	}
}

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

代码语言:javascript
复制
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<n;i++){
			field[i]=new JTextField(10);
			if(a[i].equals("学号")==true)
				box1.add(new JLabel("* "+a[i]));
			else
			box1.add(new JLabel("  "+a[i]));
			box1.add(Box.createVerticalStrut(8));
			box2.add(field[i]);
			box2.add(Box.createVerticalStrut(8));
		}
		box1.add(new JLabel("  单击修改"));
		button=new JButton("修改");
		button.addActionListener(this);
		box2.add(button);
		baseBox=Box.createHorizontalBox();
		baseBox.add(box1);
		baseBox.add(Box.createHorizontalStrut(8));
		baseBox.add(box2);
		add(baseBox);
	}
	public void actionPerformed(ActionEvent e){
		int i;
		for(i=0;i<n;i++){
			if(a[i].equals("学号")==true&&field[i].getText().toString().equals("")==true){
				mark=i;
				JOptionPane.showMessageDialog(this, "带*必须填写!!!","消息对话框",JOptionPane.WARNING_MESSAGE);
				break;
			}
		}
		if(i==n){
			int choose=JOptionPane.showConfirmDialog(this, "请确保你的学号是正确的,否则会更新失败!!!如果学号错误"
					+ "请先删除再添加","消息对话框",JOptionPane.WARNING_MESSAGE);
			if(choose==JOptionPane.YES_OPTION){
				Update update=new Update();
				update.setTableName("stu");
				update.setField(field);
				update.setA(a);
				update.Execute_Update(mark);
				JOptionPane.showMessageDialog(this, "更新成功!!!","消息对话框",JOptionPane.WARNING_MESSAGE);
			}
		}
	}

}

这是界面

java 学生信息管理系统
java 学生信息管理系统

这是调用的修改函数Update

代码语言:javascript
复制
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<a.length;i++)
		{
			if(i!=mark)
			SQL[i]="update "+tableName+" set "+a[i]+" ='"+field[i].getText().toString()+"' where "+a[mark]+" ='"+field[mark].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();
			for(int i=0;i<field.length;i++)
				if(i!=mark&&field[i].getText().toString().equals("")==false)
					sql.executeUpdate(SQL[i]);
			con.close();
			for(int i=0;i<field.length;i++)
				field[i].setText(null);
		}
		catch(SQLException ex){
			System.out.println(ex);
		}
	}
}

添加学生信息函数:Insert_Stu

代码语言:javascript
复制
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<n;i++){
			field[i]=new JTextField(10);
			if(a[i].equals("学号")==true)
				box1.add(new JLabel("* "+a[i]));
			else
			box1.add(new JLabel("  "+a[i]));
			box1.add(Box.createVerticalStrut(8));
			box2.add(field[i]);
			box2.add(Box.createVerticalStrut(8));
		}
		box1.add(new JLabel("  单击添加"));
		button=new JButton("添加");
		button.addActionListener(this);
		box2.add(button);
		baseBox=Box.createHorizontalBox();
		baseBox.add(box1);
		baseBox.add(Box.createHorizontalStrut(8));
		baseBox.add(box2);
		add(baseBox);
	}
	public void actionPerformed(ActionEvent e){
		int i;
		for(i=0;i<n;i++){
			if(field[i].getText().toString().equals("")==true){
				JOptionPane.showMessageDialog(this, "必须全部填写","消息对话框",JOptionPane.WARNING_MESSAGE);
				break;
			}
			if(a[i].equals("学号")==true){
				mark=i;
			}
		}
		if(i==n){
				Insert insert=new Insert();
				insert.setTableName("stu");
				insert.setField(field);
				insert.setA(a);
				insert.Execute_Insert(mark);
			}
		}

}
java 学生信息管理系统
java 学生信息管理系统

调用的添加函数Insert

代码语言:javascript
复制
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<field.length;i++)
				field[i].setText(null);;
		}
		catch(SQLException ex){
			System.out.println(ex);
		}
	}
}

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

代码语言:javascript
复制
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<n;i++){
			box[i]=Box.createHorizontalBox();
			field[i]=new JTextField(10);
			if(a[i].equals("学号")==true){
				box[i].add(new JLabel("  "+a[i]));
				box[i].add(Box.createHorizontalStrut(8));
				box[i].add(field[i]);
			}
			else{
				box[i].add(new JLabel("  "+a[i]));
				box[i].add(Box.createHorizontalStrut(8));
				box[i].add(field[i]);
			}
		}
		object =new Object[0][0];
		search_table=new DefaultTableModel(object, a);
		JTable table=new JTable(search_table);
		button=new JButton("查找");
		button.addActionListener(this);
		box[n-1].add(new JLabel("  单击查找"));
		box[n-1].add(Box.createHorizontalStrut(8));
		box[n-1].add(button);
		baseBox=Box.createVerticalBox();
		for(int i=0;i<n;i++){
		baseBox.add(box[i]);
		baseBox.add(Box.createVerticalStrut(8));
		}
		JScrollPane scrollPane=new JScrollPane(table);
		scrollPane.setBounds(0,0,550,380);
		table.setPreferredSize(new Dimension(scrollPane.getWidth() - 50, scrollPane.getHeight()*2));
		baseBox.add(scrollPane); 
		add(baseBox);
		table.revalidate();
		
	}
	public void actionPerformed(ActionEvent e){
		int i,sum=0;
		for(i=0;i<n;i++){
			if(field[i].getText().toString().equals("")==true)
				sum++;
		}
		System.out.println(sum);
		if(sum==n)
			JOptionPane.showMessageDialog(this, "你未输入任何内容,请重新输入!","消息对话框",JOptionPane.WARNING_MESSAGE);
		else{
			Search search=new Search();
			search.setTableName("stu");
			search.setField(field);
			search.setA(a);
			search.Execute_Search();	
			object=null;b=null;
			query=new Query();
			query.setTableName("stu");
			object=search.getRecord();
			search_table.setDataVector(object, a);
		}
	}
}

这是查找界面

java 学生信息管理系统
java 学生信息管理系统

然后是查找函数:

代码语言:javascript
复制
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<a.length;i++)
		{
			if(field[i].getText().toString().equals("")==false){
				if(sum==0)
					SQL=SQL+a[i]+" = '"+field[i].getText().toString()+"'";
				else
					SQL=SQL+" and "+a[i]+" = '"+field[i].getText().toString()+"'";
				sum++;
			}
			
		}
		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=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			rs=sql.executeQuery(SQL);
			rs.last();
			object =new Object[rs.getRow()][a.length];
			rs.beforeFirst();
			int ncase=0;
			while(rs.next()){
				for(int i=1;i<=a.length;i++){
					object[ncase][i-1]=rs.getString(i);
				}
				ncase++;
			}
			con.close();
			for(int i=0;i<field.length;i++)
				field[i].setText(null);
		}
		catch(SQLException ex){
			System.out.println(ex);
		}
	}
	public Object[][] getRecord(){
		return object;
	}
}

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

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158464.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档