SpringBoot与MyBatis搭建环境,底层数据库为mysql,页面使用JSP(官网上不推荐使用jsp),完成从数据库中查询出数据,在jsp页面中显示,并且实现页面的跳转功能。

项目下载链接: https://github.com/DFX339/springbootJsp.git

(1)新建数据库 springboot_mybatis

  新建表 user,表的结构如下:

  

(2)新建maven项目---web项目 springbootJsp,项目目录结构如下

  ApplicationMain.java : SpringBoot项目的启动类

  UserController.java : 前端控制类

  UserMapper.java :持久层的接口设计

  User.java:实体类

  UserIService.java:业务层接口

  UserService.java: 业务层接口实现类

  mapper/UserMapper.xml:UserMapper接口对应的xml文件,里面是sql语句

  application.properties :这是SpringBoot的默认配置文件名,存放在resources目录下。 必须命名为application.properties,否则读取不了 需要另外配置

  showUser.jsp : 访问findById方法返回的页面

  skipped.jsp: 从showUser.jsp页面请求/skip方法跳转到此页面

  pom.xml:maven项目的配置文件

  

  

  

(3)springboot的配置文件: application.properties   (放在src/main/resources目录下,会自动读取)

  1. #指定跳转的前缀,这里表示所有的页面都存放在/WEB-INF/jsp文件下
  2. spring.mvc.view.prefix=/WEB-INF/jsp/
  3. # 指定跳转页面的后缀,这里表示所有的页面都是jsp页面
  4. spring.mvc.view.suffix=.jsp
  1. #指定跳转的前缀
  2. spring.mvc.view.prefix=/WEB-INF/jsp/
  3. # 指定跳转页面的后缀
  4. spring.mvc.view.suffix=.jsp
  5.  
  6. #访问的项目名
  7. server.context-path=/SpringbootJsp
  8.  
  9. #数据库的配置
  10. spring.datasource.driver-class-name =com.mysql.jdbc.Driver
  11. spring.datasource.url =jdbc:mysql://localhost:3306/springboot_mybatis
  12. spring.datasource.username =root
  13. spring.datasource.password =root
  14.  
  15. #mybatis配置文件的配置
  16. mybatis.typeAliasesPackage=SpringBoot_jsp.springbootJsp.pojo
  17. mybatis.mapperLocations=classpath:/mapper/UserMapper.xml

(4)ApplicationMain.java : SpringBoot项目的启动类

  1. package SpringBoot_jsp.springbootJsp;
  2.  
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6.  
  7. /**
  8. * SpringBoot的启动类
  9. * 自动启动内置的tomcat
  10. * @author Administrator
  11. *
  12. */
  13. @SpringBootApplication
  14. @EnableAutoConfiguration
  15. public class ApplicationMain {
  16.  
  17. public static void main(String[] args) {
  18. SpringApplication.run(ApplicationMain.class,args);
  19. }
  20.  
  21. }

(5)UserController.java : 前端控制类

使用@Controller注解,可以跳转到jsp、html页面,也可以返回json数据

需要返回json数据的时候,在方法上添加@ResponseBody注解

  1. package SpringBoot_jsp.springbootJsp.controller;
  2.  
  3. import javax.annotation.Resource;
  4. import javax.servlet.http.HttpServletRequest;
  5.  
  6. import org.mybatis.spring.annotation.MapperScan;
  7. import org.springframework.context.annotation.ComponentScan;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10.  
  11. import SpringBoot_jsp.springbootJsp.pojo.User;
  12. import SpringBoot_jsp.springbootJsp.service.UserService;
  13.  
  14. /**
  15. * 前端控制器类,调用业务层方法处理请求
  16. * @author Administrator
  17. *
  18. */
  19. @Controller
  20. @ComponentScan({"SpringBoot_jsp.springbootJsp.service"})
  21. @MapperScan("SpringBoot_jsp.springbootJsp.mapper")
  22. public class UserController {
  23.  
  24. @Resource
  25. private UserService userService;
  26.  
  27. /**
  28. * 根据id查询出对应的用户
  29. * @param id
  30. * @param request
  31. * @return
  32. */
  33. @RequestMapping("/findById")
  34. public String findById(HttpServletRequest request){
  35. User user = userService.find(18);
  36. request.setAttribute("user", user);
  37. return "first/showUser";
  38. }

  39.    /** * 跳转到skipped.jsp
          * @param request
    * @return
    */
  40. @RequestMapping("/skip")
  41. public String skip(HttpServletRequest request){
  42. User user = userService.find(18);
  43. request.setAttribute("user", user);
  44. return "skip/skipped";
  45. }
  46.  
  47. }

