笔记:使用IDEA创建SpringBoot+MyBatis+Mysql+Redis项目

1.创建SpringBoot项目

(1)    首先我们先在IDEA上创建一个SpringBoot的Web项目。打开IDEA,选择左上角file -----> new -----> project -----> Spring Initializr

在这里插入图片描述

(2) 选择next

在这里插入图片描述

  • Group、Artifact: com.lcq.demo(这里是包路径前缀,可修改也可不修改(默认)com.example.demo)
  • Java Version:8(选择自己电脑本地的jdk版本)

(3) 项目信息填写完后,选择next

在这里插入图片描述
这里要选择包依赖关系,先选择web就行了,mysql、mybatis、redis可以后续在pom里添加

(4) 选择next

在这里插入图片描述
project name: 项目名
project location:项目保存路径
可以根据自己需求更改

(5)最后选择 finish

在这里插入图片描述
其中DemoApplication就是项目的启动项。(可以将配置文件的后缀修改成.yaml)
启动看看是否配置成功
可以在启动类右键Run/debug ’DemoApplication’,也可以点击右上角的启动按钮
在这里插入图片描述
在这里插入图片描述

启动后有可能会报错

  1. 端口被占用
    Web server failed to start. Port 8080 was already in use.
    解决办法:打开配置文件,修改端口
    在这里插入图片描述

2. 配置mybatis、mysql

(1) 在pom.xml里加入如下:

    <dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>8.0.13</version>
	</dependency>
    <dependency>
		<groupId>org.mybatis.spring.boot</groupId>
		<artifactId>mybatis-spring-boot-starter</artifactId>
		<version>2.0.0</version>
	</dependency>

引入mybatis有两种方式

mybatis-spring-boot-starter里面已经有包含jdbc里,如果不使用mybatis只用jdbctemplate就只用引入spring-boot-starter-jdbc

   第一种方式引入Mybatis的方式
   
	  <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.1.2</version>
      </dependency>     
      
   第二种方式引入Mybatis的方式
   
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-jdbc</artifactId>
	</dependency>

	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis-spring</artifactId>
		<version>1.2.2</version>
	</dependency>

(2) 在application.yml配置你数据库的信息

配置文件默认是application.properties,改成.yaml格式。

server:
  port: 9090
  servlet:
      context-path: /demo
spring:
  datasource:
      url: jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8&allowMultiQueries=true
      username: root
      password: admin
      driver-class-name: com.mysql.cj.jdbc.Driver

这里更改了项目访问的项目名:context-path
配置完启动一下

可能出现的错误:
1.
在这里插入图片描述
解决方式:
更改@Test的引用包
在这里插入图片描述

3. 测试是否成功

打开数据库,建一张新表:t_student,并插入几条数据
在这里插入图片描述
在这里插入图片描述
创建对应的类,完整的类结构如下
在这里插入图片描述

(1) 建立一个controller包,在它下面创建一个TestController类

在这里插入图片描述
TestController类里的内容如下:

package com.lcq.demo.controller;

import com.lcq.demo.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping(value = "/account")
public class TestController {

    @Autowired
    private StudentService studentService;

    /**
     * 获取账号数据
     * @return
     */
    @RequestMapping(value="/getUserInfo")
    public Map<String, Object> getUserInfo() {
        Map<String, Object> resultMap = new HashMap<>();

        resultMap = studentService.queryUser();

        return resultMap;
    }
}

(2) 建立一个service包,在它下面创建一个StudentService类

StudentService类里的内容如下:

package com.lcq.demo.service;

import com.lcq.demo.mybatis.dao.TStudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
public class StudentService {

    @Autowired
    private TStudentMapper mapper;

    //查询用户信息
    public Map<String, Object> queryUser() {

        return mapper.queryUser();
    }

}

(3) 建立一个mybatis包,然后在他下面创建entity包,在entity下面创建一个TStudent实体类

package com.lcq.demo.mybatis.entity;

public class TStudent {

    private String id;

    private String name;

    private Integer age;

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

(4) 建立Dao层,在mybatis下面创建一个dao包,再在dao包里面创建TStudentMapper的接口

package com.lcq.demo.mybatis.dao;

import java.util.Map;

public interface TStudentMapper {

    //查询用户信息
    Map<String, Object> queryUser();

}

(5) 建立mybatis,在resources下面创建一个mapping包,然后再在里面创建mybatis包,最后创建TStudentMapper.xml

建包的时候分开创建,不要直接在建包的时候输:mapping.mybatis;可能会遇到解析的时候找不到xml文件,这里图省事直接写死条件,想要动态传入查询条件,在resultType前面加上parameterType="type”,type是参数的类型,例如:String,map。。。。

<?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.lcq.demo.mybatis.dao.TStudentMapper">
    <resultMap id="BaseResultMap" type="com.lcq.demo.mybatis.entity.TStudent">
        <!--
          WARNING - @mbg.generated
        -->
        <id column="id" jdbcType="VARCHAR" property="id"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <result column="age" jdbcType="SMALLINT" property="age"/>
    </resultMap>

    <!-- 查询用户信息 -->
    <select id="queryUser" resultType="map">
SELECT
	*
FROM
	t_student
WHERE
	id = '1'
    </select>

</mapper>

(6) 添加包扫描

在application.yaml里添加实体类跟xml的路径
在这里插入图片描述
在启动类DemoApplication.java里添加dao层路径
在这里插入图片描述
最后启动项目,
打开网页输入:http://127.0.0.1:9090/demo/account/getUserInfo
出现数据库里的值就算成功了。
在这里插入图片描述

4. 配置redis

(1) 在pom.xml里加入如下:

    <!--redis-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

(2) 在要引用的类里添加

@Autowired
private RedisTemplate<String,String> redisTemplate;

例如:在刚才的TestController.java里添加,并且在方法里调用写入跟读取

package com.lcq.demo.controller;

import com.lcq.demo.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping(value = "/account")
public class TestController {

    @Autowired
    private StudentService studentService;

    @Autowired
    private RedisTemplate<String,String> redisTemplate;

    /**
     * 获取账号数据
     * @return
     */
    @RequestMapping(value="/getUserInfo")
    public Map<String, Object> getUserInfo() {
        Map<String, Object> resultMap = new HashMap<>();

        resultMap = studentService.queryUser();

        redisTemplate.opsForValue().set("test","123456789");

        resultMap.put("redisValue",redisTemplate.opsForValue().get("test"));

        return resultMap;
    }
}

加完后,重新启动项目,照样在浏览器上输入项目访问路径,能取到在方法里存的值就OK了。

在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值