SSM项目整合操作


前言

实现功能前,需先实现 Mybatis 项目(持久层)SpringMVC项目(web层)

项目源码gitee仓库地址百度云下载地址

SpringMVC依赖库:https://pan.baidu.com/s/168g3ilpw6vta8SAOgCuBYw?pwd=1111


一、创建项目SsmDemo

右键工程名,F4,Modules,给java添加web支持
在这里插入图片描述


二、安装Springmvc依赖库

web目录下的WEB-INF目录下新建lib文件夹,复制依赖库进lib
在这里插入图片描述
导入工作路径,添加tomocat,参考2.导入工作路径


三、创建resources资源文件夹

  1. 参考:3.创建resources资源文件夹
  2. 为了提高效率,我们先删除rescources内容,再将源码中的rescources内容复制进去。
  3. resources文件夹中建立mapper文件夹
  4. 修改jdbc.properties中的数据库名、用户名和密码
    在这里插入图片描述
  5. 修改applicationContext.xml中的数据库名、用户名和密码在这里插入图片描述

四、配置web.xml【配置前端控制器】

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>
    <!-- 定义Spring MVC的前端控制器 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <!--初始化参数配置  配置xml文件路径-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:springMVC.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--Spring MVC的前端控制器拦截所有请求 -->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- spring的配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext*.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!--中文过滤器 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

五、创建springMVC.xml中涉及的文件夹

springMVC.xml涉及的包如下
在这里插入图片描述
所以在src创建com.gec.controller
在这里插入图片描述
输入com.gec.controller,回车
在这里插入图片描述


六、创建applicationContext.xml中涉及的文件夹

gec文件下创建servicebeanmapper文件夹
在这里插入图片描述


七、将逆向工程生成的文件复制进来

  1. 将逆向工程生成的mapper中的xxxmapper.java复制进mapper文件夹中
  2. 将逆向工程生成的mapper中的xxxmapper.xml复制进resouces文件夹中的mapper文件夹
  3. 将逆向工程生成的bean中的文件复制进bean文件夹

八、测试

1.将login.jsp放入web文件夹中
2.生成war文件

右键项目名,F4
在这里插入图片描述
点击ok,ok
在这里插入图片描述
3.设置tomcat,左键单击tomcat,点击Edit Configurations
在这里插入图片描述
删除原本的server:选中war、-
在这里插入图片描述
再添加新的server:+ Artifactok
在这里插入图片描述
修改访问地址
在这里插入图片描述

点击运行(如果能跳转出来页面,ssm的配置就已经是ok了)
在这里插入图片描述
运行结果:在这里插入图片描述


源码

