java学生宿舍管理系统代码(java简单宿舍管理系统)

分为三大类land.java(登陆界面)system.java(系统管理界面)sql.java(数据库操作,包括连接、断开、增删改查等操作)一、登陆界面及代码主要代码:登陆按钮事件publicvoidactionPerformed(ActionEvente){ //TODOAuto-generatedmethodstub if((JButton)e.ge…

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

需要的工具
1.SQL Server
2.Eclipse
3.JDBC连接数据库驱动
https://download.microsoft.com/download/A/F/B/AFB381FF-7037-46CE-AF9B-6B1875EA81D7/sqljdbc_6.0.8112.200_chs.exe

功能实现
分为三大类
1.land.java (登陆界面)
2.system.java (系统管理界面)
3.sql.java (数据库操作,包括连接、断开、增删改查等操作)

一、登陆界面及代码
在这里插入图片描述

部分代码:

登陆按钮事件

public void actionPerformed(ActionEvent e) {
	// TODO Auto-generated method stub
		if((JButton)e.getSource()== buttonLand)
		{
		
		String name = textName.getText().trim();
		String password = String.valueOf(textPassword.getPassword()).trim();
	    int num = sq.landing(name, password);
	    if(num==1)
	    {
	    	JOptionPane.showMessageDialog(frame, "欢迎进入学生宿舍管理系统!","提示:",JOptionPane.PLAIN_MESSAGE);
	    	system system = new system();
	    	frame.dispose();
	    }
	    else
	    {
	    	JOptionPane.showMessageDialog(frame, "账号或者密码错误!","提示:",JOptionPane.ERROR_MESSAGE);
	    }
		}
	}

二、系统管理界面及代码**(这里只添加了俩个表,多少表都是一样的道理**)

增加数据:点击增加按钮会出现一空白行,填写完点击保存即可
保存(更新)数据:直接在表中进行相应的操作,再点击保存即可
删除数据:选择某行,点击删除按钮即可

在这里点插入图片描述在这里插入图片描述
部分代码:

//--------------------------------------按钮事件--------------------------------
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		//------------------------------- 删除-----------------------------
		String tableName = null;
		String key1 = null;
		if((JButton)e.getSource()==buttonDelete)
		{   if(paneParent.getSelectedIndex()==1)
			{
				tableName = "学生信息表";
				key1 = "sno";
			}
			if(paneParent.getSelectedIndex()==2)
			{
				tableName = "宿舍信息表";
				key1 = "dno";
			}
			int row = table.getSelectedRow();			
			if(row!=-1)
			{
				String key2 = (String) tableModel.getValueAt(row, 0);
				int result = JOptionPane.showConfirmDialog(null, "确定要删除吗?","请确认",JOptionPane.YES_NO_OPTION);
				if(result==JOptionPane.OK_OPTION)
				{
					String sql = "delete from "+tableName+" where "+key1+"="+key2;
					int num = sq.delete(sql);
					if(num>0)
					{
						tableModel.removeRow(row);
					}
				}
			}
			else 
			{	
				JOptionPane.showMessageDialog(null, "请选择要删除的行!","提示:",JOptionPane.ERROR_MESSAGE);
			}
		}
		//------------------------------保存------------------------
		if((JButton)e.getSource()==buttonSave)
		{
			int result = JOptionPane.showConfirmDialog(null, "请确认数值已经更改,否则保存无效","请确认",JOptionPane.YES_NO_OPTION);
			if(result==JOptionPane.OK_OPTION)
			{
				int row = table.getRowCount();
				int column = table.getColumnCount();			
				String[][]valueRow= new String[row][column];
				String[] sqlvalue  = new String[row];
				for(int i = 0; i < row; i++)
				{
					for(int j = 0; j < column; j++)
					{
						valueRow[i][j] = table.getValueAt(i, j).toString();
					}
				}
				if(paneParent.getSelectedIndex()==1)
				{	
					for(int i =0;i<row;i++)
					{
						String sql = "insert into 学生信息表"+" values ("+valueRow[i][0].toString()+","+valueRow[i][1].toString()+","+valueRow[i][2].toString()+","+valueRow[i][3].toString()+","+valueRow[i][4].toString()+","+valueRow[i][5].toString()+")";				
						sqlvalue[i]=sql.toString();									
					}
					data = sq.Save(sqlvalue,"学生信息表",row, column);
		            tableModel.setDataVector(data,dataTitle);			
				}
				if(paneParent.getSelectedIndex()==2)
				{
					for(int i =0;i<row;i++)
					{
						String sql = "insert into 宿舍信息表"+" values ("+valueRow[i][0].toString()+","+valueRow[i][1].toString()+")";				
						sqlvalue[i]=sql.toString();									
					}
					data = sq.Save(sqlvalue,"宿舍信息表",row, column);
		            tableModel.setDataVector(data,TitleDormitor);			
				}				
			}					        
		}
		//------------------------------增加---------------------------
		if((JButton)e.getSource()==buttonIncrease)
		{
			tableModel.addRow(new Vector<>());
		}
	}

三、sql.java (重要)