(6) UserMapper.java :持久层的接口设计,使用@Mapper注解标明这是个mapper接口

  1. package SpringBoot_jsp.springbootJsp.mapper;
  2.  
  3. import org.apache.ibatis.annotations.Mapper;
  4.  
  5. import SpringBoot_jsp.springbootJsp.pojo.User;
  6.  
  7. /**
  8. * 持久层接口,定义增删改查方法
  9. * @author Administrator
  10. *
  11. */
  12. @Mapper
  13. public interface UserMapper {
  14.  
  15. void insert(User user);
  16. void delete(int id);
  17. void edit(User user);
  18. User find(int id);
  19. }

(7)User.java:实体类 ,与数据库中的字段一 一对应。

  1. package SpringBoot_jsp.springbootJsp.pojo;
  2. /**
  3. * 实体类
  4. * @author Administrator
  5. *
  6. */
  7. public class User {
  8.  
  9. private int id;
  10. private String username;
  11. private String password;
  12. private int age;
  13.  
  14. public User(){}
  15.  
  16. /** setter and getter 方法 */
  17.  
  18. }

 

(8) UserIService.java:业务层接口

  1. package SpringBoot_jsp.springbootJsp.service;
  2.  
  3. import SpringBoot_jsp.springbootJsp.pojo.User;
  4.  
  5. /**
  6. * 业务层接口
  7. * @author Administrator
  8. *
  9. */
  10. public interface UserIService {
  11.  
  12. void insert(User user);
  13. void delete(int id);
  14. void edit(User user);
  15. User find(int id);
  16. }

(9) UserService.java: 业务层接口实现类 ,调用mapper接口中的方法完成对数据库的操作

  1. package SpringBoot_jsp.springbootJsp.service;
  2.  
  3. import javax.annotation.Resource;
  4.  
  5. import org.mybatis.spring.annotation.MapperScan;
  6. import org.springframework.context.annotation.ComponentScan;
  7. import org.springframework.stereotype.Service;
  8.  
  9. import SpringBoot_jsp.springbootJsp.mapper.UserMapper;
  10. import SpringBoot_jsp.springbootJsp.pojo.User;
  11. /**
  12. * 业务层实现类
  13. * @author Administrator
  14. *
  15. */
  16.  
  17. @Service("userService")
  18. @ComponentScan({"SpringBoot_jsp.springbootJsp.mapper"})
  19. public class UserService implements UserIService {
  20.  
  21. @Resource
  22. private UserMapper userMapper;
  23.  
  24. @Override
  25. public void insert(User user) {
  26. userMapper.insert(user);
  27. }
  28.  
  29. @Override
  30. public void delete(int id) {
  31. userMapper.delete(id);
  32.  
  33. }
  34.  
  35. @Override
  36. public void edit(User user) {
  37. userMapper.edit(user);
  38. }
  39.  
  40. @Override
  41. public User find(int id) {
  42. return userMapper.find(id);
  43. }
  44.  
  45. }