项目已经实现了,源码放在Gitee(点蓝色Gitee自动跳转到仓库)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SSM(Spring+SpringMVC+MyBatis)是一种常见的Java企业级Web开发框架,它将Spring、SpringMVC和MyBatis集成在一起,提供了强大的功能和良好的可扩展性。下面是一个简单的SSM整合项目的示例。 1. 环境准备 - JDK 1.8 - Maven 3.x - IntelliJ IDEA 或 Eclipse 2. 创建Maven项目 在IDEA或Eclipse中创建一个Maven项目,选择Web Application类型。在pom.xml文件中添加以下依赖: ```xml <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.9.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.9.RELEASE</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.6</version> </dependency> <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency> <!-- Servlet API --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> ``` 3. 创建数据库 创建一个名为`test`的数据库,然后创建一个名为`user`的表,包含以下字段: - id - name - age 4. 配置Spring 在src/main/resources目录下创建一个名为`applicationContext.xml`的Spring配置文件,配置MyBatis和数据源: ```xml <!-- 数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <!-- MyBatis配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!-- 扫描Mapper接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.dao"/> </bean> ``` 在src/main/resources目录下创建一个名为`mybatis-config.xml`的MyBatis配置文件,配置Mapper接口的位置和别名: ```xml <configuration> <typeAliases> <package name="com.example.entity"/> </typeAliases> <mappers> <mapper class="com.example.dao.UserMapper"/> </mappers> </configuration> ``` 5. 配置SpringMVC 在src/main/webapp/WEB-INF目录下创建一个名为`web.xml`的Web配置文件,配置SpringMVC的DispatcherServlet: ```xml <!-- SpringMVC配置 --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 在src/main/webapp/WEB-INF目录下创建一个名为`dispatcher-servlet.xml`的SpringMVC配置文件,配置视图解析器和控制器: ```xml <!-- 视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 控制器 --> <bean id="userController" class="com.example.controller.UserController"> <property name="userService" ref="userService"/> </bean> <!-- 扫描Controller --> <context:component-scan base-package="com.example.controller"/> ``` 6. 编写代码 创建一个名为`User`的JavaBean,包含id、name和age属性,以及对应的getter和setter方法。 创建一个名为`UserMapper`的Mapper接口,定义以下方法: ```java public interface UserMapper { User selectUserById(int id); List<User> selectAllUsers(); void insertUser(User user); void updateUser(User user); void deleteUser(int id); } ``` 创建一个名为`UserMapper.xml`的Mapper映射文件,配置SQL语句: ```xml <mapper namespace="com.example.dao.UserMapper"> <select id="selectUserById" parameterType="int" resultType="com.example.entity.User"> select * from user where id=#{id} </select> <select id="selectAllUsers" resultType="com.example.entity.User"> select * from user </select> <insert id="insertUser" parameterType="com.example.entity.User"> insert into user(name, age) values(#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.entity.User"> update user set name=#{name}, age=#{age} where id=#{id} </update> <delete id="deleteUser" parameterType="int"> delete from user where id=#{id} </delete> </mapper> ``` 创建一个名为`UserService`的Service接口,定义以下方法: ```java public interface UserService { User getUserById(int id); List<User> getAllUsers(); void addUser(User user); void updateUser(User user); void deleteUser(int id); } ``` 创建一个名为`UserServiceImpl`的Service实现类,实现UserService接口: ```java @Service @Transactional public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getUserById(int id) { return userMapper.selectUserById(id); } @Override public List<User> getAllUsers() { return userMapper.selectAllUsers(); } @Override public void addUser(User user) { userMapper.insertUser(user); } @Override public void updateUser(User user) { userMapper.updateUser(user); } @Override public void deleteUser(int id) { userMapper.deleteUser(id); } } ``` 创建一个名为`UserController`的Controller类,处理用户请求: ```java @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping("/list") public String list(Model model) { List<User> userList = userService.getAllUsers(); model.addAttribute("userList", userList); return "user/list"; } @RequestMapping("/toAdd") public String toAdd() { return "user/add"; } @RequestMapping("/add") public String add(User user) { userService.addUser(user); return "redirect:/user/list"; } @RequestMapping("/toEdit") public String toEdit(int id, Model model) { User user = userService.getUserById(id); model.addAttribute("user", user); return "user/edit"; } @RequestMapping("/edit") public String edit(User user) { userService.updateUser(user); return "redirect:/user/list"; } @RequestMapping("/delete") public String delete(int id) { userService.deleteUser(id); return "redirect:/user/list"; } } ``` 7. 编写视图 在src/main/webapp/WEB-INF/jsp目录下创建以下视图文件: - list.jsp:显示用户列表 - add.jsp:添加用户 - edit.jsp:编辑用户 list.jsp: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>用户列表</title> </head> <body> <h1>用户列表</h1> <a href="${pageContext.request.contextPath}/user/toAdd">添加用户</a> <br> <br> <table border="1"> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> <c:forEach items="${userList}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.age}</td> <td> <a href="${pageContext.request.contextPath}/user/toEdit?id=${user.id}">编辑</a> <a href="${pageContext.request.contextPath}/user/delete?id=${user.id}">删除</a> </td> </tr> </c:forEach> </table> </body> </html> ``` add.jsp: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>添加用户</title> </head> <body> <h1>添加用户</h1> <form action="${pageContext.request.contextPath}/user/add" method="post"> <table> <tr> <td>姓名:</td> <td><input type="text" name="name"></td> </tr> <tr> <td>年龄:</td> <td><input type="text" name="age"></td> </tr> <tr> <td></td> <td><input type="submit" value="添加"></td> </tr> </table> </form> </body> </html> ``` edit.jsp: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>编辑用户</title> </head> <body> <h1>编辑用户</h1> <form action="${pageContext.request.contextPath}/user/edit" method="post"> <input type="hidden" name="id" value="${user.id}"> <table> <tr> <td>姓名:</td> <td><input type="text" name="name" value="${user.name}"></td> </tr> <tr> <td>年龄:</td> <td><input type="text" name="age" value="${user.age}"></td> </tr> <tr> <td></td> <td><input type="submit" value="保存"></td> </tr> </table> </form> </body> </html> ``` 8. 运行项目 在IDEA或Eclipse中运行项目,访问http://localhost:8080/user/list即可查看用户列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高冷的上官梓芸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值