Base de datos integrada de aprendizaje SpringBoot

MySQL integrado

Dependencias requeridas

controlador mysql

		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

Conéctese a la base de datos a través de jdbc

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

Cree una nueva tabla en mysql (la base de datos de primavera es lo que tengo)

use spring;
drop table if exists zuser;
create table zuser
(
 id varchar(32) not null comment '主键',
 name varchar(10) default null comment '用户名',
 password varchar(32) default null comment '密码'
);

insert into zuser values ('1','小T','123456');
insert into zuser values ('2','小H','123456');

Inserte la descripción de la imagen aquí
Agregue application.properties (usando mysql8.0, url es más problemático)

#mysql连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/spring?serverTimezone=GMT&useUnicode=true&characterEncoding=UTF-8&useSSL=false&zeroDateTime
#用户名
spring.datasource.username=root
#密码
spring.datasource.password=123456
#驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

Crear clase de entidad

package com.zzf.demo.model;

import lombok.Data;

/*
 *
 *@author:zzf
 *@time:2020-11-16
 *
 */
@Data
public class ZUser {
    
    
    //主键
    private String id;
    //用户名
    private String name;
    //密码
    private String password;


}

El complemento de lombok se usa aquí (se requiere descarga), que puede generar la
dependencia del complemento de lombok del método get / set / toString

		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

prueba

package com.zzf.demo;

import com.zzf.demo.model.ZUser;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

@SpringBootTest
class DemoApplicationTests {
    
    

    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Test
    void contextLoads() {
    
    

        String sql="select id,name,password from zuser";
        List<ZUser> userList=jdbcTemplate.query(sql, new RowMapper<ZUser>() {
    
    
            @Override
            public ZUser mapRow(ResultSet resultSet, int i) throws SQLException {
    
    
                ZUser user=new ZUser();
                user.setId(resultSet.getString("id"));
                user.setName(resultSet.getString("name"));
                user.setPassword(resultSet.getString("password"));

                return user;
            }
        });
        System.out.println("查询成功:");
        for (ZUser user:userList
             ) {
    
    
            System.out.println(user.toString());
        }
    }

}

JdbcTemplate es una clase de herramienta que puede agregar, eliminar, verificar y modificar la base de datos

query () es la consulta

El objeto RowMapper puede encapsular cada fila de datos consultados en una clase definida por el usuario

efecto
Inserte la descripción de la imagen aquí

Druida integrado

Druid es un grupo de conexión de base de datos del proyecto de código abierto Alibaba. Es un componente JDBC. Se utiliza principalmente para monitorear y observar la conexión y el trabajo de consulta SQL. Incluye tres partes:

DruidDriver: Proxy Driver, que proporciona un sistema de complementos basado en el modelo Filtter-Chain.
DruidDataSource: un grupo de conexiones de base de datos eficiente y manejable
SQLParser: compatible con todas las bases de datos compatibles con JDBC

dependencia druida

		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>

configuración druida

#mysql连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/spring?serverTimezone=GMT&useUnicode=true&characterEncoding=UTF-8&useSSL=false&zeroDateTime
#用户名
spring.datasource.username=root
#密码
spring.datasource.password=123456
#驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据源类别
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#初始化大小,最小、最大
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
#获取连接等待超时的时间,单位为毫秒
spring.datasource.druid.max-wait=60000
#间隔多久检测一次,关闭空闲连接
spring.datasource.druid.time-between-eviction-runs-millis=60000
#配置一个连接在池中最小生存时间
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=select 1 from dual
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
#打开PSCache,并指定每个连接上PSCache的大小
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
#配置监控统计拦截的filters,去掉后监控界面SQL无法统计,'wall'用于防火墙
spring.datasource.druid.filters=stat,wall,log4j
#通过connecProperties属性打开mergeSql功能;慢SQL记录
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
#合并多个DruidDataSource的监控数据
spring.datasource.druid.use-global-data-source-stat=true

También introduzca la dependencia de log4j; de lo contrario, se informará un error, puede imprimir el log
log4j

		<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

Cree un nuevo archivo log4j.properties

log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

Encienda la función de monitoreo

Clase de configuración

package com.zzf.demo.filter;

import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/*
 *
 *@author:zzf
 *@time:2020-11-16
 *
 */
@Configuration
public class DruidConfiguration {
    
    
    @Bean
    public ServletRegistrationBean druidStatViewServlet(){
    
    
        //ServletRegistrationBean提供类的进行注册
        ServletRegistrationBean servletRegistrationBean
                =new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        //添加初始化参数:initParams
        //白名单:
        servletRegistrationBean.addInitParameter("allow","127.0.0.1");
        //IP黑名单(如果同时存在,deny优先于allow)
        //如果满足deny提示没有权限访问
        servletRegistrationBean.addInitParameter("deny","192.168.1.73");
        //登录查看账号密码的信息
        servletRegistrationBean.addInitParameter("LoginUsername","admin");
        servletRegistrationBean.addInitParameter("loginPassword","123456");
        //是否能够重置数据
        servletRegistrationBean.addInitParameter("resetEnable","false");
        return servletRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean druidStatFilter(){
    
    

        FilterRegistrationBean filterRegistrationBean
                =new FilterRegistrationBean(new WebStatFilter());
        //添加过滤规则
        filterRegistrationBean.addUrlPatterns("/*");
        //添加需要忽略的格式信息
        filterRegistrationBean.addInitParameter("exclusions",
                "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;

    }
}

Equivalente a en el archivo de configuración de primavera en ssm<bean>

Ejecute el proyecto e ingrese http: // localhost: 8080 / druid / index.html en el navegador para
ingresar a la interfaz de monitoreo después de iniciar sesión
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43610675/article/details/109728480
Recomendado
Clasificación