基于javaSwing、MySQL的酒店客房管理系统(附源码)
目录
一、功能需求
二、数据字典
1.数据流条目
2.文件条目
三、用例图
四、数据流图
五、E-R图
六、系统框架
七、数据库设计
八、界面设计
九、代码展示
1、数据表对象层(domain层)
1.1、房间对象初始化
1.2、旅客对象初始化
1.3、 管理员对象初始化
2、数据访问对象层(dao层)
2.1、房间相关信息
2.2、旅客信息
2.3、管理员信息
3、util包
3.1、JDBC交互数据库(DBUtil)
3.2、实时时间(DateUtil)
4、业务层(server层)
4.1、房间(RoomContorller)
4.2、旅客(RoomInContorller)
4.3、管理员(UserContorller)
5、数据显示层(JSP层)
6、测试层(test)
集成开发环境:IntelliJ IDEA (2020); 使用插件:Jform Designer; 数据库:MySQL 8.0;适用
课程设计,大作业,项目练习,学习演示等
一、功能需求
1、住户信息维护
浏览所有住户的信息。包括入住时间、退房时间、身份证号、入住客房编号等等,提供了增删改查等功能;
2、客房信息维护
浏览所有客房信息。包括房间编号、房间描述、房间空闲状态等。还需要添加新客房、删除房间、修改房间信息等功能。
3、客房查询功能
通过客房编号、客房名称直接搜索到相关客房的信息;
4、账号管理功能
管理员可以对账号进行注册、修改密码等操作;
二、数据字典
1.数据流条目
(1)数据流名:登录信息
数据流来源:管理员
数据流去向:管理系统
数据流组成:用户名+用户密码
(2)数据流名:预订信息
数据流来源:旅客
数据流去向:管理系统
数据流组成:房间编号+入住人姓名+入住人身份证号+订房日期+入住天数
(3)数据流名:客房状态
数据流来源:客房状态表
数据流去向:管理系统
数据流组成:房间当前状态
(4)数据流名:退房请求
数据流来源:旅客
数据流去向:管理系统
数据流组成:入住人姓名+入住人身份证号+状态描述
2.文件条目
(1)数据文件名:管理员表
简述:记录用户信息
文件内容:管理员表=用户名+用户密码
(2)数据文件名:入住信息
简述:存放顾客入住信息
文件内容:顾客编号+顾客姓名+顾客身份证号+入住房间号+预定日期+退房时间+入住天数
(3)数据文件名:客房信息
简述:记录客房信息
文件内容:房间编号+房间类型+房间描述+房间状态编号+房间位置
(4)数据文件名:客房类型
简述:存放客房类型信息
文件内容:客房类型编号+客房类型名称+客房标准面积+客房标准床位+标准收费+类型描述
(5)数据文件名:客房状态
简述:存放客房状态
文件内容:房间编号+房间状态
三、用例图
四、数据流图
五、E-R图
六、系统框架
七、数据库设计
1.房间信息表(room)
2.入住信息表(roomIn)
3.管理员信息表
八、界面设计
九、代码展示
1、数据表对象层(domain层)
1.1、房间对象初始化
public class Room {private String roomid;//房间编号private String housename;//名称private String homeloc;//位置private int housecoast;//标准收费private String housesnull;//客房空闲情况private String housesclean;//客房清洁状况private String housesdesc;//类型描述public Room() {}public Room(String roomid, String housename, String homeloc, int housecoast, String housesnull, String housesclean, String housesdesc) {this.roomid = roomid;this.housename = housename;this.homeloc = homeloc;this.housecoast = housecoast;this.housesnull = housesnull;this.housesclean = housesclean;this.housesdesc = housesdesc;}public String getRoomid() {return roomid;}public void setRoomid(String roomid) {this.roomid = roomid;}public String getHousename() {return housename;}public void setHousename(String housename) {this.housename = housename;}public String getHomeloc() {return homeloc;}public void setHomeloc(String homeloc) {this.homeloc = homeloc;}public int getHousecoast() {return housecoast;}public void setHousecoast(int housecoast) {this.housecoast = housecoast;}public String getHousesnull() {return housesnull;}public void setHousesnull(String housesnull) {this.housesnull = housesnull;}public String getHousesclean() {return housesclean;}public void setHousesclean(String housesclean) {this.housesclean = housesclean;}public String gethousesdesc() {return housesdesc;}public void sethousesdesc(String housesdesc) {this.housesdesc = housesdesc;}@Overridepublic String toString() {return "Room{" +"roomid='" + roomid + '\'' +", housename='" + housename + '\'' +", homeloc='" + homeloc + '\'' +", housecoast=" + housecoast +", housesnull='" + housesnull + '\'' +", housesclean='" + housesclean + '\'' +", housesdesc='" + housesdesc + '\'' +'}';}
}
1.2、旅客对象初始化
public class RoomIn {private String username;private String idcard;private String roomId;private String datain;private String dataout;private int dataNum;public String getRoomId() {return roomId;}public void setRoomId(String roomId) {this.roomId = roomId;}public RoomIn() {}public RoomIn(String username, String idcard,String roomId, String datain, String dataout, int dataNum) {this.username = username;this.idcard = idcard;this.datain = datain;this.dataout = dataout;this.dataNum = dataNum;this.roomId=roomId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getIdcard() {return idcard;}public void setIdcard(String idcard) {this.idcard = idcard;}public String getDatain() {return datain;}public void setDatain(String datain) {this.datain = datain;}public String getDataout() {return dataout;}public void setDataout(String dataout) {this.dataout = dataout;}public int getdataNum() {return dataNum;}public void setdataNum(int dataNum) {this.dataNum = dataNum;}@Overridepublic String toString() {return "RoomIn{" +"username='" + username + '\'' +", idcard='" + idcard + '\'' +", roomId='" + roomId + '\'' +", datain=" + datain +", dataout=" + dataout +", dataNum=" + dataNum +'}';}
}
1.3、 管理员对象初始化
public class User {private String id;private String password;public User() {}public User(String id, String password) {this.id = id;this.password = password;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User{" +"id='" + id + '\'' +", password='" + password + '\'' +'}';}
}
2、数据访问对象层(dao层)
2.1、房间相关信息
import com.keshe.domain.Room;
import com.keshe.util.DBUtil;import java.util.List;public class RoomDao {//插入房间信息public int insert(Room rm){String sql ="insert room values(?,?,?,?,?,?,?)";int count= DBUtil.update(sql,rm.getRoomid(),rm.getHousename(),rm.getHomeloc(),rm.getHousecoast(),rm.getHousesnull(),rm.getHousesclean(),rm.gethousesdesc());return count;}//显示房间信息public List<Room> select(){String sql="select * from room";List<Room> ri =DBUtil.query(sql,Room.class);return ri;}//根据id查询房间用于删除数据public List<Room> selectId(String roomid ){String sql="select * from room where roomid=?";List<Room> ri =DBUtil.query(sql,Room.class,roomid);return ri;}//根据房间名查询房间public List<Room> selectName(String housesname ){String sql="select * from room where housename=?";List<Room> ri =DBUtil.query(sql,Room.class,housesname);return ri;}//根据id删除数据public int delete(String id){String sql="delete from room where roomid=?";int count=DBUtil.update(sql,id);return count;}//根据id修改数据public int update(String id,String housename,String homeloc,int housecoast,String housesnull,String housesclean,String housesdesc){String sql="update room set housename=?,homeloc=?,housecoast=?,housesnull=?,housesclean=?,housesdesc=? where roomid=?";int count= DBUtil.update(sql,housename,homeloc,housecoast,housesnull,housesclean,housesdesc,id);return count;}//根据id修改房间空闲状态public int updateId(String id,String housesnull){String sql="update room set housesnull=?where roomid=?";int count= DBUtil.update(sql,housesnull,id);return count;}
}
2.2、旅客信息
import com.keshe.domain.RoomIn;
import com.keshe.util.DBUtil;import java.util.List;public class RoomInDao {//插入入住信息public int insert(RoomIn ri){String sql="insert roomIn(username,idcard,roomId,datain,dataout,dataNum) values (?,?,?,?,?,?)";int count= DBUtil.update(sql,ri.getUsername(),ri.getIdcard(),ri.getRoomId(),ri.getDatain(),ri.getDataout(),ri.getdataNum());return count;}//修改入住天数public int uptateDateNum(int dataNum,String idcard){String sql="uptate roomIn set dataNum=? where username=?";int count=DBUtil.update(sql,dataNum,idcard);return count;}//修改退房日期(退房)public int updateDateout(String dateout,String idcard){String sql="update roomIn set dataout=? where idcard=?";int count=DBUtil.update(sql,dateout,idcard);return count;}//删除入住信息public int delete(String idcard){String sql="delete from roomIn where idcard=?";int count=DBUtil.update(sql,idcard);return count;}//查看入住名单public List<RoomIn> select(){String sql="select * from roomIn";List<RoomIn> ri =DBUtil.query(sql,RoomIn.class);return ri;}//根据姓名查询入住名单信息public List<RoomIn> selectUserName(String username){String sql="select * from roomIn where username=?";List<RoomIn> ri =DBUtil.query(sql,RoomIn.class,username);return ri;}
}
2.3、管理员信息
import com.keshe.domain.User;
import com.keshe.util.DBUtil;import java.util.List;public class UserDao {//添加账号至数据库public int insertUSer(User user){String sql="insert user values(?,?)";int count= DBUtil.update(sql,user.getId(),user.getPassword());//返回影响数据数目return count;}//查询public List<User> selectId(String id){String sql = "select * from user where id=?";List<User> list=DBUtil.query(sql,User.class,id);return list;}//修改密码public int updateUser(String id,String passworld){String sql="update user set password=? where id=?";int count= DBUtil.update(sql,passworld,id);return count;}
}
3、util包
3.1、JDBC交互数据库(DBUtil)
import com.keshe.domain.Room;import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class DBUtil {//数据库用户名private static final String USERNAME = "root";//数据库密码private static final String PASSWORD = "root456";//驱动信息private static final String DRIVER = "com.mysql.cj.jdbc.Driver";//数据库地址private static final String URL = "jdbc:mysql://43.138.53.7/room"+ "?serverTimezone=UTC&useSSL=false"+"&useUnicode=true&characterEncoding=UTF-8";//private static Connection connection;//private static PreparedStatement pstmt;//private static ResultSet resultSet;static{try {Class.forName(DRIVER);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static Connection getConnection(){Connection connection = null;try {//Class.forName(DRIVER);connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return connection;}public static void close(Connection connection,PreparedStatement pstmt,ResultSet resultSet){try {if(resultSet!=null){resultSet.close();}if(pstmt!=null){pstmt.close();}if(connection!=null){connection.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*将查询到的结果集转换成自定义类的对象,并存在在List中<T>声明此方法持有一个类型T,此方法为一个泛型方法Class<T> cla指明泛型T的具体类型params是一个Object类型的数组*/public static <T> List<T> query(String sql, Class<T> cla, Object... params){Connection conn = DBUtil.getConnection();PreparedStatement ps = null;ResultSet rs = null;List<T> list = null;try{//预编译ps = conn.prepareStatement(sql);if(params != null){for(int i = 0; i < params.length; ++i){//替换指定位置的占位符ps.setObject(i+1, params[i]);}}//执行查询rs = ps.executeQuery();//获取描述结果集基础信息(列数、数据类型、字段)的meta元数据ResultSetMetaData rsd = rs.getMetaData();//返回值list = new ArrayList<T>();while (rs.next()){//实例化一个泛型类//T t = cla.newInstance();T t = cla.getDeclaredConstructor().newInstance(); // 创建对象for (int i = 0; i < rsd.getColumnCount(); ++i){//获取列名,sql语句中有别名返回别名,否则返回值与getColumnName()方法相同String columnName = rsd.getColumnLabel(i+1);//根据列名取值Object columnValue = rs.getObject(columnName);//根据索引取值//Object value = rs.getObject(i+1);//根据列名获取属性Field field;field = cla.getDeclaredField(convertFormat(columnName));//开启私有变量访问权限field.setAccessible(true);//给对象t的变量赋值field.set(t, columnValue);}list.add(t);}return list;} catch (Exception e) {e.printStackTrace();return null;}finally {// 关闭资源DBUtil.close(conn, ps, rs);}}//表中字段有可能有下划线,下划线命名转小驼峰命名public static String convertFormat(String source){String[] strings = source.split("_");StringBuffer sf = new StringBuffer(strings[0]);for(int i = 1; i < strings.length; ++i){sf.append(strings[i].substring(0,1).toUpperCase() + strings[i].substring(1));}return sf.toString();}/*** 对任意表的一个非查询** @param sql* @param objects* @return*/public static int update(String sql, Object... objects) {Connection conn = DBUtil.getConnection();PreparedStatement ps = null;int i = 0;try {// 预编译ps = conn.prepareStatement(sql);// 给sql赋值for (int j = 0; j < objects.length; j++) {ps.setObject(j + 1, objects[j]);}// 执行i = ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {// 关闭资源DBUtil.close(conn, ps, null);}return i;}public static void main(String[] args) {String sql="select * from room";List<Room> roomList=DBUtil.query(sql, Room.class);for(Room r:roomList){System.out.println(r);}
// String sql1="delete from Room where roomid=?";
// int i=DBUtil.update(sql1,4);
// System.out.println(i);}
}
3.2、实时时间(DateUtil)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class DateUtils {private DateUtils(){}//防止外界对象默认无参构造//将日期转化为指定格式的字符串(静态方法,用类名即可访问)public static String dateToString(Date date,String format){SimpleDateFormat s = new SimpleDateFormat(format);//指定格式对象创建String sb=s.format(date);//将传入的日转化为指定格式并转换为字符串return sb;}//将字符串解析为指定的日期格式public static Date stringToDate(String s,String format) throws ParseException {SimpleDateFormat dd=new SimpleDateFormat(format);Date d=dd.parse(s);//parse将指定的字符串解析为时间格式return d;}
}
4、业务层(server层)
4.1、房间(RoomContorller)
import com.keshe.dao.RoomDao;
import com.keshe.domain.Room;import java.util.List;public class RoomContorller {//显示房间信息至tablepublic String[][] showALL() {RoomDao rd = new RoomDao();List<Room> allRoom = rd.select();String table[][] = new String[allRoom.size()][8];for (int i = 0; i < allRoom.size(); i++) {table[i][0] = allRoom.get(i).getRoomid();table[i][1] = allRoom.get(i).getHousename();table[i][2] = allRoom.get(i).getHomeloc();table[i][3] = Integer.toString(allRoom.get(i).getHousecoast());table[i][4] = allRoom.get(i).getHousesnull();table[i][5] = allRoom.get(i).getHousesclean();table[i][6] = allRoom.get(i).gethousesdesc();table[i][7] = null;}return table;}//添加客房信息public int addRoom(String roomid, String housename, String homeloc, int housecoast, String housesnull, String housesclean, String housesdesc) {String coast = Integer.toString(housecoast);int count = 0;if (roomid.equals("") || housename.equals("") || homeloc.equals("") || coast.equals("") || housesnull.equals("") || housesclean.equals("") || housesdesc.equals("")) {count = -1;}Room rm = new Room(roomid, housename, homeloc, housecoast, housesnull, housesclean, housesdesc);RoomDao rc = new RoomDao();count = rc.insert(rm);//调用数据库return count;}//查询客房信息(根据房间类型)public String[][] selectName(String name) {RoomDao rd = new RoomDao();List<Room> allRoom = rd.selectName(name);String table[][] = new String[allRoom.size()][8];for (int i = 0; i < allRoom.size(); i++) {table[i][0] = allRoom.get(i).getRoomid();table[i][1] = allRoom.get(i).getHousename();table[i][2] = allRoom.get(i).getHomeloc();table[i][3] = Integer.toString(allRoom.get(i).getHousecoast());table[i][4] = allRoom.get(i).getHousesnull();table[i][5] = allRoom.get(i).getHousesclean();table[i][6] = allRoom.get(i).gethousesdesc();table[i][7] = null;}System.out.println("房间类型查询成功!");return table;}//查询客房信息(根据编号类型)public String[][] selectId(String id) {RoomDao rd = new RoomDao();List<Room> allRoom = rd.selectId(id);String table[][] = new String[allRoom.size()][8];for (int i = 0; i < allRoom.size(); i++) {table[i][0] = allRoom.get(i).getRoomid();table[i][1] = allRoom.get(i).getHousename();table[i][2] = allRoom.get(i).getHomeloc();table[i][3] = Integer.toString(allRoom.get(i).getHousecoast());table[i][4] = allRoom.get(i).getHousesnull();table[i][5] = allRoom.get(i).getHousesclean();table[i][6] = allRoom.get(i).gethousesdesc();table[i][7] = null;}System.out.println("编号查询成功!");return table;}//修改客房信息public int updateRoom(String id, String housename, String homeloc, int housecoast, String housesnull, String housesclean, String housesdesc) {RoomDao rd = new RoomDao();String coast = Integer.toString(housecoast);int count = 0;if (id.equals("") || housename.equals("") || homeloc.equals("") || coast.equals("") || housesnull.equals("") || housesclean.equals("") || housesdesc.equals("")) {count = -1;return count;}count = rd.update(id, housename, homeloc, housecoast, housesnull, housesclean, housesdesc);return count;}//删除客房public int deleteRoom(String id){RoomDao rd=new RoomDao();int count=0;if(id.equals("")){count=-1;return count;}count=rd.delete(id);return count;}
}
4.2、旅客(RoomInContorller)
import java.util.Date;
import java.util.List;import com.keshe.dao.RoomDao;
import com.keshe.dao.RoomInDao;
import com.keshe.domain.Room;
import com.keshe.domain.RoomIn;
import com.keshe.util.DateUtils;public class RoomInContorller {//获取时间public RoomInContorller() {}public String getTime() {Date d = new Date();String time = DateUtils.dateToString(d, "yyyy-MM-dd HH:mm:ss");return time;}//显示入住信息至tablepublic String[][] showALL() {RoomInDao ri = new RoomInDao();List<RoomIn> allRoomIn = ri.select();String table[][] = new String[allRoomIn.size()][6];for (int i = 0; i < allRoomIn.size(); i++) {table[i][1] = allRoomIn.get(i).getUsername();table[i][2] = allRoomIn.get(i).getIdcard();table[i][0] = allRoomIn.get(i).getRoomId();table[i][3] = allRoomIn.get(i).getDatain();table[i][4] = allRoomIn.get(i).getDataout();table[i][5] = Integer.toString(allRoomIn.get(i).getdataNum());}return table;}//新旅客入住信息输入public int insertRoomIn(String roomid, String username, String idcard, int dataNum) {int count = 0;if (roomid.equals("") || username.equals("") || idcard.equals("") || dataNum == 0) {count = -1;}//在客房表中查询是否有该客房RoomDao rd = new RoomDao();List<Room> room = rd.select();for (int i = 0; i < room.size(); i++) {if (room.get(i).getRoomid().equals(roomid)) {if (room.get(i).getHousesnull().equals("是")) {String datain = getTime();String dataout = "暂未退房";RoomIn r = new RoomIn(username, idcard, roomid, datain, dataout, dataNum);RoomInDao ri = new RoomInDao();count = ri.insert(r);//调用数据库int test = rd.updateId(roomid, "否");if (test != 0) {System.out.println("修改客房状态成功!");}return count;}else{System.out.println("该客房已被占用!");return -2;}}}System.out.println("客房中无该客房信息,不可入住");return count;}//旅客退房public int updateRoomInNull(String idcard) {RoomInDao ri = new RoomInDao();List<RoomIn> allRoomIn = ri.select();int count = 0;if (idcard.equals("")) {System.out.println("输入数据后再搜索!");return -1;}for (int i = 0; i < allRoomIn.size(); i++) {if ((allRoomIn.get(i).getIdcard()).equals(idcard)) {String dateout = getTime();count = ri.updateDateout(dateout, idcard);RoomDao rd = new RoomDao();int test = rd.updateId(allRoomIn.get(0).getRoomId(), "是");if (test != 0) {System.out.println("修改客房状态成功!");} else {System.out.println("修改客房状态失败");}return count;//退房办理成功}}return count;}
}
4.3、管理员(UserContorller)
import com.keshe.dao.UserDao;
import com.keshe.domain.User;import java.util.List;public class UserContorller {//注册功能public int login(String id, String password) {if (id.equals("") || password.equals("")) {return 0;}//查验账号是否存在UserDao us = new UserDao();List<User> list = us.selectId(id);//查询数据库中是否有该账号System.out.println("用户名:" + id + "\n密码:" + password);if (list.size() == 0) {//账号不存在User user = new User(id, password);int i = us.insertUSer(user);if (i == 1) {System.out.println("注册成功");return 1;} else {System.out.println("注册失败");return -1;}} else {System.out.println("账号已存在");return -2;}}//登录public int login_in(String id, String password) {UserDao us = new UserDao();List<User> list = us.selectId(id);//查询数据库中是否有该账号System.out.println("用户名:" + id + "\n密码:" + password);if (id.equals("") || password.equals("")) {return 0;}if (list.size() == 0) {System.out.println("当前无该账号,请先注册");} else {User user = list.get(0);if (user.getPassword().equals(password)) {System.out.println("登录成功");return 1;} else {System.out.println("登录失败");return -1;}}return -1;}//修改密码public int updatePassword(String id,String olePassword,String newPassword){UserDao us=new UserDao();int count=0;List<User> user= us.selectId(id);if(id.equals("")||olePassword.equals("")||newPassword.equals("")){return -2;}if(user.size()==0){return -3;}if(user.get(0).getPassword().equals(olePassword)){count=us.updateUser(id,newPassword);return count;}else{System.out.println("原密码错误");return -1;}}
}
5、数据显示层(JSP层)
此处代码过多,需要者联系博主私发~~~~~
6、测试层(test)
import com.keshe.jsp.Login;public class test {public static void main(String[] args) {new Login().setVisible(true);}
}
基于javaSwing、MySQL的酒店客房管理系统(附源码)相关推荐
- 基于Java毕业设计中小型酒店客房预订系统源码+系统+mysql+lw文档+部署软件
基于Java毕业设计中小型酒店客房预订系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计中小型酒店客房预订系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B ...
- 计算机毕业设计springboot酒店客房管理系统8yj0v源码+系统+程序+lw文档+部署
计算机毕业设计springboot酒店客房管理系统8yj0v源码+系统+程序+lw文档+部署 计算机毕业设计springboot酒店客房管理系统8yj0v源码+系统+程序+lw文档+部署 本源码技术栈 ...
- 计算机毕业设计springboot酒店客房管理系统e03qm源码+系统+程序+lw文档+部署
计算机毕业设计springboot酒店客房管理系统e03qm源码+系统+程序+lw文档+部署 计算机毕业设计springboot酒店客房管理系统e03qm源码+系统+程序+lw文档+部署 本源码技术栈 ...
- [附源码]计算机毕业设计Python酒店客房管理系统(程序+源码+LW文档)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
- 基于PHP+MySQL的学生信息管理系统(源码)
项目名称:基于PHP+MySQL的学生信息管理系统 本系统是一个用于管理学生信息的管理系统,包括基本的增删改查,系统使用PHP语言开发,使用MySQL数据库,可以供初学者参考使用. 系统环境 MySQ ...
- 用Python实现基于人脸识别的门禁管理系统(附源码)
项目介绍 基于人脸识别的门禁管理系统 (Python+Django+RESTframework+JsonWebToken+Redis+Dlib) 该项目为宿舍门禁系统管理,并额外加入宿舍管理.水电费管 ...
- 基于Springboot开发实现的图书管理系统(附源码)
图书管理系统 ,使用当前最为流行的 SpringBoot 框架,可作为springboot的入门项目练习使用,也可稍加改进做一个毕业设计项目. 一.相关技术栈 前端: Thymeleaf.Layui. ...
- 基于B/S的酒店客房管理系统
技术:Java.JSP等 摘要: 本论文主要论述了基于Web技术的酒店客房管理系统的设计与实现.在介绍动态网页开发技术和数据库访问技术基础上,提出了酒店客房管理系统的组成与结构,论述了本系统所使用道的 ...
- 基于SSM框架+MySQL的超市订单管理系统【源码+文档+PPT】
目录 1.系统需求分析 1.1 系统功能分析 1.2 系统功能需求 1.3 系统性能需求 2.数据库设计 2.1 数据库需求分析 3.数据库物理结构设计 4.各功能模块的设计与实现 4.1 开发框架 ...
- 基于Springboot的个人健康监控管理系统(源码+MySQL数据库+论文)
目录 1.背景分析 2.功能模块(图) 3.数据库设计 4.项目展示 5.论文目录结构 6.源码+数据库+50页论文下载地址 1.背景分析 健康管理的思路和实践最初出现在美国.如同其他学科和行业一样, ...
最新文章
- 2021新兴经济体大学排名发布,129所中国高校上榜!
- 京东AI战略宏图展现 不枉挖来这么多AI大牛
- web前端技巧-ES6新特性与重点知识汇总(二)
- Cocos2d-x--Box2D绘制出两个矩形框的解决方案
- android软件中加入广告实现方法
- git 命令详解_再次学习Git版本控制工具
- 湖南工业大学计算机专硕调剂,2020考研调剂:湖南工业大学生物信息实验室2020考研调剂信息...
- Siki_Unity_2-9_C#高级教程(未完)
- 学生成绩管理系统(C语言实现)
- 用友NC合同编码自定义
- 用优盘装系统看不到计算机本身的硬盘,如果U盘安装系统找不到硬盘怎么办
- 电脑出现无法访问您试图使用的功能所在的网络位置怎么办?(清除软件卸载残留)
- http协议如何获取请求参数
- <C++>初识多态,剖析virtual关键字
- webpy实时展示mysql数据库_webpy使用mysql数据库操作(web.database)
- 工程力学(14)—弯曲内力
- 普通最小二乘法、加权最小二乘法、广义最小二乘法
- ODT(old driver tree)详解(带例题)
- OpenCV学习记录 三 (傅里叶逆变换原理及实现)
- STM32C8T6 CAN常见波特率配置表
热门文章
- 你真的懂智慧园区数字平台?快来看看吧
- 信息学奥赛与大学计算机课程,为什么要学信息学奥赛(NOIP)
- 真彩色、假彩色和伪彩色的区别
- 明星也爱字体——赵丽颖秀气字体:(江湖少女两版)蓄势待发
- 【阿里云生活物联网架构师专题 ⑥】ESP8266接入阿里生活飞燕平台国际版,实现亚马逊Alexa Echo音响语音控制;
- VBS中实现99乘法表的输出
- Java求取主析取范式、主合取范式、成真赋值、成假赋值、打印真值表
- Linux登录公开ftp命令,linux下登录ftp, lftp命令详解
- ftp服务器复制文件命令,FTP服务器的Copy命令的使用
- 图像白平衡原理及实现