SSM整合

SSM整合

1 创建maven web项目,在pom文件中引入相关依赖

<!-- servlet -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
</dependency>
<!-- jstl -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>
<!-- mybatis框架 -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
<!-- 整合spring和mybatis的依赖 -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.1</version>
</dependency>
<!-- mvc依赖 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.3.RELEASE</version>
</dependency>
<!-- spring数据源 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.3.RELEASE</version>
</dependency>

2 在resources目录下新建mybatis.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 映射文件的配置 -->
    <mappers>
        
    </mappers>
</configuration>

3 在resources目录下新建spring-servlet.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="org.example"/>

    <mvc:annotation-driven/>

    <!-- 配置一个spring数据源 -->
    <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/mydb?serverTimezone=Asia/Shanghai"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
    </bean>

    <!-- 配置mybatis的会话工厂 -->
    <bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis.xml"/>
    </bean>

    <!-- 配置真正操作数据源的会话模板 -->
    <bean id="sessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg name="sqlSessionFactory" ref="sessionFactoryBean"/>
    </bean>
</beans>

4 在main下的java目录下,分别新建以下包

  • entity 表对应的实体类
  • dao 接口
  • service 业务逻辑
  • controller 控制器

5 创建User实体类

public class User {
    private int uid;
    private String unam;
    private String address;

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUnam() {
        return unam;
    }

    public void setUnam(String unam) {
        this.unam = unam;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", unam='" + unam + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

6 创建UserDao接口

public interface UserDao {
    List<User> queryAll();
}

7 在resources目录下新建mappers目录,并在该目录下新建UserDao.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">
<!-- namespace是命名空间,接口UserDao的路径 -->
<mapper namespace="org.example.dao.UserDao">
    <select id="queryAll" resultType="org.example.entity.User">
        select * from user
    </select>
</mapper>

8 将以上接口映射文件,添加到mybatis.xml配置文件中

<mappers>
    <mapper resource="mappers/UserDao.xml"/>
</mappers>

9 在dao包下新建impl实现类包,并创建UserDaoImpl实现类,实现UserDao接口

@Repository(value = "userDao")
public class UserDaoImpl implements UserDao {

    @Resource
    private SqlSessionTemplate sessionTemplate;

    @Override
    public List<User> queryAll() {
        UserDao userDao = sessionTemplate.getMapper(UserDao.class);
        return userDao.queryAll();
    }
}

10 在service包下新建业务逻辑类UserService

@Service
public class UserService {

    @Resource
    private UserDao userDao;

    public List<User> queryAll(){
        return userDao.queryAll();
    }
}

11 在controller包下,新建UserController

@Controller
@RequestMapping("/user")
public class UserController {

    @Resource
    private UserService userService;

    @GetMapping("/all")
    public String queryAll(ModelMap modelMap){
        List<User> users = userService.queryAll();
        modelMap.put("users", users);
        return "/jsp/user/list.jsp";
    }
}

12 在webapp目录下新建jsp目录,在jsp目录下新建user目录,在user目录下新建list.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/11/18
  Time: 9:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<table border="1">
    <thead>
        <td>编号</td>
        <td>用户名称</td>
        <td>地址</td>
    </thead>

    <c:forEach items="${users}" var="user">
        <tr>
            <td>${user.uid}</td>
            <td>${user.unam}</td>
            <td>${user.address}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

13 在web.xml中添加dispatcherServlet和过滤器

<?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">

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet.xml</param-value>
        </init-param>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <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>

14 重新配置tomcat,部署新项目并运行该项目。

在地址栏后面访问user/all

给TA打赏
共{{data.count}}人
人已打赏
编程专区

oracle与mysql之间的区别

2022-9-7 11:16:00

编程专区

MVC处理json数据

2022-11-29 10:55:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索