(10)mapper/UserMapper.xml:UserMapper接口对应的mapper.xml文件,里面是sql语句

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3.  
  4. <!-- 指定工作空间,要与接口名相同,源代码没有去看,猜测应该是通过"这里的namespace.下边方法的id"来定位方法的 -->
  5. <mapper namespace="SpringBoot_jsp.springbootJsp.mapper.UserMapper">
  6.  
  7. <!-- insert user -->
  8. <insert id = "insert" parameterType="SpringBoot_jsp.springbootJsp.pojo.User">
  9. INSERT INTO USER(ID,USERNAME,PASSWORD,AGE) VALUES(#{id},#{username},#{password},#{age});
  10. </insert>
  11.  
  12. <!-- update user -->
  13. <update id="edit" parameterType="SpringBoot_jsp.springbootJsp.pojo.User">
  14. UPDATE USER SET USERNAME=#{username} , PASSWORD=#{password} , AGE = #{age} WHERE ID=#{id}
  15. </update>
  16.  
  17. <!-- find user -->
  18. <select id="find" parameterType="int" resultType="SpringBoot_jsp.springbootJsp.pojo.User">
  19. SELECT ID,USERNAME,PASSWORD,AGE FROM USER WHERE ID=#{0}
  20. </select>
  21.  
  22. <!-- delete user -->
  23. <delete id="delete" parameterType="int">
  24. DELETE FROM USER WHERE ID=#{0}
  25. </delete>
  26. </mapper>

(11) showUser.jsp : 访问findById方法返回的页面

在页面发送请求使用  url="/项目名/请求名.do"

例如:<a href="/SpringbootJsp/skip.do">转到skip.jsp</a>

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>显示用户信息</title>
  8. </head>
  9. <body>
  10. <h1>HELLO THIS IS SHOWUSER JSP.</h1>
  11. <h2>${user.id }</h2>
  12. <h2>${user.username }</h2>
  13. <h2>${user.password }</h2>
  14. <a href="/SpringbootJsp/skip.do">转到skip.jsp</a>
  15. </body>
  16. </html>

(12)skipped.jsp: 从showUser.jsp页面请求/skip方法跳转到此页面

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>jsp跳转</title>
  8. </head>
  9. <body>
  10. <h1>Skip jsp</h1>
  11. <a href="/SpringbootJsp/findById.do">转到showUser.jsp</a>
  12. </body>
  13. </html>

(13)pom.xml:maven项目的配置文件

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>SpringBoot_jsp</groupId>
  5. <artifactId>springbootJsp</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>springbootJsp Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10.  
  11. <parent>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-parent</artifactId>
  14. <version>1.5.6.RELEASE</version>
  15. <relativePath/> <!-- lookup parent from repository -->
  16. </parent>
  17.  
  18. <build>
  19. <finalName>bootdemo</finalName>
  20. <plugins>
  21. <plugin>
  22. <inherited>true</inherited>
  23. <groupId>org.apache.maven.plugins</groupId>
  24. <artifactId>maven-compiler-plugin</artifactId>
  25. <version>3.5.1</version>
  26. <configuration>
  27. <source>${compiler.source}</source>
  28. <target>${compiler.target}</target>
  29. <encoding>${project.build.sourceEncoding}</encoding>
  30. <compilerArguments>
  31. <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
  32. </compilerArguments>
  33. </configuration>
  34. </plugin>
  35.  
  36. <plugin>
  37. <groupId>org.springframework.boot</groupId>
  38. <artifactId>spring-boot-maven-plugin</artifactId>
  39. </plugin>
  40. </plugins>
  41. </build>
  42. <properties>
  43. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  44. <compiler.source>1.7</compiler.source>
  45. <compiler.target>1.7</compiler.target>
  46.  
  47. <!-- servlet/jsp/EL (2.4/2.0/?)(2.5/2.1/2.1),(3.0/2.2/2.2),(3.1/2.3/3.0) -->
  48. <servlet.version>3.1.0</servlet.version>
  49. <jsp.version>2.3.1</jsp.version>
  50. <jstl.version>1.2</jstl.version>
  51. <junit.version>4.12</junit.version>
  52. </properties>
  53. <dependencies>
  54.  
  55. <!-- Springboot添加视图解析器的依赖包 -->
  56. <dependency>
  57. <groupId>org.apache.tomcat.embed</groupId>
  58. <artifactId>tomcat-embed-jasper</artifactId>
  59. <scope>provided</scope>
  60. </dependency>
  61.  
  62. <dependency>
  63. <groupId>junit</groupId>
  64. <artifactId>junit</artifactId>
  65. <version>${junit.version}</version>
  66. <scope>test</scope>
  67. </dependency>
  68. <dependency>
  69. <groupId>javax.servlet</groupId>
  70. <artifactId>javax.servlet-api</artifactId>
  71. <version>${servlet.version}</version>
  72. <scope>provided</scope>
  73. </dependency>
  74. <dependency>
  75. <groupId>javax.servlet.jsp</groupId>
  76. <artifactId>javax.servlet.jsp-api</artifactId>
  77. <version>${jsp.version}</version>
  78. <scope>provided</scope>
  79. </dependency>
  80. <dependency>
  81. <groupId>javax.servlet</groupId>
  82. <artifactId>jstl</artifactId>
  83. <version>${jstl.version}</version>
  84. </dependency>
  85.  
  86. <dependency>
  87. <groupId>org.objenesis</groupId>
  88. <artifactId>objenesis</artifactId>
  89. <version>1.2</version>
  90. </dependency>
  91.  
  92. <dependency>
  93. <groupId>org.mybatis.spring.boot</groupId>
  94. <artifactId>mybatis-spring-boot-starter</artifactId>
  95. <version>1.2.0</version>
  96. </dependency>
  97.  
  98. <dependency>
  99. <groupId>org.springframework.boot</groupId>
  100. <artifactId>spring-boot-starter-web</artifactId>
  101. </dependency>
  102.  
  103. <dependency>
  104. <groupId>org.springframework.boot</groupId>
  105. <artifactId>spring-boot-starter-tomcat</artifactId>
  106. <scope>provided</scope>
  107. </dependency>
  108. <dependency>
  109. <groupId>org.springframework.boot</groupId>
  110. <artifactId>spring-boot-starter-test</artifactId>
  111. <scope>test</scope>
  112. </dependency>
  113. <dependency>
  114. <groupId>org.springframework.boot</groupId>
  115. <artifactId>spring-boot-configuration-processor</artifactId>
  116. <optional>true</optional>
  117. </dependency>
  118.  
  119. <dependency>
  120. <groupId>mysql</groupId>
  121. <artifactId>mysql-connector-java</artifactId>
  122. <version>5.1.6</version>
  123. <scope>runtime</scope>
  124. </dependency>
  125. <!-- freemarker jar包导入 -->
  126. <dependency>
  127. <groupId>org.springframework.boot</groupId>
  128. <artifactId>spring-boot-starter-freemarker</artifactId>
  129. </dependency>
  130.  
  131. </dependencies>
  132.  
  133. </project>

(14)启动项目。

进入  ApplicationMain.java

右击 --》 Run As  --》 Java Application

启动成功会出现如图结果:

(15)访问项目。

  在浏览器中通过URL访问项目。 格式:  http://主机IP:8080/application.properties中指定的server.context-path的值/@Controller标识的类指定的RequestMapping值

  例如:  http://127.0.0.1:8080/SpringbootJsp/findById

  访问结果如下:

  

  点击页面中的超链接  转到skip.jsp,进入skipped.jsp页面,结果如下:

  

   

Springboot+MyBatis+mysql+jsp页面跳转详细示例的更多相关文章

  1. 【SpringBoot】SpringBoot/MyBatis/MySql/thymeleaf/Log4j整合工程

    工程下载地址:https://files.cnblogs.com/files/xiandedanteng/MMSpringWeb20191027-1.rar 工程目录结构如图: 1.创建工程 有些网文 ...

  2. Springboot+Mybatis+MySQL实例练习时踩坑记录

    最近刚开始学习后端,直接让上手学习Springboot+Mybatis+MySQL对CRUD的实例,虽然实例不难,但是上面的三个知识我都不懂,就有点为难我了 所以经常遇到一个点卡自己很久的情况,这里列 ...

  3. JSP页面跳转方式

    JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...

  4. 网站开发进阶(三十七)JSP页面跳转问题解决

    JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...

  5. JSP 页面跳转中的参数传递

    1. 从一个 JSP 页面跳转到另一个 JSP 页面时的参数传递 1)使用 request 内置对象获取客户端提交的信息 2)使用 session 对象获取客户端提交的信息 3)利用隐藏域传递数据 4 ...

  6. SpringBoot配置使用jsp页面技术

    SpringBoot配置使用jsp页面技术 1.pom配置 package配置必须为war类型 添加依赖 <packaging>war</packaging> <depe ...

  7. Jsp页面跳转和js控制页面跳转的几种方法

    Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servle ...

  8. springboot成神之——springboot+mybatis+mysql搭建项目简明demo

    springboot+mybatis+mysql搭建项目简明demo 项目所需目录结构 pom.xml文件配置 application.properties文件配置 MyApplication.jav ...

  9. JSP页面跳转

    JSP页面跳转  RequestDispatcher.forward() 服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到 ...

