Java简单实现SpringMVC+MyBatis分页插件

Java简单实现SpringMVC+MyBatis分页插件

环境准备

在开始之前,需要确保以下环境已经准备好:

  • JDK 1.8或以上版本
  • Maven 3.0或以上版本
  • Tomcat 8.0或以上版本
  • IntelliJ IDEA 2018或以上版本

创建Maven项目

  1. 打开IntelliJ IDEA,选择“Create New Project”。
  2. 在弹出的窗口中选择“Maven”项目类型,并勾选“Create from archetype”选项。
  3. 在下拉列表中选择“maven-archetype-webapp”。
  4. 输入项目的GroupId、ArtifactId和Version等信息,然后点击“Next”。
  5. 在下一步中,选择项目的存储路径和项目名称,然后点击“Finish”按钮。

导入依赖

在pom.xml文件中添加以下依赖:

<dependencies>
  <!-- Spring -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.0.RELEASE</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.2.0.RELEASE</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.0.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.4</version>
  </dependency>
  <!-- 数据库驱动 -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.22</version>
  </dependency>
  <!-- Servlet API -->
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
  </dependency>
  <!-- 分页插件 -->
  <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.2.0</version>
  </dependency>
</dependencies>

配置Spring

在src/main/resources目录下创建一个名为“applicationContext.xml”的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/test?useSSL=false&amp;serverTimezone=UTC"/>
  <property name="username" value="root"/>
  <property name="password" value="123456"/>
</bean>

<!-- 配置MyBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.example.mapper"/>
</bean>

在上面的配置中,我们配置了数据源和MyBatis的SqlSessionFactory。同时,我们还配置了MapperScannerConfigurer来扫描Mapper接口。

配置Spring MVC

在src/main/webapp/WEB-INF目录下创建一个名为“springmvc-servlet.xml”的Spring MVC配置文件,并添加以下内容:

<!-- 配置Spring MVC -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/views/"/>
  <property name="suffix" value=".jsp"/>
</bean>

<!-- 配置扫描Controller -->
<context:component-scan base-package="com.example.controller"/>

在上面的配置中,我们配置了视图解析器和扫描Controller。

配置web.xml

在src/main/webapp/WEB-INF目录下创建一个名为“web.xml”的web配置文件,并添加以下内容:

<!-- 配置DispatcherServlet -->
<servlet>
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc-servlet.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

在上面的配置中,我们配置了DispatcherServlet,并将其映射到根路径。

创建Controller

在src/main/java目录下创建一个名为“com.example.controller”的包,并在其中创建一个名为“UserController”的类。在该类中添加以下内容:

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

  @GetMapping("/list")
  public String getUserList(@RequestParam(defaultValue = "1") int pageNum, Model model) {
    PageHelper.startPage(pageNum, 10);
    List<User> userList = userService.getUserList();
    PageInfo<User> pageInfo = new PageInfo<>(userList);
    model.addAttribute("userList", userList);
    model.addAttribute("pageInfo", pageInfo);
    return "userList";
  }
}

在上面的代码中,我们创建了一个名为“UserController”的Controller,并使用@GetMapping注解来处理GET请求。在方法中,我们使用@RequestParam注解来获取请求参数,并使用@Autowired注解来注入UserService。我们使用PageHelper.startPage方法来开启分页功能,并设置每页显示10条记录。然后,我们调用UserService的getUserList方法来获取用户列表,并使用PageInfo来封装分页信息。最后,我们将查询到的User列表和分页信息添加到Model中,并返回“userList”视图。

创建Mapper

在src/main/java目录下创建一个名为“com.example.mapper”的包,并在其中创建一个名为“UserMapper”的接口。在该接口中添加以下内容:

public interface UserMapper {
  List<User> getUserList();
}

在上面的代码中,我们创建了一个名为“UserMapper”的Mapper接口,并定义了一个名为“getUserList”的方法。

创建Service

在src/main/java目录下创建一个名为“com.example.service”的包,并在其中创建一个名为“UserService”的接口。在该接口中添加以下内容:

public interface UserService {
  List<User> getUserList();
}

在上面的代码中,我们创建了一个名为“UserService”的Service接口,并定义了一个名为“getUserList”的方法。

在src/main/java目录下创建一个名为“com.example.service.impl”的包,并在其中创建一个名为“UserServiceImpl”的类。在该类中添加以下内容:

@Service
public class UserServiceImpl implements UserService {
  @Autowired
  private UserMapper userMapper;

  @Override
  public List<User> getUserList() {
    return userMapper.getUserList();
  }
}

在上面的代码中,我们创建了一个名为“UserServiceImpl”的Service实现类,并使用@Autowired注解来注入UserMapper。在getUserList方法中,我们调用UserMapper的getUserList方法来查询用户列表。

创建JSP视图

在src/main/webapp/WEB-INF/views目录下创建一个名为“userList.jsp”的JSP视图,并添加以下内容:

<!DOCTYPE html>
<html>
<head>
  <title>User List</title>
