springBoot整合mybatis、jsp 或 HTML

时间:2023-01-12 13:30:08

springBoot整合mybatis、jsp

Spring Boot的主要优点:

1:  为所有Spring开发者更快的入门;

2:  开箱即用,提供各种默认配置来简化项目配置;

3:  内嵌式容器简化Web项目;

4:  没有冗余代码生成和XML配置的要求

本项目使用到的工具:

  • 开发工具:Intellij IDEA 2018.1.4
  • springboot:2.0.1.RELEASE
  • jdk:1.8.0_40
  • maven:3.3.9

开始搭建:

项目创建

springBoot整合mybatis、jsp 或  HTML

springBoot整合mybatis、jsp 或  HTML

springBoot整合mybatis、jsp 或  HTML

springBoot整合mybatis、jsp 或  HTML

finish即可。

建好后的 项目结构:

springBoot整合mybatis、jsp 或  HTML

pom.xml:

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.dengwei</groupId>
<artifactId>springdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>springdemo</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <!--springBoot整合jsp-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

我们先建一个controller层,写一个简单的类访问一下:

springBoot整合mybatis、jsp 或  HTML

HelloSpringBootController:

 package com.dengwei.springdemo.controller;

 import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import java.util.HashMap;
import java.util.Map; @RestController
public class HelloSpringBootController {
@RequestMapping("/index")
public String hello(){
return "hello springBoot";
} @RequestMapping("/hello")
public Map<String,String> getMap(){
HashMap<String, String> map = new HashMap<String,String>();
map.put("key1","姓名");
map.put("key2","年龄");
map.put("key3","性别");
return map;
} }

下面我们启动一下:

每一个springBoot项目中都有一个XXXAplication类,这个类就是springBoot的启动类。

注意:因为我们前面添加了数据库相关的依赖,但是我们还没有具体配置,如果直接运行的话会报错:

***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.

If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

解决:

在@EnableAutoConfiguretion中添加   exclude= {DataSourceAutoConfiguration.class},排除此类的autoconfig。启动以后就可以正常运行。

springBoot整合mybatis、jsp 或  HTML

好的,启动没问题,我们下面正式进入mybatis与jsp的整合:

建model层:

springBoot整合mybatis、jsp 或  HTML

 package com.dengwei.springdemo.model;

 public class User {
private Integer id;
private String userName;
private String password; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", password='" + password + '\'' +
'}';
}
}

2:建mapper层:

注意:我们这里的sql语句是通过注解的形式和接口写在一起的,也可以通过xml的形式配置,可以见另外一篇博客:

springBoot整合mybatis、jsp 或  HTML

 package com.dengwei.springdemo.mapper;

 import com.dengwei.springdemo.model.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; public interface IUserMapper { @Select("SELECT id,user_name userName, pass_word password FROM user WHERE id = #{id}")
User queryById(@Param("id") Integer id);
}

3:建Service层:

springBoot整合mybatis、jsp 或  HTML

 package com.dengwei.springdemo.Service;

 import com.dengwei.springdemo.mapper.IUserMapper;
import com.dengwei.springdemo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; @Service
public class UserService {
@Autowired
private IUserMapper userMapper;
public User queryUser(Integer id){
return userMapper.queryById(id);
}
}

4:控制层访问:

springBoot整合mybatis、jsp 或  HTML

 package com.dengwei.springdemo.controller;

 import com.dengwei.springdemo.Service.UserService;
import com.dengwei.springdemo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
@RequestMapping("/controller")
public class UserController {
@Autowired
private UserService userService; @RequestMapping("/user")
@ResponseBody
public User getUser(Integer id){
User user = userService.queryUser(id);
return user;
} }

数据库连接配置文件:

springBoot整合mybatis、jsp 或  HTML

 spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
#jdbc相关
spring.datasource.url=jdbc:mysql://localhost:3306/floor_shop
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

启动springBoot:

注意:前面我们排除了对数据库相关的自动配置,现在我们配置了数据库实体配置,所以把之前的排除要删掉,并且多添加@MapperScan("mapper映射文件的地址")

springBoot整合mybatis、jsp 或  HTML

 package com.dengwei.springdemo;

 import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @SpringBootApplication
@EnableAutoConfiguration
@MapperScan("com.dengwei.springdemo.mapper")
public class SpringdemoApplication { public static void main(String[] args) {
SpringApplication.run(SpringdemoApplication.class, args);
}
}

好的直接启动即可。上面我们简单实现了数据库的查询,增删改就自己取写一写吧。

下面我们看看springBoot整合jsp:

1、在原来的依赖中添加依赖:

 <!--对jsp访问的支持-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>

2、跳转页面:

springBoot整合mybatis、jsp 或  HTML

 springBoot整合thymeleaf:

 <!--模板引擎thmeleaf对HTML的支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

跳转页面:

不用加前后缀,可以直接跳转页面:

springBoot整合mybatis、jsp 或  HTML

关于thymeleaf的基础使用参考:

https://www.jianshu.com/p/6953671d4645

在我们第一次新建的HelloSpringBootController中 新建一个helloJsp()方法,注意:我们之前用的注解是@RestController ,这个注解相当于@Controller  +  @ResponseBody

