SSM框架宿舍管理系统

球助!真的球助!
问题:利用SSM框架做一个宿舍信息管理系统,实现基础的四个功能:增删改查
要求:使用SSM框架(Spring+SpringMVC+MyBatis)
使用MySQL数据库创建相应的表
使用IDEA
使用MySQL数据库创建相应的表
界面设计整洁
功能实现在网页中体现

这种还是比较简单的,好写,就是价格太低,会的不想做。

现在作业都不用自己做,花个15光明正大的来贴吧要答案了?

哈哈,你至少自己要先做一点工作呀。如果谁帮你把这个做了,那不是害了你吗?

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/644052
  • 这篇博客你也可以参考下:SSM + MySQL 服装商城
  • 除此之外, 这篇博客: SSM框架整合案例中的 3.IDEA中配置MySQL数据库的连接 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 直接查看详细步骤:IDEA中配置MySQL数据库的连接

  • 以下回答由chatgpt基于相关博客总结生成:

    由于这个问题需要涉及到SSM框架的使用,所以在回答之前,首先需要确保你已经掌握以下几个基础概念:Spring、SpringMVC、MyBatis。

    1. 创建MySQL数据库表格

    首先,需要进行数据库表的设计,设计的思路应该是建立一个 Branches 和一个 Cityarea 表来管理宿舍信息。

    创建 Branches 表格,需要按照 Branches.java 里面的字段进行创建,这里假设使用的是 MySQL 数据库:

    CREATE TABLE Branches(
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255) NOT NULL,
        city_area_id INT NOT NULL,
        address VARCHAR(255) NOT NULL,
        telephone VARCHAR(255) NOT NULL,
        FOREIGN KEY (city_area_id) REFERENCES Cityarea(id)
    );
    

    同样,创建 Cityarea 表格,需要按照 Cityarea.java 里面的字段进行创建:

    CREATE TABLE Cityarea(
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255) NOT NULL
    );
    
    1. 实现增删改查四个功能

    在 SSM 框架中,一般使用 MyBatis 来操作数据库,所以需要编写实体类、Mapper、Service、Controller。

    实体类 Branches 和 Cityarea 已经在参考资料中给出,这里需要对它们进行相关注解的配置。

    Branches.java

    @Data //注解来自于 lombok, @Data 包含了 @ToString、@EqualsAndHashCode、@Getter、@Setter 和 @RequiredArgsConstrucotor 注解
    @AllArgsConstructor //注解来自于 lombok, 自动生成含有所有参数的构造函数
    @NoArgsConstructor //注解来自于 lombok, 自动生成无参构造函数
    public class Branches {
        /**
         * 网点ID
         */
        private Integer id;
        /**
         * 网点名称
         */
        private String name;
        /**
         *城区ID
         */
        private Cityarea cityAreald;
        /**
         *地址
         */
        private String address;
        /**
         *联系电话
         */
        private String telephone;
    }
    

    Cityarea.java

    @Data //注解来自于 lombok, @Data 包含了 @ToString@EqualsAndHashCode@Getter@Setter  @RequiredArgsConstrucotor 注解
    @AllArgsConstructor //注解来自于 lombok, 自动生成含有所有参数的构造函数
    @NoArgsConstructor //注解来自于 lombok, 自动生成无参构造函数
    public class Cityarea {
        /**
         * 城区ID
         */
        private Integer id;
        /**
         * 城区名称
         */
        private String name;
    }
    

    接下来是映射文件 Mapper,文件名为 BranchesMapper.xml:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.xxx.xxx.mapper.BranchesMapper">
        <!-- 查询 -->
        <select id="findAllBranches" resultType="com.xxx.xxx.entity.Branches">
            SELECT * FROM Branches
        </select>
        <!-- 增加 -->
        <insert id="addBranches" parameterType="com.xxx.xxx.entity.Branches">
            INSERT INTO Branches (name, city_area_id, address, telephone)
            VALUES(#{name}, #{cityAreald.id}, #{address}, #{telephone})
        </insert>
        <!-- 删除 -->
        <delete id="deleteBranches" parameterType="int">
            DELETE FROM Branches WHERE id = #{id}
        </delete>
        <!-- 修改 -->
        <update id="updateBranches" parameterType="com.xxx.xxx.entity.Branches">
            UPDATE Branches SET name=#{name}, city_area_id=#{cityAreald.id}, address=#{address}, telephone=#{telephone}
            WHERE id=#{id}
        </update>
    </mapper>
    

    然后是 Service 层,BranchesService.java:

    public interface BranchesService {
        List<Branches> findAllBranches();
        void addBranches(Branches branches);
        void deleteBranches(int id);
        void updateBranches(Branches branches);
        Branches findById(int id);
    }
    

    ServiceImpl 的代码如下,BranchesServiceImpl.java:

    @Service
    @Transactional //可以开启事务
    public class BranchesServiceImpl implements BranchesService {
        @Autowired
        private BranchesMapper branchesMapper;
        @Override
        public List<Branches> findAllBranches() {
            return branchesMapper.findAllBranches();
        }
    
        @Override
        public void addBranches(Branches branches) {
            branchesMapper.addBranches(branches);
        }
    
        @Override
        public void deleteBranches(int id) {
            branchesMapper.deleteBranches(id);
        }
    
        @Override
        public void updateBranches(Branches branches) {
            branchesMapper.updateBranches(branches);
        }
    
        @Override
        public Branches findById(int id) {
            return branchesMapper.findById(id);
        }
    }
    

    RestController 层代码如下,BranchesController.java:

    @RestController
    @RequestMapping("/branches")
    public class BranchesController {
        @Autowired
        private BranchesService branchesService;
    
    @GetMapping("/show")
        public String show(Model model) {
            List<Branches> branchesList = branchesService.findAllBranches();
            model.addAttribute("ShowList", branchesList);
            return "show.jsp";
        }
    
    @RequestMapping(value = "/add", method = RequestMethod.GET)
        public String add(Model model) {
            model.addAttribute("cityareaList", cityareaService.findAllCityarea());
            return "add.jsp";
        }
    
    @PostMapping("/add")
        public String add(@ModelAttribute Branches branches) {
            branchesService.addBranches(branches);
            return "redirect:/branches/show";
        }
    
    @RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
        public String update(@PathVariable("id") Integer id, Model model) {
            Branches branches = branchesService.findById(id);
            model.addAttribute("updateList", branches);
            model.addAttribute("cityareaList", cityareaService.findAllCityarea());
            return "update.jsp";
        }
    
    @PostMapping("/update")
        public String update(@ModelAttribute Branches branches) {
            branchesService.updateBranches(branches);
            return "redirect:/branches/show";
        }
    
    @RequestMapping("/del/{id}")
        public String del(@PathVariable("id") Integer id) {
            branchesService.deleteBranches(id);
            return "redirect:/branches/show";
        }
    }
    

    最后是界面设计,在上面的 Controller 代码片段已经给出了show.jsp、add.jsp、update.jsp。

    需要使用的工具和技术支持包括:Eclipse、Tomcat、MySQL、Spring、MyBatis、SpringMVC。

实现一个基础的宿舍信息管理系统,需要按照以下步骤进行:

  1. 创建MySQL数据库,并创建相应表格
    可以使用MySQL Workbench等工具来创建数据库以及表格。为了创建一个宿舍信息管理系统,你需要创建一些表格,例如dorm表、student表等,以存储相关的信息。在这些表格中,你需要注意选择各种属性的数据类型和关系类型等。

  2. 下载并配置SSM框架
    SSM框架是一组被广泛使用的Java技术,它提供了一个结构清晰的应用程序开发框架。你可以在此处 下载 SSM框架,然后在你的项目中引入相应的依赖项。在引入依赖项后,你需要在mybatis-config.xmlspring.xml文件中配置数据库连接,以便在应用程序中使用数据库。

  3. 创建Java Bean类和Mapper接口
    使用MyBatis ORM框架,你可以将各种数据映射到Java Bean类中。你需要创建一些Java Bean类,例如DormStudent,然后为这些Bean类创建相应的Mapper接口。这些Mapper接口负责首次操作数据库查询、插入、更新和删除。

  4. 创建Service和Controller层
    在你的应用程序中,Service和Controller是两个重要的层次。 Service层可以将你的数据库操作封装起来,而Controller层管理你视图和请求。你需要在你的应用程序中创建一些Service和Controller层的类,并使用@Service@Controller注释标注。

  5. 创建JSP视图
    你需要使用JSP视图来处理用户请求,并将这些请求转发到相应的控制器。可以从模板库中使用一些现有的JSP文件,或者自己创建设计良好的JSP文件。

使用上述步骤,你可以完整地构建一个基础的宿舍信息管理系统,实现增删改查等基础功能。

为了帮助您实现宿舍信息管理系统的增删改查功能,我将为您提供一个基本的SSM框架的示例代码和步骤。以下是一般的步骤和要求:

创建数据库表:首先,在MySQL数据库中创建适当的表,以存储宿舍信息。您可以根据您的需求和数据模型创建适当的表结构,例如dormitory表,包含id、name、capacity等字段。

配置Spring和SpringMVC:在项目中配置Spring和SpringMVC,确保您的项目正确加载这些框架,并能够处理请求和响应。

创建实体类:创建与数据库表对应的Java实体类,例如Dormitory类,包含与数据库表字段对应的属性。

创建数据访问层(DAO):使用MyBatis框架创建数据访问层,编写数据库操作的接口和实现类。在这个例子中,您将需要创建一个DormitoryMapper接口,定义增删改查等数据库操作的方法。

创建业务逻辑层(Service):创建业务逻辑层,编写对宿舍信息进行增删改查等操作的方法。在这个例子中,您可以创建一个DormitoryService类,调用数据访问层的方法来实现相应的功能。

创建控制器(Controller):创建控制器类,处理前端请求并调用业务逻辑层的方法进行相应的处理。在这个例子中,您可以创建一个DormitoryController类,使用SpringMVC注解来处理请求,并调用DormitoryService中的方法来实现对宿舍信息的增删改查。

创建网页界面:根据您的需求和设计,创建相应的网页界面。使用HTML、CSS和JavaScript等前端技术来设计整洁和用户友好的界面。

请注意,这里只提供了一般的步骤和要求,具体的代码实现可能因您的需求和设计而有所不同。建议您参考相关的SSM框架教程和示例,以获取更具体和准确的代码和配置细节。

网上有若依单体,自己看看用户管理怎么写的,增删改查你就会了。程序员不能只想别人给你现成的东西。

可以为您提供一些关于使用SSM框架开发宿舍信息管理系统的基本步骤及相关技术要点。下面是一个简单的演示:

1.创建数据库

首先,您需要在MySQL数据库中创建相应的表以存储您的宿舍信息。您可以使用以下SQL语句创建一个名为“dormitory”的数据库,并在其中创建一个名为“dorm_info”的表:

CREATE DATABASE dormitory;
USE dormitory;

CREATE TABLE dorm_info (
    id INT(11) NOT NULL AUTO_INCREMENT,
    dorm_no VARCHAR(20) DEFAULT NULL COMMENT '宿舍号',
    building_no INT(11) DEFAULT NULL COMMENT '楼号',
    student_count INT(11) DEFAULT NULL COMMENT '入住人数',
    PRIMARY KEY (id)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
2.配置SSM框架

接下来,您需要在IDEA中配置SSM框架,包括Spring、SpringMVC和MyBatis三个组件。具体步骤如下:

(1)添加Spring依赖

在您的项目中添加Spring依赖项,例如通过Maven添加以下依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
</dependency>
(2)添加SpringMVC依赖

同样,在您的项目中添加SpringMVC依赖项,例如通过Maven添加以下依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
</dependency>
(3)添加MyBatis依赖

在您的项目中添加MyBatis依赖项,例如通过Maven添加以下依赖项:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>${mybatis.version}</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>${mybatis-spring.version}</version>
</dependency>
(4)配置Spring和MyBatis

创建Spring配置文件,并在其中配置数据源和MyBatis的SqlSessionFactory等相关信息。例如,在applicationContext.xml文件中添加以下内容:

<!-- 数据源配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<!-- SqlSessionFactory 配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

<!-- 扫描dao包,动态实现Dao接口,注入到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.example.dao"/>
</bean>
(5)配置SpringMVC

创建SpringMVC的配置文件,并在其中配置视图解析器和控制器等相关信息。例如,在springmvc-servlet.xml文件中添加以下内容:

<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

<!-- 静态资源处理 -->
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>

<!-- 扫描controller包,注入到spring容器中 -->
<context:component-scan base-package="com.example.controller"/>


3.编写实体类、DAO接口及Mapper文件

在您的项目中创建相应的实体类和DAO接口,并使用MyBatis的注解或XML文件配置相关的SQL语句。例如,您可以创建一个名为DormInfo的实体类:

public class DormInfo {
private Integer id;
private String dormNo;
private Integer buildingNo;
private Integer studentCount;

// getter / setter
}


然后,在DAO接口中定义相关的增删改查方法:

public interface DormInfoDao {
void addDormInfo(DormInfo dormInfo);
void deleteDormInfo(Integer id);
void updateDormInfo(DormInfo dormInfo);
DormInfo getDormInfoById(Integer id);
List<DormInfo> getAllDormInfo();
}


最后,在Mapper文件中配置相应的SQL语句。例如,在DormInfoMapper.xml文件中添加以下内容:

<mapper namespace="com.example.dao.DormInfoDao">
<resultMap id="dormInfoResultMap" type="com.example.entity.DormInfo">
<id property="id" column="id"/>
<result property="dormNo" column="dorm_no"/>
<result property="buildingNo" column="building_no"/>
<result property="studentCount" column="student_count"/>
</resultMap>

<insert id="addDormInfo" parameterType="com.example.entity.DormInfo">
    INSERT INTO dorm_info (dorm_no, building_no, student_count) VALUES (#{dormNo}, #{buildingNo}, #{studentCount})
</insert>

<delete id="deleteDormInfo" parameterType="int">
    DELETE FROM dorm_info WHERE id = #{id}
</delete>

<update id="updateDormInfo" parameterType="com.example.entity.DormInfo">
    UPDATE dorm_info SET dorm_no = #{dormNo}, building_no = #{buildingNo}, student_count = #{studentCount} WHERE id = #{id}
</update>

<select id="getDormInfoById" resultMap="dormInfoResultMap" parameterType="int">
    SELECT * FROM dorm_info WHERE id = #{id}
</select>

<select id="getAllDormInfo" resultMap="dormInfoResultMap">
    SELECT * FROM dorm_info
</select>
</mapper>


4.编写Controller和JSP页面

最后,您需要编写相关的Controller和JSP页面以实现宿舍信息管理系统的基础四个功能:增删改查。例如,在DormInfoController中添加以下方法:

@Controller
@RequestMapping("/dorm")
public class DormInfoController {

@Autowired
private DormInfoDao dormInfoDao;

@RequestMapping("/add")
public String add(DormInfo dormInfo) {
    dormInfoDao.addDormInfo(dormInfo);
    return "redirect:/dorm/list";
}

@RequestMapping("/delete/{id}")
public String delete(@PathVariable("id") Integer id) {
    dormInfoDao.deleteDormInfo(id);
    return "redirect:/dorm/list";
}

@RequestMapping("/update")
public String update(DormInfo dormInfo) {
    dormInfoDao.updateDormInfo(dormInfo);
    return "redirect:/dorm/list";
}

@RequestMapping("/list")
public String list(Model model) {
    List<DormInfo> dormInfoList = dormInfoDao.getAllDormInfo();
    model.addAttribute("dormInfoList", dormInfoList);
    return "dorm_list";
}

@RequestMapping("/edit/{id}")
public String edit(@PathVariable("id") Integer id, Model model) {
    DormInfo dormInfo = dormInfoDao.getDormInfoById(id);
    model.addAttribute("dormInfo", dormInfo);
    return "dorm_edit";
}
}


然后,您需要创建相关的JSP页面以展示宿舍信息和实现基本操作。例如,您可以创建一个名为dorm_list.jsp的页面用于展示所有宿舍信息,并添加以下内容:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>宿舍信息管理系统</title>
</head>
<body>
<h2>宿舍列表</h2>
<table border="1">
<tr>
<th>ID</th>
<th>宿舍号</th>
<th>楼号</th>
<th>入住人数</th>
<th>操作</th>
</tr>

<c:forEach items="
�
�
�
�
�
�
�
�
�
�
�
�
"
�
�
�
=
"
�
�
�
�
�
�
�
�
"
>
<
�
�
>
<
�
�
>
dormInfoList"var="dormInfo"><tr><td>{dormInfo.id}</td>
<td>
�
�
�
�
�
�
�
�
.
�
�
�
�
�
�
<
/
�
�
>
<
�
�
>
dormInfo.dormNo</td><td>{dormInfo.buildingNo}</td>
<td>
�
�
�
�
�
�
�
�
.
�
�
�
�
�
�
�
�
�
�
�
�
<
/
�
�
>
<
�
�
>
<
�
ℎ
�
�
�
=
"
dormInfo.studentCount</td><td><ahref="{pageContext.request.contextPath}/dorm/edit/
�
�
�
�
�
�
�
�
.
�
�
"
>
编辑
<
/
�
>
<
�
ℎ
�
�
�
=
"
dormInfo.id">编辑</a><ahref="{pageContext.request.contextPath}/dorm/delete/${dormInfo.id}">删除</a>
</td>
</tr>
</c:forEach>
</table>

<br />
<a href="${pageContext.request.contextPath}/dorm/add.jsp">添加宿舍信息</a>
</body>
</html>


还可以创建一个名为dorm_edit.jsp的页面用于编辑宿舍信息,并添加以下内容:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>编辑宿舍信息</title>
</head>
<body>
<h2>编辑宿舍信息</h2>

<form action="
�
�
�
�
�
�
�
�
�
�
�
.
�
�
�
�
�
�
�
.
�
�
�
�
�
�
�
�
�
�
ℎ
/
�
�
�
�
/
�
�
�
�
�
�
"
�
�
�
ℎ
�
�
=
"
�
�
�
�
"
>
<
�
�
�
�
�
�
�
�
�
=
"
ℎ
�
�
�
�
�
"
�
�
�
�
=
"
�
�
"
�
�
�
�
�
=
"
pageContext.request.contextPath/dorm/update"method="post"><inputtype="hidden"name="id"value="{dormInfo.id}" />

<p><label>宿舍号:</label><input type="text" name="dormNo" value="${dormInfo.dormNo}" /></p>
<p><label>楼号:</label><input type="text" name="buildingNo" value="${dormInfo.buildingNo}" /></p>
<p><label>入住人数:</label><input type="text" name="studentCount" value="${dormInfo.studentCount}" /></p>

<p><input type="submit" value="保存" /></p>
</form>

<br />
<a href="${pageContext.request.contextPath}/dorm/list">返回宿舍列表</a>
</body>
</html>


最后,您可以创建一个名为dorm_add.jsp的页面用于添加宿舍信息,并添加以下内容:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加宿舍信息</title>
</head>
<body>
<h2>添加宿舍信息</h2>

<form action="${pageContext.request.contextPath}/dorm/add" method="post">
<p><label>宿舍号:</label><input type="text" name="dormNo" /></p>
<p><label>楼号:</label><input type="text" name="buildingNo" /></p>
<p><label>入住人数:</label><input type="text" name="studentCount" /></p>

<p><input type="submit" value="保存" /></p>
</form>

<br />
<a href="${pageContext.request.contextPath}/dorm/list">返回宿舍列表</a>
</body>
</html>


这些JSP页面将直接与Controller中的方法交互,实现基本的增删改查功能。







简单看下

package com.znz.controller;
 
 
import com.znz.po.Admin;
import com.znz.po.PageInfo;
import com.znz.service.AdminService;
import com.znz.util.MD5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
 
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;
 
/**
 * 用户控制器类
 */
@Controller
public class AdminController {
    // 依赖注入
    @Autowired
    private AdminService adminService;
    /**
     * 用户登录
     */
    /**
     * 将提交数据(username,password)写入Admin对象
     */
    @RequestMapping(value = "/login")
    public String login( Admin admin, Model model, HttpSession session, HttpServletRequest request) {
        // 通过账号和密码查询用户
        //将用户名使用 MD5进行加密
        admin.setA_password(MD5Util.MD5EncodeUtf8(admin.getA_password()));
        Admin ad = adminService.findAdmin(admin);
        if(ad!=null){
            session.setAttribute("ad", ad);
            return "homepage";
        }
        model.addAttribute("msg", "用户名或密码错误,请重新登录!");
        return "login";
    }
 
    /**
     * 退出登录
     */
    @RequestMapping(value = "/loginOut")
    public String loginOut(Admin admin, Model model, HttpSession session) {
        session.invalidate();
        return "login";
 
    }
 
    /**
     * 分页查询
     */
    @RequestMapping(value = "/findAdmin")
    public String findAdmin(String a_username, String a_describe,Integer pageIndex,
                            Integer a_id ,Integer pageSize, Model model) {
 
        PageInfo<Admin> ai = adminService.findPageInfo(a_username,a_describe,
                                a_id,pageIndex,pageSize);
        model.addAttribute("ai",ai);
        return "admin_list";
    }
 
    /**
     * 导出Excel
     */
    @RequestMapping(value = "/exportadminlist" , method = RequestMethod.POST)
    @ResponseBody
    public List<Admin> exportAdmin(){
        List<Admin> admin = adminService.getAll();
        return admin;
    }
 
    /**
     * 添加管理员信息
     */
    @RequestMapping(value = "/addAdmin" ,method = RequestMethod.POST)
    @ResponseBody
    public String addAdmin( @RequestBody Admin admin) {
 
        admin.setA_password(MD5Util.MD5EncodeUtf8(admin.getA_password()));
        int a = adminService.addAdmin(admin);
        return "admin_list";
    }
 
    /**
     * 删除管理员信息;将请求体a_id写入参数a_id
     */
    @RequestMapping( "/deleteAdmin")
    @ResponseBody
    public String deleteAdmin(Integer a_id) {
        int a = adminService.deleteAdmin(a_id);
        return "admin_list";
    }
 
    /**
     * 修改管理员信息
     */
    /**
     * 将提交数据(a_id,a_username...)写入Admin对象
     */
    @RequestMapping( value = "/updateAdmin", method = RequestMethod.POST)
    public String updateAdmin(Admin admin) {
 
        admin.setA_password(MD5Util.MD5EncodeUtf8(admin.getA_password()));
        int a = adminService.updateAdmin(admin);
        return "redirect:/findAdmin";
    }
 
 
    /**
     * 根据管理员Id搜索;将请求数据a_id写入参数a_id
     */
    @RequestMapping( "/findAdminById")
    public String findAdminById( Integer a_id,HttpSession session) {
        Admin a= adminService.findAdminById(a_id);
        session.setAttribute("a",a);
        return "admin_edit";
    }
 
}

宿舍信息管理系统是一个常见的信息管理系统,可以利用SSM框架进行开发。下面是一个简单的实现宿舍信息管理系统的示例:

  1. 数据库设计
    首先需要设计数据库,可以设计三张表:宿舍表、学生表和管理员表。宿舍表包括宿舍号、楼层、床位数量等字段;学生表包括学号、姓名、性别、宿舍号等字段;管理员表包括管理员账号、密码等字段。
  2. 搭建SSM框架
    使用Spring Boot搭建SSM框架,包括Spring MVC、MyBatis和Spring等组件。
  3. 实现基础功能
    实现基础的增删改查功能,包括:
  • 添加宿舍和学生信息
  • 删除宿舍和学生信息
  • 修改宿舍和学生信息
  • 查询宿舍和学生信息
  1. 页面设计
    设计宿舍信息管理系统的页面,包括添加、删除、修改和查询页面。可以使用Bootstrap等前端框架进行设计。
  2. 权限管理
    添加管理员表,实现管理员登录功能,并进行权限管理。
  3. 测试
    进行系统测试,包括对增删改查等基础功能的测试和对系统的稳定性和安全性进行测试。
    以上是一个简单的宿舍信息管理系统的开发流程,可以根据实际需求进行修改和完善。

```java
public class Student {
    private int id;
    private String name;
    private String gender;
    private String dormitory;
     // 省略getter和setter方法
}


public class Dormitory {
    private int id;
    private String number;
    private int floor;
    private int capacity;
     // 省略getter和setter方法
}


public interface StudentMapper {
    void addStudent(Student student);
    void deleteStudent(int id);
    void updateStudent(Student student);
    List<Student> getAllStudents();
    Student getStudentById(int id);
}

public interface DormitoryMapper {
    void addDormitory(Dormitory dormitory);
    void deleteDormitory(int id);
    void updateDormitory(Dormitory dormitory);
    List<Dormitory> getAllDormitories();
    Dormitory getDormitoryById(int id);
}

@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentMapper studentMapper;
     @Override
    public void addStudent(Student student) {
        studentMapper.addStudent(student);
    }
     @Override
    public void deleteStudent(int id) {
        studentMapper.deleteStudent(id);
    }
     @Override
    public void updateStudent(Student student) {
        studentMapper.updateStudent(student);
    }
     @Override
    public List<Student> getAllStudents() {
        return studentMapper.getAllStudents();
    }
     @Override
    public Student getStudentById(int id) {
        return studentMapper.getStudentById(id);
    }
}


@Service
public class DormitoryServiceImpl implements DormitoryService {
    @Autowired
    private DormitoryMapper dormitoryMapper;
     @Override
    public void addDormitory(Dormitory dormitory) {
        dormitoryMapper.addDormitory(dormitory);
    }
     @Override
    public void deleteDormitory(int id) {
        dormitoryMapper.deleteDormitory(id);
    }
     @Override
    public void updateDormitory(Dormitory dormitory) {
        dormitoryMapper.updateDormitory(dormitory);
    }
     @Override
    public List<Dormitory> getAllDormitories() {
        return dormitoryMapper.getAllDormitories();
    }
     @Override
    public Dormitory getDormitoryById(int id) {
        return dormitoryMapper.getDormitoryById(id);
    }
}

@Controller
@RequestMapping("/student")
public class StudentController {
    @Autowired
    private StudentService studentService;
     @GetMapping("/list")
    public String list(Model model) {
        List<Student> students = studentService.getAllStudents();
        model.addAttribute("students", students);
        return "student/list";
    }
     @GetMapping("/add")
    public String add(Model model) {
        model.addAttribute("student", new Student());
        return "student/add";
    }
     @PostMapping("/add")
    public String add(@ModelAttribute("student") Student student) {
        studentService.addStudent(student);
        return "redirect:/student/list";
    }
     @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") int id, Model model) {
        Student student = studentService.getStudentById(id);
        model.addAttribute("student", student);
        return "student/edit";
    }
     @PostMapping("/edit")
    public String edit(@ModelAttribute("student") Student student) {
        studentService.updateStudent(student);
        return "redirect:/student/list";
    }
     @GetMapping("/delete/{id}")
    public String delete(@PathVariable("id") int id) {
        studentService.deleteStudent(id);
        return "redirect:/student/list";
    }
}

@Controller
@RequestMapping("/dormitory")
public class DormitoryController {
    @Autowired
    private DormitoryService dormitoryService;
     @GetMapping("/list")
    public String list(Model model) {
        List<Dormitory> dormitories = dormitoryService.getAllDormitories();
        model.addAttribute("dormitories", dormitories);
        return "dormitory/list";
    }
     @GetMapping("/add")
    public String add(Model model) {
        model.addAttribute("dormitory", new Dormitory());
        return "dormitory/add";
    }
     @PostMapping("/add")
    public String add(@ModelAttribute("dormitory") Dormitory dormitory) {
        dormitoryService.addDormitory(dormitory);
        return "redirect:/dormitory/list";
    }
     @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") int id, Model model) {
        Dormitory dormitory = dormitoryService.getDormitoryById(id);
        model.addAttribute("dormitory", dormitory);
        return "dormitory/edit";
    }
     @PostMapping("/edit")
    public String edit(@ModelAttribute("dormitory") Dormitory dormitory) {
        dormitoryService.updateDormitory(dormitory);
        return "redirect:/dormitory/list";
    }
     @GetMapping("/delete/{id}")
    public String delete(@PathVariable("id") int id) {
        dormitoryService.deleteDormitory(id);
        return "redirect:/dormitory/list";
    }
}




前端代码稍微修改
html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>增加宿舍信息</title>
</head>
<body>
    <h1>增加宿舍信息</h1>
    <form action="addDormitory" method="post">
        <label for="dormitoryNumber">宿舍编号:</label>
        <input type="text" id="dormitoryNumber" name="dormitoryNumber"><br><br>
        <label for="dormitoryBuilding">宿舍楼号:</label>
        <input type="text" id="dormitoryBuilding" name="dormitoryBuilding"><br><br>
        <label for="dormitoryType">宿舍类型:</label>
        <input type="text" id="dormitoryType" name="dormitoryType"><br><br>
        <label for="bedNumber">床位数量:</label>
        <input type="text" id="bedNumber" name="bedNumber"><br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

删除
html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>删除宿舍信息</title>
</head>
<body>
    <h1>删除宿舍信息</h1>
    <form action="deleteDormitory" method="post">
        <label for="dormitoryNumber">宿舍编号:</label>
        <input type="text" id="dormitoryNumber" name="dormitoryNumber"><br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

修改

html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>修改宿舍信息</title>
</head>
<body>
    <h1>修改宿舍信息</h1>
    <form action="updateDormitory" method="post">
        <label for="dormitoryNumber">宿舍编号:</label>
        <input type="text" id="dormitoryNumber" name="dormitoryNumber"><br><br>
        <label for="dormitoryBuilding">宿舍楼号:</label>
        <input type="text" id="dormitoryBuilding" name="dormitoryBuilding"><br><br>
        <label for="dormitoryType">宿舍类型:</label>
        <input type="text" id="dormitoryType" name="dormitoryType"><br><br>
        <label for="bedNumber">床位数量:</label>
        <input type="text" id="bedNumber" name="bedNumber"><br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

查询
html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>查询宿舍信息</title>
</head>
<body>
    <h1>查询宿舍信息</h1>
    <form action="getDormitory" method="post">
        <label for="dormitoryNumber">宿舍编号:</label>
        <input type="text" id="dormitoryNumber" name="dormitoryNumber"><br><br>
        <input type="submit" value="查询">
    </form>
</body>
</html>

```