89.【SpringBoot-02】(三)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 89.【SpringBoot-02】

观察到德鲁伊的后台,会检测到SQL语句的变化

(4).配置Druid数据源过滤器
//    配置过滤器
    @Bean
    public FilterRegistrationBean Filter(){
        FilterRegistrationBean filterFilterRegistrationBean = new FilterRegistrationBean();
        filterFilterRegistrationBean.setFilter(new WebStatFilter());
//        可以过滤那些请求?
        Map<String, String> initParameters=new HashMap<>();
//        排除谁被过滤?
        initParameters.put("exclusions","*.js,*.css,*.html,*/druid/*");
//        设置初始化参数
        filterFilterRegistrationBean.setInitParameters(initParameters);
        return filterFilterRegistrationBean;
    }

注意点:DruidConfig文件一定要添加配置注解,在里面配置的一些servlet和filter都要添加@Bean注解

(5).注解的详解⭐

@SpringBootApplication

这个注解是SpringBoot最核心的注解,用在SpringBoot的主类上,标识这是一个SpringBoot应用,用来开启SpringBoot的各项能力。实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般都是一起使用,所以SpringBoot提供了一个统一的注解@SpringBootApplication。

@EnableAutoConfiguration

允许SpringBoot自动配置注解,开启这个注解之后,SpringBoot就能根据当前类路径下的包或者类来配置SpringBean。

如:当前路径下有Mybatis这个JAR包,MybatisAutoConfiguration注解就能根据相关参数来配置Mybatis的各个SpringBean,

@Configuration

用于定义配置类,指出该类是Bean配置的信息源,相当于传统的xml配置文件,一般加在主类上。如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类。

@ComponentScan

组件扫描。让SpringBoot扫描到Configuration类并把它加入到程序上下文。@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到Spring容器中。

@RestController

用于标注控制层组件(如struts中的action),表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器;它是@Controller和@ResponseBody的合集。

@Bean

相当于XML中的< bean> < /bean>,放在方法的上面,而不是类,意思是产生一个bean,并交给Spring管理。

@PathVariable

路径变量,参数与大括号里的名字一样要相同。

@ConfigurationProperties

将配置文件中的Person属性赋的值映射到该组件中

3.整合Mybatis

(1).整合测试

1.导入Mybatis的依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>

2.我们在编写配置的时候,driver-class-name 驱动一定要放在最后面.否则会报错

反列:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
      username: root
      password: 121788
      url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useonicode=true&characterEncoding=utf-8

正列:

spring:
  datasource:
      username: root
      password: 121788
      url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useonicode=true&characterEncoding=utf-8
      driver-class-name: com.mysql.jdbc.Driver

3.我们的pom.xml文件中,需要引入mybatis的驱动。并且JDBC的驱动需要指定版本否则报错

<?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.7.8</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jsxs</groupId>
    <artifactId>SpringBoot-04-Mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringBoot-04-Mybatis</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
<!--        我们导入Mybatis的启动器-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <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>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </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>

4、测试数据库是否连接成功!

测试数据:

package com.jsxs;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@SpringBootTest
class SpringBoot04MybatisApplicationTests {
    @Resource
    private DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {
        Connection connection = dataSource.getConnection();
        PreparedStatement preparedStatement = connection.prepareStatement("select *from user");
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()){
            System.out.println(resultSet.getString(1)+" "+resultSet.getString(2));
        }
        connection.close();
    }
}

5.设置实体类pojo

package com.jsxs.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private String pwd;
}

6.创建Dao层接口 mapper文件夹下面设置接口UserMapper.java

  • @Mapper 这个注解表示了这是一个 Mybatis 的 mapper 类相当于Dao层的接口。 类: Dao
  • @Repository Dao层接口的注解
package com.jsxs.mapper;
import com.jsxs.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
//这个注解表示了这是一个 Mybatis 的 mapper 类相当于Dao层的接口。 类: Dao
@Mapper
//  注解类 Dao
@Repository
public interface UserMapper {
//    查询全部的用户
    public List<User> queryList();
//    通过id进行查询用户
    public User UserById(int id);
//    进行增加用户信息
    public int addUser(User user);
//    进行更新用户
    public int updateUser(User user);
//    通过id进行数据的查询
    public int deleteUserById(int id);
}

7.在resources目录下设置mybatis/UserMapper.xml

  1. 绑定mapper/User.Mapper.java工作空间
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 1. 我们首先要绑定工作空间-->
<mapper namespace="com.jsxs.mapper.UserMapper">
<!-- 2.  我们编写SQL语句   -->
<!--   id是方法名, 返回类型是实体类 -->
    <select id="queryList" resultType="com.jsxs.pojo.User">
        select *from user;
    </select>
<!-- 3.通过id查找   #{xxx} 占位符 -->
    <select id="UserById" parameterType="int" resultType="com.jsxs.pojo.User">
        select *from user where id=#{id}
    </select>
<!--    3.增加用户信息-->
    <insert id="addUser" parameterType="com.jsxs.pojo.User">
        insert into user values(#{id},#{name},#{pwd})
    </insert>
<!--    4.进行更新用户信息-->
    <update id="updateUser" parameterType="com.jsxs.pojo.User">
        update user set name=#{name},pwd=#{pwd} where id=#{id}
    </update>
<!--    进行删除数据-->
    <delete id="deleteUserById" parameterType="int">
        delete from user where id=#{id}
    </delete>
</mapper>


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
Java 应用服务中间件 容器
|
6月前
|
Java Unix 调度
springboot快速整合任务
springboot快速整合任务
|
4月前
|
Java 前端开发 Maven
SpringBoot - WebJars
SpringBoot - WebJars
36 0
SpringBoot - WebJars
|
7月前
87.【SpringBoot-01】(三)
87.【SpringBoot-01】
32 0
|
7月前
|
Java 测试技术 容器
87.【SpringBoot-01】(六)
87.【SpringBoot-01】
39 0
|
7月前
87.【SpringBoot-01】(四)
87.【SpringBoot-01】
44 0
|
7月前
|
JSON JavaScript Java
87.【SpringBoot-01】(七)
87.【SpringBoot-01】
35 0
|
7月前
|
XML Java 数据格式
87.【SpringBoot-01】(五)
87.【SpringBoot-01】
46 0
|
7月前
|
存储 监控 Dubbo
91.【SpringBoot-03】(三)
91.【SpringBoot-03】
52 0
|
7月前
|
Java 数据库连接 数据库
SpringBoot总结必知必会
SpringBoot总结必知必会
58 0