需要的工具
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
这个是用户表结构和登陆账号和密码(可自行修改)
**
宿舍信息表结构**
**
学生信息表结构**
没想到找我代码的兄弟姐妹有些多,邮箱会漏,大家关注公众号(热心市民鲨鱼先生),里面自提吧。
关注下点个按钮就行了。
文章浏览阅读199次。前言:做了一个监控应用服务器的项目(支持Tocmat、WebSphere、WebLogic各版本), 过程也算是磕磕绊绊,由于网上缺少相关资料,或者深陷于知识的海洋难以寻觅到有效的资料,因而走过不少弯路,遇过不少困难。为了留下点印记,给后来人留下 点经验之谈,助之少走弯路,故将这些经验整理出来,与大家分享。水平有限,难免疏漏,还望指正。如有疑问,欢迎留言,或者加入Q群参与讨 论:3552652..._weblogic10g 连接池监控
文章浏览阅读86次。为什么80%的码农都做不了架构师?>>> ..._cflags="-pthread -os -wall -ffunction-sections -fdata-sections
文章浏览阅读5.4k次,点赞2次,收藏10次。简单的点胜过复杂的高明_android opengl es2.0图片旋转
文章浏览阅读4.4w次,点赞8次,收藏17次。今天写的如下代码,发现@profiles.active@变量怎么都不起作用(检查这个属性起作用与否的快速方法:可直接按住ctrl再点击这个属性,能定位到相应的值的位置则起作用,否则不起作用)检查pom文件中profiles的配置,也没发现有什么问题,pom文件中的profiles的配置如下:检查半天,始终查不到不起作用的原因,最后发现在pom文件中添加如下代码后,便可以了。..._spring.profiles.active不生效
文章浏览阅读274次。在需求中, 难免会使用 table 进行渲染窗口,做一个简单的封装。
文章浏览阅读497次。参考以下链接进行安装,过程中又一些错误,记录如下:https://github.com/Qihoo360/wayne/blob/master/README-CN.md先安装go的环境,不记录。‘’go get github.com/Qihoo360/wayne‘’..._docker 安装360云盘
文章浏览阅读681次。Dice NotationTime Limit: 2 Seconds Memory Limit: 65536 KB... I want to get some water from this strange lake. I have a bottle. OK. Then I want to go forward to look into the parte_d - dice notation
文章浏览阅读5.1k次,点赞2次,收藏7次。一、桌面,按鼠标右键,确认想要新增/删除项的后缀名。二、win+R,输入regedit,进入注册表编辑三、搜索\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew,class的字符串值是支持从右键新建的程序。按照需要自行增删:双击classes,在folder前添加一行.xmind四、在计算机\HKEY_CURRENT_USER中搜索第三步._如何管理右键新建菜单
文章浏览阅读35次。
文章浏览阅读9.8k次,点赞8次,收藏16次。Layui文件上传layui官网:https://www.layui.com/layui插件下载官方文档(关于文件上传)快速入门前端1、 index页面,引入css样式和js脚本<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>index<_layui上传图片
文章浏览阅读685次。说明:本项目开发前提是,在本地windows机器上搭建了MQ,并建立好发送队列管理器,本地队列,远程队列,发送通道;在阿里云服务器上也搭建了MQ,建立了接收队列管理器,接收通道。具体步骤见本人之前的博客。地址:https://blog.csdn.net/qq_34569497/article/details/81197910此处,模拟场景是,本地Windows机器放入测试消息后,在spring..._mq发送系统消息通过云服务器吗
文章浏览阅读771次。最近接触项目代码,导入代码后报错,getter,setter方法报错cant resolve method,意识到是该注解包lombok没有正确的工作,pom里已经添加了dependency,排除代码的问题,那么就应该是IDEA的问题。查阅后发现是IDEA缺少lombok的plugin插件。本打算通过IDEA内的插件市场直接安装,然而plugins里的market无法打开,于是去下载jetbr..._lombok does not copy the annotation 'org.springframework.beans.factory.annot