IDEA创建springboot和mybatis并且集成Jsp

1.创建new project–Spring Initializr
​​在这里插入图片描述
2.命名
在这里插入图片描述
3.勾选需要的,其他的依赖就不选了,创建后也可以自己添加 直接next finish
在这里插入图片描述
4.如果前面没有修改工程名称,可以在这一界面更改,然后点击finish。
在这里插入图片描述
项目开始生成,界面右下角回弹出一个小方框,点击Enable Autop-Import ,idea 会自动下载jar包,时间比较长 (5分钟左右)
在这里插入图片描述
5、等待片刻后,项目格式如下图。controller,mapper,model,service是后来我新建的。
6.生成的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.nimi.study</groupId>
    <artifactId>springboottest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboottest</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <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>2.1.4</version>
        </dependency>

        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <scope>runtime</scope>
        </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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

  1. 创建application.properties文件

方法1:配置文件中用spring.然后快捷键稍微过一眼配置项,这是官网列出来的常用应用属性配置:官网常用应用属性配置。

#端口
server.port=8080

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/nmtest?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver

#使用mysql
spring.jpa.database = mysql
#是否显示sql语句
spring.jpa.show-sql=true
#mybatis配置 mybatis.config-location=classpath:mybatis-config.xml // 配置文件位置
mybatis.typeAliasesPackage=com.nimi.study.model
mybatis.mapper-locations=classpath:/mapper/*.xml
mybatis.configuration.map-underscore-to-camel-case=true

#页面热加载
spring.thymeleaf.cache=false

方法2:自定义配置项,比如下面

#1.项目启动的端口
server.port=8080

#2.数据库连接参数
#2.1jdbc驱动,示数据库厂商决定,这是mysql的驱动
jdbc.driver=com.mysql.cj.jdbc.Driver
#2.2数据库连接url,包括ip(127.0.0.1)、端口(3306)、数据库名(testdb)
jdbc.url=jdbc:mysql://127.0.0.1:3306/nmtest?useUnicode=true&characterEncoding=utf-8&useSSL=false
#2.3数据库账号名
jdbc.username=root
#2.4数据库密码
jdbc.password=123456

#3.Mybatis配置
#3.1 mybatis配置文件所在路径
mybatis_config_file=mybatis-config.xml
#3.2 mapper文件所在路径,这样写可匹配mapper目录下的所有mapper,包括其子目录下的
mapper_path=/mapper/**/**.xml
#3.3 entity所在包
model_package=com.nimi.study.model

那么如何读取配置呢?两种方式分别用到@Value和@ConfigurationProperties这两个注解。如https://blog.csdn.net/steven_zhulin/article/details/90726347

在这里插入图片描述
8.创建类
TestController 类

package com.nimi.study.controller;


import com.nimi.study.model.TestEntity;
import com.nimi.study.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@ResController
@RequestMapping("/springbootdemo")
public class TestController {

    @Autowired
    private TestService testService ;

    @RequestMapping(value = "/get/{id}",method = RequestMethod.GET)
    public TestEntity test(@PathVariable Integer id){
        System.out.println("id:" + id);
        return testService.getById(id);
    }
}

TestDao 类

package com.nimi.study.dao;


import com.nimi.study.model.TestEntity;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface TestDao {
    TestEntity getById(Integer id);
}

TestEntity 类

package com.nimi.study.model;

public class TestEntity {

    protected Integer id;

    protected String magicId;

    protected String firstName;

    protected String lastName;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getMagicId() {
        return magicId;
    }

    public void setMagicId(String magicId) {
        this.magicId = magicId;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

TestService 类

package com.nimi.study.service;


import com.nimi.study.dao.TestDao;
import com.nimi.study.model.TestEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class TestService {
    @Autowired
    private TestDao testDao ;

    public TestEntity getById(Integer id){
        return testDao.getById(id);
    }
}

TestMapper.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" >
<mapper namespace="com.nimi.study.dao.TestDao">
    <!-- 根据主键查询-->
    <select id="getById" resultType="com.nimi.study.model.TestEntity" parameterType="java.lang.Integer" >
        select  *
        from test
        where id = #{id}
    </select>
</mapper>

9.maven install会报错
在这里插入图片描述
解决:
在这里插入图片描述

9.启动
a.启动类启动,注意这个要在controller同级
在这里插入图片描述
b.maven启动
在这里插入图片描述

10.访问地址成功
在这里插入图片描述

11.接下来,试着跳转到页面中,官方说springboot不建议使用jsp页面,所以需要自己手工创建。

首先创建webapp目录,在里面放页面,其实可以把页面放在static和templates中,我只是习惯放在webapp下
在这里插入图片描述
步骤1:点击右边的“-”,这是Spring boot项目,不需要web.xml文件,可加可不加
步骤2:选中原路径,鼠标左边双击,目录选择为上面创建的webapp文件,这一步多说一下,这一步是指向jsp文件的根目录,将webapp设置为web资源文件夹后,你点击webapp文件夹右键创建的时候才会在上面出现jsp的创建选项。
步骤3:点击右下键的Apply就可以

在这里插入图片描述
创建完后,会多了一个WEB-INF文件夹,可以删掉不影响
在这里插入图片描述

在application.properties中引入jsp,如果controller跳转jsp,在/WEB-INF/views/下找

#引入jsp/html
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

创建jsp页面

<%--
  Created by IntelliJ IDEA.
  User: nimi
  Date: 2021/3/15
  Time: 16:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
111111111111
</body>
</html>

在pom.xml中加入依赖JAR包

        <!--jsp页面使用jstl标签-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        
     <!--用于编译jsp-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <!--<scope>provided</scope>-->
        </dependency>

创建类方法

    @RequestMapping(value = "/toindex")
    public String index(){
        return "index";
    }

启动后,访问http://127.0.0.1:8081/springboottest/toindex返回的是index,是字符串,不是页面
在这里插入图片描述
解决:把ResController改成Controller,因为ResController返回的是字符串

在这里插入图片描述
重启下继续访问,返回的是页面内容,那就是跳转到页面了
在这里插入图片描述

我这边2种启动方式都可以,原先maven启动可以,但是启动项启动一直报错404,后面发现是maven版本高于IDEA,导致没有及时更新pom文件,一直没有加载成功包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值