</head>
<body>
  <h1>User List</h1>
  <table>
    <thead>
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
      </tr>
    </thead>
    <tbody>
      <c:forEach items="${userList}" var="user">
        <tr>
          <td>${user.id}</td>
          <td>${user.name}</td>
          <td>${user.age}</td>
        </tr>
      </c:forEach>
    </tbody>
  </table>
  <div>
    <ul>
      <li><a href="?pageNum=1">首页</a></li>
      <li><a href="?pageNum=${pageInfo.prePage}">上一页</a></li>
      <li><a href="?pageNum=${pageInfo.nextPage}">下一页</a></li>
      <li><a href="?pageNum=${pageInfo.pages}">尾页</a></li>
    </ul>
  </div>
</body>
</html>

在上面的代码中,我们创建了一个名为“userList.jsp”的JSP视图,并使用标签来循环显示用户列表。同时,我们使用PageInfo对象来显示分页信息,并使用超链接来实现分页功能。

运行项目

在完成以上步骤后,我们可以启动Tomcat服务器,并访问http://localhost:8080/user/list来查看用户列表。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java简单实现SpringMVC+MyBatis分页插件 - Python技术站

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

相关文章

  • java 验证用户是否已经登录与实现自动登录方法详解

    下面是关于“java 验证用户是否已经登录与实现自动登录方法详解”的完整攻略: 1. 验证用户是否已经登录 在web应用程序中,用户登录状态验证通常在服务器端进行。验证用户是否已经登录通常是通过以下几个步骤实现: 在登录页面中,用户输入用户名和密码,并提交表单。 将提交的表单数据传到服务器端,并在服务器端与用户信息进行比对。 如果用户信息正确,则将用户的登录…

    Java 2023年6月16日
    00
  • eclipse入门之创建第一个web程序(jsp测试环境)

    下面就是“eclipse入门之创建第一个web程序(jsp测试环境)”的完整攻略: 准备工作 安装JDK,配置环境变量 下载并安装eclipse 创建Web项目 打开eclipse,选择”File” -> “New” -> “Dynamic Web Project” 在新建项目页面中输入项目名、选择项目保存路径、选择目标运行环境(J2EE 6 v…

    Java 2023年6月15日
    00
  • springmvc无法访问/WEB-INF/views下的jsp的解决方法

    解决 SpringMVC 无法访问 /WEB-INF/views 下的 JSP 的问题,可以尝试以下步骤: 确认 SpringMVC 配置 首先,需要在 SpringMVC 的配置文件 dispatcher-servlet.xml 中确认以下配置: <!– 配置 InternalResourceViewResolver –> <bean…

    Java 2023年6月15日
    00
  • java集合类源码分析之Set详解

    让我来详细讲解一下“Java集合类源码分析之Set详解”的完整攻略。 目录 Set概述 Java Set实现方式 Set常用方法及实现原理 TreeSet示例 HashSet示例 1. Set概述 Set是Java中的一个集合接口,用于存储不允许重复元素的集合。Set接口实现了Collection接口,所以Set集合也继承了Collection集合中的一些方…

    Java 2023年5月20日
    00
  • php 目录与文件处理-郑阿奇(续)

    针对 “php 目录与文件处理-郑阿奇(续)” 这一主题,以下是一份完整的攻略: 一、概述 该篇文章主要讲解了PHP中如何进行目录及文件处理,包括如何创建、重命名、删除文件和目录,同时也介绍了如何读取目录中的文件等基本操作。 二、PHP中的文件处理 2.1 创建文件 使用 PHP 提供的 file_put_contents 函数可以快速的创建文件,示例如下:…

    Java 2023年6月15日
    00
  • php 什么是PEAR?

    PHP 什么是PEAR? PEAR(PHP Extension and Application Repository)是 PHP 的扩展与应用程序仓库,是一个官方的、由 PHP 社区运行的开源项目,旨在为 PHP 开发人员提供高质量的可重用代码和可重用组件。PEAR 从软件设计的角度出发,提倡“以面向对象方式设计,尽可能复用已有的代码片段” 的编码风格,简化…

    Java 2023年6月15日
    00
  • java 实现反射 json动态转实体类–fastjson

    Java中的反射是一种可以在运行时动态获取类的信息的机制。而fastjson则是一种常用的Java JSON 库,它支持将JSON字符串快速地转换为Java对象,以及将Java对象快速地序列化为JSON字符串。下面将详细介绍如何使用Java反射结合fastjson实现JSON字符串到Java对象的转换。 1. 添加依赖接口 我们需要在项目中添加fastjso…

    Java 2023年5月26日
    00
  • Springboot项目平滑关闭及自动化关闭脚本

    下面是详细讲解“Spring Boot 项目平滑关闭及自动化关闭脚本”的完整攻略: 什么是 Spring Boot 项目平滑关闭? Spring Boot 项目平滑关闭是指在关闭 Spring Boot 项目时会先等待当前请求处理完成再关闭应用程序。这样可以保证处理请求的过程不被中断。 如何实现 Spring Boot 项目平滑关闭? 使用 actuator…

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