2020最新版SSM框架整合教程

让我来详细讲解一下“2020最新版SSM框架整合教程”的完整攻略。

1. 准备工作

在整合SSM框架之前,需要安装JDK、Maven以及相应的开发工具,比如IntelliJ IDEA或Eclipse,还需要准备好Web Server,比如Tomcat或Jetty。

2. 创建Maven项目

创建一个Maven Web项目,添加以下依赖:

<dependencies>
    <!--Spring相关依赖-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <!--MyBatis相关依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>${mybatis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>${mybatis.version}</version>
    </dependency>

    <!--Servlet、JSP相关依赖-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>${servlet-api.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>${jsp-api.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>${standard.version}</version>
    </dependency>

    <!--数据库相关依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
    </dependency>

    <!--日志相关依赖-->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>
</dependencies>

其中,变量版本号需要根据实际情况进行修改。

3. 配置Web.xml

在web.xml中添加DispatcherServlet和ContextLoaderListener:

<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/dispatcherServlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>

其中,DispatcherServlet通过参数contextConfigLocation指定了DispatcherServlet的上下文,而ContextLoaderListener通过参数contextConfigLocation指定了Spring的根上下文。

4. 配置root-context.xml

在Spring的根上下文中,配置数据库连接、事务管理器以及MyBatis相关内容:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8" />
    <property name="driverClass" value="com.mysql.jdbc.Driver" />
    <property name="user" value="root" />
    <property name="password" value="root" />
</bean>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="your.package.name.model" />
    <property name="mapperLocations" value="classpath:your/package/name/mapper/*.xml" />
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="your.package.name.mapper" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

其中,dataSource中的jdbcUrl、user和password需要根据实际情况进行修改。typeAliasesPackage指定MyBatis实体类的包名,mapperLocations指定MyBatis Mapper的xml文件路径。

5. 配置dispatcherServlet-context.xml

在DispatcherServlet的上下文中,注册Controller:

<context:component-scan base-package="your.package.name.controller" />

<mvc:annotation-driven />

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

其中,component-scan指定Controller的包名,annotation-driven启用Spring MVC注解驱动,InternalResourceViewResolver指定JSP的前缀和后缀。

6. 编写Controller和Mapper

以下是一个简单的Controller示例:

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/list")
    public ModelAndView userList() {
        ModelAndView model = new ModelAndView("user/list");
        List<User> userList = userService.getAllUsers();
        model.addObject("userList", userList);
        return model;
    }

    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public ModelAndView addUserPage() {
        ModelAndView model = new ModelAndView("user/form");
        model.addObject("user", new User());
        return model;
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public ModelAndView addUser(@ModelAttribute("user") User user) {
        userService.addUser(user);
        return userList();
    }

    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
    public ModelAndView deleteUser(@PathVariable("id") Integer id) {
        userService.deleteUser(id);
        return userList();
    }
}

其中,@Controller和@RequestMapping用于声明Controller和映射URL,@Autowired用于注入UserService。

以下是一个简单的Mapper示例:

<?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="your.package.name.mapper.UserMapper">
    <resultMap id="userMap" type="your.package.name.model.User">
        <id column="id" property="id" />
        <result column="name" property="name" />
        <result column="age" property="age" />
    </resultMap>

    <select id="selectAllUsers" resultMap="userMap">
        SELECT * FROM user
    </select>

    <insert id="insertUser" parameterType="your.package.name.model.User">
        INSERT INTO user(name, age) VALUES(#{name}, #{age})
    </insert>

    <delete id="deleteUser" parameterType="int">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>

其中,namespace指定Mapper的命名空间,resultMap指定结果映射,select和insert、delete指定SQL语句。

以上就是“2020最新版SSM框架整合教程”的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:2020最新版SSM框架整合教程 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Sprint Boot @Repository使用方法详解

    在Spring Boot中,@Repository是一个注解,用于标识一个类是数据访问层(DAO)的组件。本文将详细介绍@Repository的作用和使用方法。 @Repository的作用 @Repository注解的作用是将一个类标识为数据访问层(DAO)的组件。在Spring Boot中,数据访问层通常用于与数据库进行交互,包括查询、插入、更新和删除数…

    Java 2023年5月5日
    00
  • Spring Boot教程之提高开发效率必备工具lombok

    Spring Boot教程之提高开发效率必备工具lombok 在Spring Boot应用程序的开发过程中,我们经常需要编写大量的Java代码。为了提高开发效率,我们可以使用lombok工具来简化Java代码的编写。本文将详细讲解如何在Spring Boot应用程序中使用lombok工具。 步骤一:添加依赖 我们需要在pom.xml文件中添加以下依赖项: &…

    Java 2023年5月15日
    00
  • Java日常练习题,每天进步一点点(53)

    Java日常练习题,每天进步一点点(53) 这是一组Java练习题,旨在帮助Java初学者提高编程能力。在本文中,我们将详细讲解Java日常练习题,并提供两个示例来说明如何解决这些问题。 练习题 编写一个Java程序,计算1到100之间所有偶数的和。 编写一个Java程序,将一个字符串中的所有空格去掉。 编写一个Java程序,判断一个字符串是否为回文字符串。…

    Java 2023年5月18日
    00
  • Java中如何执行多条shell/bat命令

    在Java中,可以通过调用系统命令的方式来执行shell/bat命令,可以用以下代码实现: // 写法一:Runtime.getRuntime().exec() Process process = Runtime.getRuntime().exec("command"); BufferedReader reader = new Buffe…

    Java 2023年5月26日
    00
  • java实现学生成绩录入系统

    Java实现学生成绩录入系统 系统功能 本系统是一个学生成绩录入系统,主要功能如下: 录入学生成绩 显示学生成绩 查询学生成绩 修改学生成绩 删除学生成绩 退出系统 系统设计 系统设计有两个部分:学生类和学生成绩类。学生类包含学生的姓名和学号等基本信息,学生成绩类包含学生的各科成绩和总分等信息。 学生类 public class Student { priv…

    Java 2023年5月24日
    00
  • SharePoint 2007图文开发教程(5) 体验Event Handler

    SharePoint 2007图文开发教程(5) 体验Event Handler 什么是Event Handler? Event Handler是指一种事件处理程序,常用于在数据更新、插入或删除等操作的过程中执行特定的操作,例如发送邮件通知、记录日志等。在SharePoint中,Event Handler被广泛应用于对列表、文档库等对象的事件进行处理。 如何…

    Java 2023年5月31日
    00
  • 时间处理函数工具分享(时间戳计算)

    下面是“时间处理函数工具分享(时间戳计算)”的完整攻略。 时间戳的概念 时间戳(Timestamp)是指格林威治时间1970年01月01日00时00分01秒(北京时间1970年01月01日08时00分01秒)起至现在的总秒数。时间戳是一种以简洁、统一的方式表示时间的方式,通常被用于记录事件发生的时间或进行时间计算。 Javascript中的时间处理 获取当前…

    Java 2023年5月20日
    00
  • java的Hibernate框架报错“PropertyValueException”的原因和解决方法

    当使用Hibernate框架时,可能会遇到“PropertyValueException”错误。这个错误通常是由于以下原因之一引起的: 实体对象的属性值为null:如果您的实体对象的属性值为null,则可能会出现此错误。在这种情况下,需要检查您的实体对象并确保它们正确。 实体对象的属性值不符合要求:如果您的实体对象的属性值不符合要求,则可能会出现此错误。在这…

    Java 2023年5月4日
    00
合作推广
合作推广
分享本页
返回顶部