当前位置: 首页 > news >正文

1.6 初探JdbcTemplate操作

一、JdbcTemplate案例演示

1、创建数据库与表

(1)创建数据库

执行命令:CREATE DATABASE simonshop DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
或者利用菜单方式创建数据库 - simonshop
在这里插入图片描述

打开数据库simonshop
在这里插入图片描述

(2)创建用户表

创建用户表 - t_user
在这里插入图片描述

CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL,`password` varchar(20) DEFAULT NULL,`telephone` varchar(11) DEFAULT NULL,`register_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,`popedom` int(11) DEFAULT NULL COMMENT '0:管理员;1:普通用户',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

(3)用户表添加记录

给用户表添加4条记录
在这里插入图片描述

INSERT INTO `t_user` VALUES ('1', 'admin', '12345', '15734345678', '2016-12-02 08:40:35', '0');
INSERT INTO `t_user` VALUES ('2', '郑晓红', '11111', '13956567889', '2016-12-20 09:51:43', '1');
INSERT INTO `t_user` VALUES ('3', '温志军', '22222', '13956678907', '2016-12-20 09:52:36', '1');
INSERT INTO `t_user` VALUES ('4', '涂文艳', '33333', '15890905678', '2016-12-05 09:52:56', '1');

(4)查看用户表内容

用户表 - t_user有4条记录
在这里插入图片描述

2、打开Spring项目

Spring项目 - SpringDemo
在这里插入图片描述

3、添加数据库相关依赖

在pom.xml文件里添加相关依赖
在这里插入图片描述

<!--Spring数据库支持-->                                  
<dependency>                                        <groupId>org.springframework</groupId>          <artifactId>spring-jdbc</artifactId>            <version>5.3.25</version>            
</dependency>                                       
<!--数据库驱动工具包-->                                     
<dependency>                                        <groupId>mysql</groupId>                        <artifactId>mysql-connector-java</artifactId>   <version>5.1.49</version>                       
</dependency>                                       
<!--数据库连接池框架-->                                     
<dependency>                                        <groupId>com.alibaba</groupId>                  <artifactId>druid</artifactId>                  <version>1.2.16</version>                       
</dependency>       

4、创建用户实体类

ORM(Object Relation Mapping)对象关系映射
用户表t_user对应的用户实体类User ,表里的字段对应实体类的属性,一条表记录对应一个实体对象
在net.hf.spring包里创建day06.bean子包,然后在子包里面创建User类
在这里插入图片描述

package net.hf.spring.day06.bean;import java.util.Date;/*** 功能:用户实体类* 作者:hf* 日期:2023年03月01日*/
public class User {private int id;private String username;private String password;private String telephone;private Date registerTime;private int popedom;public int getId() {return id;}public void setId(int 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;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone = telephone;}public Date getRegisterTime() {return registerTime;}public void setRegisterTime(Date registerTime) {this.registerTime = registerTime;}public int getPopedom() {return popedom;}public void setPopedom(int popedom) {this.popedom = popedom;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", telephone='" + telephone + '\'' +", registerTime=" + registerTime +", popedom=" + popedom +'}';}
}

5、创建用户数据访问接口

DAO(Data Access Object)数据访问对象
在net.hf.spring包里创建day06.dao子包,在子包里创建UserDao接口
在这里插入图片描述

package net.hf.spring.day06.dao;import net.hf.spring.day06.bean.User;import java.util.List;/*** 功能:用户数据访问接口* 作者:hf* 日期:2023年03月01日*/
public interface UserDao {int insert(User user);int deleteById(int id);int update(User user);User findById(int id);List<User> findAll();User login(String username, String password);
}

6、创建用户数据访问接口实现类

Impl - Implementation 实现
在net.hf.spring.day06.dao包里创建impl子包,然后在子包里创建UserDaoImpl类
在这里插入图片描述

package net.hf.spring.day06.dao.impl;import net.hf.spring.day06.bean.User;
import net.hf.spring.day06.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;/*** 功能:用户数据访问接口实现类* 作者:hf* 日期:2023年03月01日*/
@Repository("userDao")
public class UserDaoImpl implements UserDao {@Autowiredprivate JdbcTemplate jdbcTemplate;/*** 插入用户记录** @param user* @return 插入记录数*/public int insert(User user) {// 定义字符串String strSQL = "INSERT INTO t_user (username, password, telephone, " +"register_time, popedom) VALUES (?, ?, ?, ?, ?)";// 调用模板的更新方法执行SQL语句return jdbcTemplate.update(strSQL, user.getUsername(),user.getTelephone(), user.getRegisterTime(), user.getPopedom());}/*** 按编号删除用户记录** @param id* @return 删除记录数*/public int deleteById(int id) {// 定义SQL字符串String strSQL = "DELETE FROM t_user WHERE id = ?";// 调用模板的更新方法执行SQL语句return jdbcTemplate.update(strSQL, id);}/*** 更新用户记录** @param user* @return 更新记录数*/public int update(User user) {// 定义SQL字符串String strSQL = "UPDATE t_user SET username = ?, password = ?, " +"telephone = ?, register_time = ?, popedom = ? WHERE id = ?";// 调用模板的更新方法执行SQL语句return jdbcTemplate.update(strSQL, user.getUsername(), user.getPassword(),user.getTelephone(), user.getRegisterTime(), user.getPopedom(), user.getId());}/*** 按编号查询用户记录** @param id* @return 用户对象*/public User findById(int id) {String strSQL = "SELECT * FROM t_user WHERE id = ?";return jdbcTemplate.queryForObject(strSQL, new RowMapper<User>() {// 行映射方法(将用户表记录映射成用户实体)@Overridepublic User mapRow(ResultSet rs, int row) throws SQLException {// 创建用户表User user = new User();// 从结果获取字段值设置用户对象属性user.setId(rs.getInt("id"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));user.setTelephone(rs.getString("telephone"));user.setRegisterTime(rs.getTimestamp("register_time"));user.setPopedom(rs.getInt("popedom"));// 返回用户对象return null;}}, id);}/*** 查询全部用户记录** @return 用户列表*/public List<User> findAll() {// 创建用户列表List<User> users = new ArrayList<>();// 定义SQL字符串String strSQL = "SELECT * FROM t_user";// 查询获取行列表List<Map<String, Object>> rows = jdbcTemplate.queryForList(strSQL);// 遍历行列表,生成用户列表for (Map<String, Object> row : rows) {// 创建用户对象User user = new User();// 从行获取列值设置用户对象属性user.setId((Integer) row.get("id"));user.setUsername((String) row.get("username"));user.setPassword((String) row.get("password"));user.setTelephone((String) row.get("telephone"));user.setRegisterTime((Date) row.get("register_time"));user.setPopedom((Integer) row.get("popedom"));// 将用户对象添加到用户列表users.add(user);}// 返回用户列表return null;}/*** 用户登录** @param username* @param password* @return 用户实体(null:登录失败,not null:登录成功)*/public User login(String username, String password) {String strSQL = "SELECT * FROM t_user WHERE username = ? AND password = ?";return jdbcTemplate.queryForObject(strSQL, new RowMapper<User>() {// 行映射方法(将用户表记录映射成用户实体)public User mapRow(ResultSet rs, int row) throws SQLException {// 创建用户对象User user = new User();// 从结果集获取字段值设置用户对象属性user.setId(rs.getInt("id"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));user.setTelephone(rs.getString("telephone"));user.setRegisterTime(rs.getTimestamp("register_time"));user.setPopedom(rs.getInt("popedom"));// 返回用户对象return user;}}, username, password);}
}

7、创建用户服务类

在net.hf.spring.day06包里创建service子包,然后在子包里创建UserService类
在这里插入图片描述

package net.hf.spring.day06.service;import net.hf.spring.day06.bean.User;
import net.hf.spring.day06.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** 功能:用户服务类* 作者:hf* 日期:2023年03月07日*/@Service("userService")
public class UserService {@Autowiredprivate UserDao userDao;public int addUser(User user) {return userDao.insert(user);}public int deleteUserById(int id) {return userDao.deleteById(id);}public int updateUser(User user) {return userDao.update(user);}public User findUserById(int id) {return userDao.findById(id);}public List<User> findAllUsers() {return userDao.findAll();}public User login(String username, String password) {return userDao.login(username, password);}
}

8、创建数据库配置属性文件

在resources目录里创建数据库配置属性文件 - jdbc.properties
在这里插入图片描述

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/simonshop?useSSL=false
jdbc.username=root
jdbc.password=p@ssw0rd

注意密码要改成你安装MySQL时候设置的密码

9、创建Spring配置文件

在resources里创建Spring配置文件 - spring-config.xml
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!--组件扫描--><context:component-scan base-package="net.hf.spring.day06"/><!--声明属性占位符--><context:property-placeholder location="jdbc.properties"/><!--定义数据源Bean--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!--定义JDBC模板Bean--><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"/></bean>
</beans>

10、创建用户服务测试类

在test/java目录的net.hf.spring包里创建day06.service子包,然后在子包里创建TestUserService类
在这里插入图片描述

package net.hf.spring.day06.service;import org.junit.After;
import org.junit.Before;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** 功能:测试用户服务类* 作者:hf* 日期:2023年03月07日*/
public class TestUserService {private UserService userService; // 用户服务对象private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器@Beforepublic void init() {// 基于Spring配置文件创建应用容器context = new ClassPathXmlApplicationContext("spring-config.xml");// 根据名称从应用容器里获取用户服务对象userService = (UserService) context.getBean("userService");}@Afterpublic void destroy() {// 关闭应用容器context.close();}
}

(1)测试按编号查询用户方法

创建testFindUserById()方法
在这里插入图片描述

运行测试方法testFindUserById(),查看结果
在这里插入图片描述

修改测试方法里的id值,再运行,查看结果
在这里插入图片描述

在这里插入图片描述

修改测试方法,捕获异常,再运行,查看结果
在这里插入图片描述

(2)测试查询全部用户方法

创建testFindAllUsers()方法
在这里插入图片描述

在这里插入图片描述

(3)测试添加用户方法

创建testAddUser()方法
在这里插入图片描述

运行测试方法,查看结果
在这里插入图片描述

查看用户表记录
在这里插入图片描述

(4)测试更新用户方法

创建testUpdateUser()方法
在这里插入图片描述

运行测试方法testUpdateUser(),查看结果
在这里插入图片描述

查看用户表记录
在这里插入图片描述

(5)测试删除用户方法

创建testDeleteUserById()方法
在这里插入图片描述

运行测试方法testDeleteUserById(),查看结果
在这里插入图片描述

查看用户表记录,哇哈哈记录不见了
在这里插入图片描述

4、测试用户登录方法

创建testLogin()方法
在这里插入图片描述

运行测试方法testLogin(),查看结果
在这里插入图片描述

修改testLogin()方法
在这里插入图片描述

运行测试方法,查看结果
在这里插入图片描述

相关文章:

1.6 初探JdbcTemplate操作

一、JdbcTemplate案例演示 1、创建数据库与表 &#xff08;1&#xff09;创建数据库 执行命令&#xff1a;CREATE DATABASE simonshop DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 或者利用菜单方式创建数据库 - simonshop 打开数据库simonshop &#x…...

为什么要用线程池?

线程池是一种管理和复用线程资源的机制&#xff0c;它由一个线程池管理器和一组工作线程组成。线程池管理器负责创建和销毁线程池&#xff0c;以及管理线程池中的工作线程。工作线程则负责执行具体的任务。 线程池的主要作用是管理和复用线程资源&#xff0c;避免了线程的频繁…...

c语言的预处理和编译

预处理 文件包含 当预处理器发现#include指令时&#xff0c;会查看后面的文件名并把文件的内容包含到当前文件中 两种写法 尖括号&#xff1a;引用的是编译器的库路径里面的头文件。 双引号&#xff1a;引用的是程序目录中相对路径中的头文件&#xff0c;如果找不到再去上面…...

网络安全必学 SQL 注入

1.1 .Sql 注入攻击原理 SQL 注入漏洞可以说是在企业运营中会遇到的最具破坏性的漏洞之一&#xff0c;它也是目前被利用得最多的漏洞。要学会如何防御 SQL 注入&#xff0c;首先我们要学习它的原理。 针对 SQL 注入的攻击行为可描述为通过在用户可控参数中注入 SQL 语法&#x…...

Docker基础知识详解

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;文章 &#x1f96d;本文内容&am…...

腾讯、阿里入选首批“双柜台证券”,港股市场迎盛夏升温?

6月5日&#xff0c;香港交易所发布公告&#xff0c;将于6月19日在香港证券市场推出“港币&#xff0d;人民币双柜台模式”&#xff0c;当日确定有21只证券指定为双柜台证券。同时&#xff0c;港交所还表示&#xff0c;在双柜台模式推出前&#xff0c;更多证券或会被接纳并加入双…...

CentOS7 使用Docker 安装MySQL

CentOS7 使用Docker 安装MySQL Docker的相关知识本篇不会再概述&#xff0c;有疑惑的同学请自行查找相关知识。本篇只是介绍如何在CentOS7下使用Docker安装相应的镜像。 可登陆Docker官网 https://docs.docker.com 之后可以跟着官方的步骤进行安装。 clipboard.png 具体安装过…...

注解和反射复习

注解 注解&#xff1a;给程序和人看的&#xff0c;被程序读取&#xff0c;jdk5.0引用 内置注解 override:修饰方法&#xff0c;方法声明和重写父类方法&#xff0c; Deprecated:修饰&#xff0c;不推荐使用 suppressWarnings用来抑制编译时的警告,必须添加一个或多个参数s…...

RocketMQ的demo代码

下面是一个使用Java实现的RocketMQ示例代码&#xff0c;用于发送和消费消息&#xff1a; 首先&#xff0c;您需要下载并安装RocketMQ&#xff0c;并启动NameServer和Broker。 接下来&#xff0c;您可以使用以下示例代码来发送和消费消息&#xff1a; Producer.java文件&…...

C++ 连接、操作postgreSQL(基于libpq库)

C++ 连接postgreSQL(基于libpq库) 1.环境2.数据库操作2.1. c++ 连接数据库2.2. c++ 删除数据库属性表内容2.3. c++ 插入数据库属性表内容2.4 c++ 关闭数据库1.环境 使用libpq库来链接postgresql数据库,主要用到的头文件是这个: #include "libpq-fe.h"2.数据库操…...

Node.js技术简介及其在Web开发中的应用

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;使得JavaScript能够在服务器端运行。Node.js采用事件驱动、非阻塞I/O模型&#xff0c;能够处理大量并发请求&#xff0c;非常适合处理I/O密集型的应用程序。本文将介绍Node.js的特点、优势以及在Web开发中的应…...

时间序列分析:原理与MATLAB实现

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 目录 1. 时间序列分析简介 2. 自回归模型(AR) 2.1. 参数估计 2.2. MATLAB实现...

mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名

mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名 默认情况下&#xff0c;MySQL将null算作最小值。如果想要手动指定null的顺序&#xff0c;可以这样处理&#xff1a; 将null强制放在最前 //null, null, 1,2,3,4&#xff08;默认就是这样&#…...

华为OD机试真题 Java 实现【递增字符串】【2023Q1 200分】,附详细解题思路

一、题目描述 定义字符串完全由“A’和B"组成,当然也可以全是"A"或全是"B。如果字符串从前往后都是以字典序排列的,那么我们称之为严格递增字符串。 给出一个字符串5,允许修改字符串中的任意字符,即可以将任何的"A"修改成"B,也可以将…...

合并文件解决HiveServer2内存溢出方案

一、文件过多导致HiveServer2内存溢出 1.1查看表文件个数 desc formatted yanyu.tmp• 表文件数量为6522102 1.2查看表文件信息 hadoop fs -ls warehouse/yanyu.db/tmp• 分区为string 类型的time字段&#xff0c;分了2001个区。 1.3.查看某个分区下的文件个数为10000个 …...

韧性数据安全体系缘起与三个目标 |CEO专栏

今年4月&#xff0c;美创科技在数据安全领域的新探索——“韧性”数据安全防护体系框架正式发布亮相。 为帮您更深入了解“韧性数据安全”&#xff0c;我们特别推出专栏“构建适应性进化的韧性数据安全体系”&#xff0c;CEO柳遵梁亲自执笔&#xff0c;进行系列解读分享。 首期…...

华为OD机试真题 Java 实现【火车进站】【牛客练习题】

一、题目描述 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号,火车站只有一个方向进出,同时停靠在火车站的列车中,只有后进站的出站了,先进站的才能出站。 要求输出所有火车出站的方案,以字典序排序输出。 …...

c#快速入门(下)

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析2 目录 &#x1f449;&#x1f3fb;Inline和lambda委托和lambda &#x1f449;&#x1f…...

基于深度学习的目标姿态检测方法_kaic

目录 摘要 第1章 引言 1.1 研究背景和意义 1.2 国内外研究现状 1.3 主要内容 第2章 单目相机的目标姿态检测技术 2.1单目相机的工作原理 2.2目标姿态检测 2.3已有的目标姿态检测方法及其局限性 2.4本章总结 第3章 构建数据集 3.1 数据集来源 3.2数据集标注 3.3数据集分析 3.4本…...

Pycharm设置Python每个文件开头自定义模板(带上声明字符编码、作者名、时间等)

Pycharm设置地址&#xff1a; 在File---settings---Editor---File and Code Templates---Python script 脚本里添加: 模板声明设置参考&#xff1a; # ---encoding:utf-8--- # Time : ${DATE} ${HOUR}:${MINUTE} # Author : 作者名 # Email &#xff1a;你的邮箱 # Sit…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...