public class SQL {
    public  Connection conn;
    public  Statement st;
    public  ResultSet rs;
  
//----------------------------获取链接--------------------------------
public Connection getConn() throws SQLException, ClassNotFoundException
{
  String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
  String url = "jdbc:sqlserver://localhost:1433;databaseName=学习宿舍";
//:1433为数据库默认端口号,学习宿舍为数据库名字
  String user = "sa"; //登录用户名
  String password = "123456"; //登录密码
  try { 
   Class.forName(driverClassName);
   conn = DriverManager.getConnection(url, user, password);
   System.out.println("数据库连接成功");
  } catch (SQLException ex1)
  {
   System.out.println("数据库连接失败");
  } 
  return conn;
}

//-----------------------------------关闭链接----------------------------------

public  void Close() 
{
  try {
	rs.close();
} catch (SQLException e) {
	e.printStackTrace();
}
  try {
	st.close();
} catch (SQLException e1) {
	e1.printStackTrace();
}
  try {
	conn.close();
} catch (SQLException e) {
	e.printStackTrace();
}
}
//----------------------------------------登陆---------------------------------
public int landing(String name1,String password1) 
{
	int num = 0;
	String sql = "select *from 用户表";
	try{
		getConn();
		st = conn.createStatement();
		rs = st.executeQuery(sql);
		while(rs.next())
		{
			String name = rs.getString(1).trim();
			String password = rs.getString(2).trim();
			if(name.equals(name1)&&password.equals(password1))
			{
				num = 1;
			}
			
		}
	}catch (SQLException e) {
		// TODO: handle exception
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	Close();
	return num;
}
//--------------------------------查询-------------------------------
public Vector<Vector<Object>> query(String tableName,int column)
{
	int num = 0;
	String sql = "select *from "+tableName;
	Vector<Vector<Object>> data = new Vector<Vector<Object>>();
	try{
		getConn();
		st = conn.createStatement();
		rs=st.executeQuery(sql);
		while(rs.next())
		{
			Vector<Object> rowdata = new Vector<Object>();
			for(num=1;num<=column;num++)
			{
				rowdata.add(rs.getString(num));	  
			}
			data.add(rowdata);
		}
	  }catch(SQLException ex1)
		{
		System.out.println("失败"+ex1);
		} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		}
		Close();
		return data;
}
//---------------------------------------删除----------------------------------
public int delete(String sql)
{
	int num = 0;
	try{
		getConn();
		st = conn.createStatement();
	    num = st.executeUpdate(sql);
	}catch (SQLException e) {
		// TODO: handle exception
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}	
	Close();
	return num;
}
//-------------------------------------保存-------------------------------------
public Vector<Vector<Object>> Save(String[] sqlvalue,String tableName,int row,int column) 
{
	Vector<Vector<Object>> data = new Vector<Vector<Object>>();
	try{
		getConn();
		st = conn.createStatement();
	    st.executeUpdate("delete from "+tableName);
		for(int i =0;i<row;i++)
		{
			st.executeUpdate(sqlvalue[i].toString());
		}		
		data = query(tableName, column);
		
	}catch (SQLException e) {
		// TODO: handle exception
	} catch (ClassNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return data;
}
}

数据库连接账号密码及表名

**

这个是数据库的连接账号和密码123456
这个是数据库的连接账号和密码

这个是用户表结构和登陆账号和密码(可自行修改)
在这里插入图片描述

在这里插入图片描述

**

宿舍信息表结构**
在这里插入图片描述

**

学生信息表结构**
在这里插入图片描述

## 需要源码,点赞关注截图,发邮箱到1397195447@qq.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL的多表查询(笛卡尔积原理)

    MySQL的多表查询(笛卡尔积原理)Mysql查询多表查询笛卡尔积原理

    2022年7月4日
    24
  • Java设计模式之行为型:中介者模式

    Java设计模式之行为型:中介者模式

    2021年10月5日
    50
  • C语言中函数的基本知识

    C语言中函数的基本知识接着上次的数组,这次我们来简单的讲讲C语言里面的函数。函数和指针这两大块,在C语言中占据着重要的位置,是C语言中的主体和核心,所以它们的重要性也就不言而喻了。那什么是函数呢?1:函数是C语言的模块,一块块的,有较强的独立性,可以相互调用,也就是说,你可以在函数A中调用函数B,又可在函数B中调用函数C,不仅如此,你还可以调用函数自身(递归)。2:函数是完成一个个特定任务的语句集合,它能完…

    2022年6月26日
    29
  • 运算放大器加法器设计学习笔记

    运算放大器加法器设计学习笔记运算放大器构成加法器可以分为同相加法器和反相加法器第一种 同相加法器举个栗子 Vin1 0 4 Sin wt 也就是一个正弦信号 Vin2 1V 那么要实现两个信号的叠加而且相位不发生变化 也就是 Vout 1 0 4Sin wt 那么就可以使用同相加法器 也就是需要实现如下过程 图片极其丑陋 请略过 笑哭原理图如下图所示 借用网上的图 那么怎么计算这些电阻的取值呢 首先这里的输入端是相当于有两个电压源 那么为了确定每一个源在 V

    2025年10月31日
    4
  • 详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)

    详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)  2020年的10月份,我整理写了一篇名为:详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!的博客,已经经过了很多小伙伴的验证,确实是可行的,该篇博客链接如下:【请点击此处进行跳转】  经过近期的探索,我将安装步骤进行了进一步的优化,使安装变得更加快速,更加简单,我已经验证了其可行性,期待更多的小伙伴们一起来验证  本次安装依旧采用在虚拟机中安装的模式,一年前我用的VMware15.5,现在用的VMware16.1.1,【获取方式(附安装步

    2022年6月15日
    41
  • IIC通信协议详解

    IIC通信协议详解IIC通信协议详解IIC的概述IIC分为软件IIC和硬件IICIIC通信协议空闲状态开始信号与停止信号开始信号程序:IIC的概述IIC:两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbs以上。时钟线SCL:在通信过程起到控制作用。数据线SDA:用来一位一位的传送数据。IIC分为软件IIC和硬件IIC软件IIC:软件IIC通信指的是用单片机的两个I/O端口模拟出来的IIC,用

    2022年6月10日
    155

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号