随机推荐

  1. python中简单的递归(断点报错的小福利)

    首先要先理解什么是递归? 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 下面讲了一个很简单的递归函数 def clac(n): print(n) if int( ...

  2. ActionCable的部署(参考Gorails)

    Gorails视频 https://gorails.com/deploy/actioncable Action Cable – Integrated WebSockets for Rails http ...

  3. Dedecmsv5.7整合ueditor 图片上传添加水印

    最近的项目是做dedecmsv5.7的二次开发,被要求上传的图片要加水印,百度ueditor编辑器不支持自动加水印,所以,找了很多资料整合记录一下,具体效果图 这里不仔细写dedecmsv5.7 整合 ...

  4. 373. Find K Pairs with Smallest Sums (java,优先队列)

    题目: You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Def ...

  5. php的符号的排序大小

  6. 用curl模拟夹带cookie的http请求

    1. 首先登录所要登录的网站,发起http请求,获取cookie 2. 获取请求的真正的路径,现在的前端比如vue都是用自定义路径映射后端路径的,比如在vue中某个请求为caojiangjiang/t ...

  7. HTML(简介及常用标签)

    一.HTML简介 1.1 html是什么? 超文本标记语言(Hypertext Markup Language,HTML)通过标签语言来标记要显示的网页中的各个部分.一套规则,浏览器认识的规则. 浏览 ...

  8. 解决Maven下载依赖慢的问题(转)

    使用Maven构建项目时,项目中有的依赖包可能下载的非常慢,我们可以通过配置镜像来解决这个问题. 之前开源中国的那个好像已经关闭了,于是我找到了一个阿里的来解决. 在Maven的配置文件(%MAVEN ...

  9. HTTP的连接过程

    一.HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1.域名解析 2.发起TCP的3次握手 3. Web浏览器向Web服务器发送http请求命令  ...

  10. Python条件判断和循环,range()函数

    条件判断经常使用if语句进行判断,表达方式为:if 条件语句:      :elif:else if...用于执行第一条不满足if的判断,继续执行其它的判断.比如一个简单的if判断 Python3取消 ...