表示标注的类或则方法返回的都是json格式的,而我们这次需要访问jsp页面所以需要换成@Controller注解。在需要的返回json格式的方法上添加@ResponseBody,而不是整个类的所有方法都返回json格式。

springBoot整合mybatis、jsp 或  HTML

下面我们看一下springBoot中的全局异常捕获:

异常捕获的核心标签:@ControllerAdvice   +   @ExceptionHandler(RuntimeException.class)

springBoot整合mybatis、jsp 或  HTML

 package com.dengwei.springdemo.controller;

 import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping; @ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
@RequestMapping
public String errorPage(){
return "index";
}
}

好了,就先到这儿吧!

springBoot整合mybatis、jsp 或 HTML的更多相关文章

  1. springboot系列四:springboot整合mybatis jsp

    一.用IDEA 创建maven项目 项目目录结构 1.添加pom jar依赖 <?xml version="1.0" encoding="UTF-8"?& ...

  2. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例

    1.前言 本文主要介绍使用SpringBoot与shiro实现基于数据库的细粒度动态权限管理系统实例. 使用技术:SpringBoot.mybatis.shiro.thymeleaf.pagehelp ...

  3. SpringBoot整合MyBatis与MySql8&period;0

    一.前言 之前已经有一篇文章讨论过SpringBoot整合MyBatis,因而此篇不在重复累赘,本文主要是最新版的SpringBoot2.0与MyBatis.最新MySQL8.0整合过程中遇到的问题进 ...

  4. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  5. SpringBoot整合Mybatis【非注解版】

    接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 ​ 选择Spring Initializr,配置JDK版本 ​ 输入项目名 ​ 选择构建web项目所需的state ...

  6. SpringBoot整合Mybatis注解版---update出现org&period;apache&period;ibatis&period;binding&period;BindingException&colon; Parameter &&num;39&semi;XXX&&num;39&semi; not found&period; Available parameters are &lbrack;arg1&comma; arg0&comma; param1&comma; param2&rsqb;

    SpringBoot整合Mybatis注解版---update时出现的问题 问题描述: 1.sql建表语句 DROP TABLE IF EXISTS `department`; CREATE TABL ...

  7. springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)

    这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...

  8. springboot整合mybatis出现的一些问题

    springboot整合mybatis非常非常的简单,简直简单到发指.但是也有一些坑,这里我会详细的指出会遇到什么问题,并且这些配置的作用 整合mybatis,无疑需要mapper文件,实体类,dao ...

  9. SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)

    1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...

随机推荐

  1. MYSQL导入,导出命令。

    Windows下 命令速度远远快于客户端工具导库 导入SQL文件命令,D:\mysqlserver\bin>mysql -uroot -p e6wifi_content <C:/Users ...

  2. RCP&colon; MANIFEST&period;MF&comma; plugin&period;xml&comma; build&period;properties三种文件的区别

    在Eclipse插件开发中, MANIFEST.MF, plugin.xml, build.properties是三种最常见的文件,由于它们共享同一个编辑器(Plug-in Manifest Edit ...

  3. MFC新婚之夜(笑昏,大概是指MFC的人固步自封)

    请问学会MFC都要学些什么呢?DOC-VIEW,OLE,UI线程,泵,钩,还是堆,栈内存分配与回收的机制?还是那些各种各样的CHAR,还是__cdecl, __stdcall,PASCAL等等,或者编 ...

  4. 用SWF来代替传统的帧动画

    一般的帧动画是有两大缺点: 1.资源浪费,包大 2.很难实现平滑过渡 特别对于GIF,还会存在噪点问题,但是SWF利用自身的优势,不仅有现成的编辑器,而且还有矢量动画,补间动画等,大大 降低了资源的大 ...

  5. 如何使用门罗币远程节点remote node&quest;

    当使用门罗币钱包的时候,都需要启动monerod,用来同步门罗币区块. 但是因为区块体积目前已经超过40G了, 所以需要花费很多天时间才能把数据同步完. 这对于使用门罗币非常的不方便. 远程节点rem ...

  6. 微信小程序实际开发中学习

    三个概念 微信:就是一个聊天工具 微信公众号:企业或个人用于管理其粉丝/用户的应用(类似于APP) 微信小程序:不需要下载安装直接可以使用的软件/应用/APP 小程序与公众号的区别: 定位不同(小程序 ...

  7. 数据库中id为自增

    使用find_and_modify函数可以设置mongo的id为自增 且可以支持原有的高并发操作,find_and_modify函数完成更新查找两个操作其是原子性的操作 代码:(auto_id.py) ...

  8. Java SSM框架之MyBatis3(十)MyBatis批量插入数据&lpar;MySql&rpar;

    插入成功后返回自增主键 <insert id="insertRole" parameterType="role" useGeneratedKeys=&qu ...

  9. Chrome 控制台报错Unchecked runtime&period;lastError&colon; The message port closed before a response was received

    Chrome浏览器控制台报错提示 Unchecked runtime.lastError: The message port closed before a response was received ...

  10. shell脚本中的数据传递方式

    shell中支持的数据传递方式 主要有那么几种: 变量.管道.结果引用.重定向+文件.以及xargs. 变量方式: 1. 定义变量: 变量名=值 2. 使用变量: $变量名 管道方式: 统计当前文件夹 ...