Java学习(maven)——maven新建项目 常用IO工具 Durid数据库工具 案例

news2024/11/26 3:28:48

引出

如何用maven新建项目,用maven建项目的优势,常用的io工具和durid工具


用Maven建项目

0.Maven配置方式

参考博客 :
【配置】Maven的配置 & Tomcat的配置 & 在IDEA中新建web项目

中的maven配置

1.io流的工具IOUtils/FileUtils

1)可以读文件、按照行读、读网页等;

package com.tianju.io;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

import java.io.*;
import java.net.URL;
import java.util.List;

public class ReadFileDemo1 {
    public static void main(String[] args) throws IOException {
        // IOUtils 进行读取
        /**
         * IOUtils.readLines 读取一个文件,把文件中的每一行放在一个List<String>中
         * 两个参数: 1.要读取文件的输入流 FileInputStream;
         *          2.编码形式,通常为"UTF-8"
         */
        List<String> stringList = IOUtils.readLines(new FileInputStream("D:\\Myprogram\\jf_map_utf8.txt"),
                "UTF-8");

        stringList.forEach(System.out::println);

        // 读文件
        List<String> in = FileUtils.readLines(new File("D:\\Myprogram\\jf_map_utf8.txt"),"UTF-8");
        System.out.println(in);

        // 读网页
        URL url = new URL("https://www.baidu.com");
        InputStream inputStream = url.openStream();
        List<String> stringList1 = IOUtils.readLines(inputStream,"UTF-8");
        stringList1.forEach(System.out::println);


    }
}

2)配合hasmap进行简体繁体转换

package com.tianju.io;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TransferDemo1 {
    public static void main(String[] args) throws IOException {
        String filePath = "D:\\Myprogram\\jf_map_utf8.txt";
        List<String> in = FileUtils.readLines(new File(filePath),"UTF-8");
        // 把list 转成 map,高效查找
        Map<String,String> map = new HashMap<>(1000);

        for (String i:in){
            String[] iSplit = i.split(":");
            map.put(iSplit[0],iSplit[1]);
        }

        // 转换单个字的方法
        System.out.println(map);
        String inStr = "发";
        System.out.println(map.get(inStr));

        // 转换一句话的方法
        String inWord = "我家住在东北6564呵呵,恭喜发财";
        StringBuilder outWord = new StringBuilder();
        char[] chars = inWord.toCharArray();
        for (char c:chars){
            // 如果是中文字符,则进行繁体字的转换
            if (Character.UnicodeScript.of(c)==Character.UnicodeScript.HAN){
                if (map.get(c+"")!=null){
                    outWord.append(map.get(c+""));
                }else {
                    outWord.append(c);
                }
            }else {
                // 否则直接加加进去
                outWord.append(c);
            }
        }
        System.out.println(outWord);


    }
}

2.durid数据库连接工具

1)创建连接,durid进行连接管理

(1)用durid去连接数据库,创建多个connection;

(2)要用到connection的时候,找durid要;

连接数据库的两种url写法:

 String url = "jdbc:mysql://127.0.0.1:3306/javaweb06?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8";
String url = "jdbc:mysql://"+ip+"?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
package com.tianju.dataSource;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;

import java.sql.SQLException;

/**
 * 1.用 druid 去连接数据库,创建多个connection
 * 2.要用到connection 的时候,找druid要
 */
public class DruidDemo {
    public static void main(String[] args) throws SQLException {
        String driverClassname = "com.mysql.cj.jdbc.Driver";
        String ip = "192.168.111.128:3306/rec_db";
        String url = "jdbc:mysql://"+ip+"?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";
        String password = "123";

        // 1.创建Druid 的连接对象,会一次性创建10个连接
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassname);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setMaxActive(10); // 让数据库一次性建立10个连接

        // 2.使用一个连接,问druid要一个连接
        DruidPooledConnection connection = dataSource.getConnection();
        System.out.println(connection);

    }
}

2)查询的方式queryForObject、query,queryForRowSet

推荐使用queryForObject、query

RowMapper<Emp> userRowMapper = new BeanPropertyRowMapper<>(Emp.class);
List<Emp> empList = jdbcTemplate.query("SELECT * FROM emp_tab", userRowMapper);

根据id查单个的方式:

    public Phone findById(Integer id) {
        List<Phone> find = db.query("SELECT * FROM t_phone WHERE id = ?", rowMapper,id);
        if (find.size()>0){
            return find.get(0);
        }
        System.out.println("Not found");
        return null;
    }
package com.tianju.dataSource;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.tianju.entity.Emp;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.support.rowset.SqlRowSet;

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

public class JdbcTmpelateDemo {
    public static void main(String[] args) throws SQLException {
        String driverClassname = "com.mysql.cj.jdbc.Driver";
        String ip = "192.168.111.128:3306/emp_db";
        String url = "jdbc:mysql://"+ip+"?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";
        String password = "123";

        // 1.创建Druid 的连接对象,会一次性创建10个连接
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassname);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setMaxActive(10); // 让数据库一次性建立10个连接

        // 2.jdbcTemplate, 操作数据库的工具类,类似于DBUtils
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        // 增删改
        jdbcTemplate.update("INSERT INTO emp_tab(emp_name, emp_gender) VALUES (?,?)","张三","女");

        // 查询,不建议用此方法
       SqlRowSet rs  = jdbcTemplate.queryForRowSet("SELECT * FROM emp_tab");
       List<Emp> list = new ArrayList<>(10);
       while (rs.next()){
           Emp emp = new Emp(
                   rs.getInt("id"),
                   rs.getString("name"),
                   rs.getString("gender"),
                   rs.getInt("age"),
                   rs.getDouble("sal"),
                   rs.getString("job")
           );
           list.add(emp);
       }
       System.out.println(list);

       // 查询的第二种方式,这种方式更好
        RowMapper<Emp> userRowMapper = new BeanPropertyRowMapper<>(Emp.class);
        List<Emp> empList = jdbcTemplate.query("SELECT * FROM emp_tab", userRowMapper);
        System.out.println("-----------------");
        System.out.println(empList);


    }
}

案例:把电话号码导入到数据库

在这里插入图片描述

0.pom.xml配置

<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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tianju</groupId>
  <artifactId>JavaWebPhone</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <!--      这个jar包,不参与到放到Tomcat运行中,但是开发的时候要用-->
      <scope>provided</scope>
    </dependency>

    <dependency>
<!--      lombok-->
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
    </dependency>

    <dependency>
<!--      io流-->
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.5</version>
    </dependency>

    <dependency>
<!--      阿里的数据库管理工具-->
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.16</version>
    </dependency>

    <dependency>
<!--      sql连接工具-->
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.20</version>
    </dependency>

    <dependency>
<!--      jdbc连接数据库工具-->
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.22.RELEASE</version>
    </dependency>

    <dependency>
<!--      junit单元测试工具-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>RELEASE</version>
          <scope>compile</scope>
      </dependency>

  </dependencies>

</project>

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

1.读取文件存到数据库

package com.tianju.test;

import com.sun.org.apache.bcel.internal.generic.NEW;
import com.tianju.util.DBUtils;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;

import java.io.File;
import java.io.IOException;
import java.util.List;

public class SaveToSQLDemo1 {
    public static void main(String[] args) throws IOException {
        JdbcTemplate db = DBUtils.getJdbcTemplate();
        String filePath = "D:\\Myprogram\\files\\phone1.csv";
        List<String> stringList = FileUtils.readLines(new File(filePath),"UTF-8");
        for (int i =1;i<stringList.size();i++){
            String[] sSplit = stringList.get(i).split(",");
            System.out.println(sSplit[1] + sSplit[2] + sSplit[3]);
            db.update("INSERT INTO t_phone(mobile_number,mobile_area,mobile_type,create_time,update_time) " +
                    "VALUES (?,?,?,now(),now())",sSplit[1],sSplit[2],sSplit[3]);
        }
    }

    @Test // 加入test注解,让普通方法变成可运行
    public void insertInSQL() throws IOException {
        JdbcTemplate db = DBUtils.getJdbcTemplate();
        String filePath = "D:\\Myprogram\\files\\phone1.csv";
        List<String> stringList = FileUtils.readLines(new File(filePath),"UTF-8");
        for (int i =1;i<stringList.size();i++){
            String[] sSplit = stringList.get(i).split(",");
            System.out.println(sSplit[1] + sSplit[2] + sSplit[3]);
            db.update("INSERT INTO t_phone(mobile_number,mobile_area,mobile_type,create_time,update_time) " +
                    "VALUES (?,?,?,now(),now())",sSplit[1],sSplit[2],sSplit[3]);
        }

    }
}

2.DBUtils

package com.tianju.util;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * 1.连接数据库--durid
 * 2.提供jdbcTemplate
 */
public class DBUtils {
    private static DruidDataSource dataSource =null;
    static {
        String driverClassname = "com.mysql.cj.jdbc.Driver";
        String ip = "127.0.0.1:3306/javaweb06";
        // jdbc:mysql://127.0.0.1:3306/javaweb06?useUnicode=true&characterEncoding=UTF-8&userSSL=false&serverTimezone=GMT%2B8
        String url = "jdbc:mysql://"+ip+"?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
        String username = "root";
        String password = "123";
        dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassname);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
    }

    /**
     *
     * @return 返回一个JdbcTemplate对象
     */
    public static JdbcTemplate getJdbcTemplate(){
        return new JdbcTemplate(dataSource);
    }


}

3.Dao层的代码【查单个/多个,统计数量】

接口部分

package com.tianju.dao;

import com.tianju.entity.Phone;

import java.util.List;

public interface IPhoneDao {

    // 添加一条数据
    /**
     * 增加一条数据
     * @param phone 增加的实体类
     * @return 返回影响的行数
     */
    Integer add(Phone phone);

    // 修改
    /**
     * 修改
     * @param phone 修改的实体类,根据该实体类的id进行定位和修改
     * @return 影响行数
     */
    Integer update(Phone phone);

    // 根据id删除一条数据
    /**
     * 根据id删除一条数据
     * @param id 删除的索引id
     * @return 影响行数
     */
    Integer deleteById(Integer id);

    // 查询所有
    /**
     * 查询数据库中所有的数据
     * @return 查询到的list
     */
    List<Phone> queryAll();

    // 根据id查询
    Phone findById(Integer id);

    // 根据mobile_number进行查询
    /**
     * 根据号码查询归属地等信息
     * @param mobileNumber 查找的电话number
     * @return 返回查找的
     */
    Phone selectByMobileNumber(String mobileNumber);

    // 查询数据条数
    /**
     * 查找所有的行数
     * @return 总的行数
     */
    Integer countDataLines();

}

实现类

package com.tianju.dao.impl;

import com.tianju.dao.IPhoneDao;
import com.tianju.entity.Phone;
import com.tianju.util.DBUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.util.List;

public class PhoneDaoImpl implements IPhoneDao {
    private JdbcTemplate db;
    private RowMapper<Phone> rowMapper;

    public PhoneDaoImpl() {
        db = DBUtils.getJdbcTemplate();
        rowMapper = new BeanPropertyRowMapper<>(Phone.class);
    }

    @Override
    public Integer add(Phone phone) {
        return db.update("INSERT INTO t_phone(id,mobile_number,mobile_area,mobile_type,create_time,update_time) VALUES " +
                "(NULL,?,?,?,now(),now())",phone.getMobileNumber(),phone.getMobileArea(),phone.getMobileType());
    }

    @Override
    public Integer update(Phone phone) {
        return db.update("UPDATE t_phone SET mobile_number=?,mobile_area=?,mobile_type=?,update_time=now() WHERE id=?",
                phone.getMobileNumber(),phone.getMobileArea(),phone.getMobileType(),phone.getId());
    }

    @Override
    public Integer deleteById(Integer id) {
        return db.update("DELETE FROM t_phone WHERE id = ?", id);
    }

    @Override
    public List<Phone> queryAll() {
        return db.query("SELECT * FROM t_phone", rowMapper);
    }

    @Override
    public Phone findById(Integer id) {
        List<Phone> find = db.query("SELECT * FROM t_phone WHERE id = ?", rowMapper,id);
        if (find.size()>0){
            return find.get(0);
        }
        System.out.println("Not found");
        return null;
    }

    @Override
    public Phone selectByMobileNumber(String mobileNumber) {
        List<Phone> find = db.query("SELECT * FROM t_phone WHERE mobile_number = ?", rowMapper,mobileNumber);
        if (find.size()>0){
            return find.get(0);
        }
        System.out.println("Not found");
        return null;
    }

    @Override
    public Integer countDataLines() {
        // 要用.queryForObject方法
        return db.queryForObject("SELECT COUNT(*) FROM t_phone", Integer.class);
    }
}

4.实体类

package com.tianju.entity;

import lombok.*;

import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Setter @Getter
public class Phone {
    private Integer id;
    private String mobileNumber;
    private String mobileArea;
    private String mobileType;
    private Date createTime; // springJDBC可以把数据中下划线转成createTime
    private Date updateTime;

    @Override
    public String toString() {
        return "\nPhone{" +
                "id=" + id +
                ", mobileNumber='" + mobileNumber + '\'' +
                ", mobileArea='" + mobileArea + '\'' +
                ", mobileType='" + mobileType + '\'' +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
}

5.进行测试

package test;

import com.tianju.dao.IPhoneDao;
import com.tianju.dao.impl.PhoneDaoImpl;
import com.tianju.entity.Phone;
import org.junit.Test;

import java.util.stream.Collectors;

public class PhoneDaoTest {
    private IPhoneDao dao = new PhoneDaoImpl();
    @Test
    public void add(){
        // 添加
        System.out.println(dao.countDataLines());
        System.out.println(dao.add(new Phone(null, "测试", "测试1", "南京", null, null)));
        System.out.println(dao.countDataLines());
    }

    @Test
    public void update(){
        // 修改
        System.out.println(dao.findById(300107));
        System.out.println(dao.update(new Phone(300107, "南京", "江宁", "hehe", null, null)));
        System.out.println(dao.findById(300107));
    }

    @Test
    public void query(){
        // 查询
        System.out.println(dao.countDataLines());
        System.out.println(dao.queryAll().stream().limit(10).collect(Collectors.toList()));
        System.out.println(dao.selectByMobileNumber("1880222"));
    }

    @Test
    public void delete(){
        System.out.println(dao.deleteById(300106));
    }


}


总结

1.maven的作用,及其配置,新建maven项目方法;
2.常用的IO工具,读取文件的方法,读取到成字符串行;
3.durid数据库连接工具,查询的方法,query;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS:一些基本命令行

目录 一、打开小海龟1.1终端&#xff0c;启动ROS Master&#xff1a;1.2终端2&#xff0c;启动小海龟仿真器&#xff1a;1.3终端3&#xff0c;启动海龟控制节点&#xff1a; 二、查看系统中的计算图三、节点命令3.1查看节点下的命令rosnode3.2显示节点列表rosnode list3.3查看节…

【致敬未来的攻城狮计划】打卡1:rasc+keil环境搭建

前言 这回参加的是csdn李肯老师的攻城狮计划&#xff0c;简单说就是我白嫖板子&#xff0c;输出学习笔记。 板子是瑞萨的CPK_RA2E1&#xff0c;还有触摸元件&#xff0c;看起来很有意思hh。 环境搭建 一开始决定采取vscode搭建的方式。后期进行到最后一步——cmake build的时…

多链路传输技术在火山引擎 RTC 的探索和实践

动手点关注 干货不迷路 传统的数据传输方式大多是利用一个链路、选择设备的默认网卡进行传输&#xff0c;使用这种方式实现实时音视频通话时&#xff0c;如果默认网络出现问题&#xff08;如断网、弱网等&#xff09;&#xff0c;用户的通信就会发生中断或者卡顿&#xff0c;影…

chatgpt赋能python:Python倒序函数:让你的列表逆转!

Python倒序函数&#xff1a;让你的列表逆转&#xff01; Python作为一种高级编程语言&#xff0c;代码简洁易学&#xff0c;因此被广泛使用。对于开发者而言&#xff0c;逆转列表&#xff08;list&#xff09;是很常见的需求。Python提供了一个内置函数reverse()来解决这个问题…

前端技术搭建扫雷小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了贪吃蛇游戏&#xff0c;今天还是继续按照我们原定的节奏来带领大家完成一个游戏&#xff0c;功能也比较简单简单&#xff0c;也是想…

钉钉斜杠“/”开启邀请测试;用ChatGPT写一个数据采集程序

&#x1f989; AI新闻 &#x1f680; 钉钉斜杠“/”开启邀请测试&#xff0c;AI全面智能化助力企业生产 摘要&#xff1a;钉钉斜杠“/”邀请测试开启&#xff0c;应用于文档、群聊、视频会议、应用开发等场景&#xff0c;为企业用户提供多项AI智能能力&#xff0c;如创作、汇…

【AUTOSAR】Com通讯栈配置说明(五)---- ComM模块

ComM模块 ComMConfigSet ComMChannels ComMBusType&#xff1a;定义总线类型 ComMChannelId&#xff1a;通道号 ComMFullCommRequestNotificationEnabled&#xff1a;未使用 ComMComMGlobalNvmBlockDescriptor&#xff1a;未使用 ComMMainFunctionPeriod&#xff1a;ComM的…

【云原生•监控】mtail轻量日志监控系统

【云原生•监控】mtail轻量日志监控系统 前言 「笔者已经在公有云上搭建了一套临时环境&#xff0c;可以先登录体验下&#xff1a;」 http://124.222.45.207:17000/login 账号&#xff1a;root/root.2020 简介 「可观测性平台三大支柱&#xff1a;日志监控、调用链监控和度量指…

2023年05月小结

5月一晃即将过去&#xff0c;先看看5月份都写了哪些文章&#xff1a; 往期推荐 国内手机号如何注册Google账号 Python中的布尔类型以及布尔值介绍 Python中深拷贝与浅拷贝介绍 Python中的集合介绍 Python中的字典学习笔记 Python学习历程-元组的基本操作回顾 记录我的Python学习…

初学prometheus监控(一)

初学prometheus监控(一) 1、promethues 介绍 1.1 监控的分类 监控重要性由高到低 业务监控&#xff1a;公司领导比较关心的指标&#xff0c;如电商平台的订单数量&#xff0c;用户的日活等系统监控&#xff1a;主要是跟操作系统相关的基本监控项&#xff0c;比如CPU,内存&#…

ChatGPT能解决信息抽取吗?一份关于性能、评估标准、鲁棒性和错误的分析

深度学习自然语言处理 原创作者&#xff1a;qazw 信息抽取(IE)旨在从非结构化文本中抽取出结构化信息&#xff0c;该结果可以直接影响很多下游子任务&#xff0c;比如问答和知识图谱构建。因此&#xff0c;探索ChatGPT的信息抽取能力在一定程度上能反映出ChatGPT生成回复时对任…

Office project 2019安装

哈喽&#xff0c;大家好。今天一起学习的是project 2019的安装&#xff0c;Microsoft Office project项目管理工具软件&#xff0c;凝集了许多成熟的项目管理现代理论和方法&#xff0c;可以帮助项目管理者实现时间、资源、成本计划、控制。有兴趣的小伙伴也可以来一起试试手。…

英伟达股票大涨,对应 GPU 产品有哪些型号?

英伟达&#xff08;NVIDIA&#xff09;是一家知名的 GPU&#xff08;图形处理器&#xff09;制造商&#xff0c;其 GPU 产品线非常丰富&#xff0c;涵盖了从消费级到专业级的各种型号。 最近英伟达股票大涨&#xff0c;高端 GPU 供不应求&#xff0c;搞大模型的团队都要疯狂进货…

机器学习入门基础:机器学习实践

目录 7.1 数据集划分 7.1.1 训练集、验证集和测试集划分7.1.2 交叉验证7.1.3 不平衡数据处理7.2 评价指标 7.2.1 回归的评价指标7.2.2 分类的评价指标7.2.3 评价指标案例7.3 正则化、偏差和方差 7.3.1 欠拟合和过拟合7.3.2 正则化7.3.3 偏差和方差参考文献 7.1 数据集划分 7.1…

通过python采集1688app商品详情数据,1688app商品详情数据接口,1688API接口

要通过Python采集1688app商品详情数据&#xff0c;你可以使用以下步骤&#xff1a; 安装必要的 Python 模块&#xff1a;requests, BeautifulSoup4 和 lxml。使用 requests 模块发送 HTTP 请求获取网站 HTML 内容。使用 BeautifulSoup4 模块解析 HTML 页面并提取所需的数据。编…

主路由设置静态路由后,能ping通,但无法访问网页服务和ssh等

主路由设置静态路由后&#xff0c;能ping通&#xff0c;但无法访问网页服务和ssh等 静态路由 主路由是istoreos软路由&#xff0c; AP使用华为AX3路由器做ap和wifi&#xff0c; 二级路由使用蒲公英路由X5 前置条件&#xff1a;已在主路由设置静态路由 静态路由 问 主路由设置静…

项目管理新手常见误区揭秘~

点击上方 "JavaEdge"关注, 星标或置顶一起成长 后台回复“面试”有惊喜礼包&#xff01; 这是一个纷杂而无规则的世界&#xff0c;越想忘掉的事情&#xff0c;越难忘记。 如何完成新手项目经理的角色转换呢&#xff1f; 成为项目经理前&#xff0c;我做了四五年的“码…

一起看 I/O | Jetpack 新功能一览

作者 / Android 产品经理 Amanda Alexander Android Jetpack 是现代 Android 开发 (Modern Android Development) 的关键组成支柱。Android Jetpack 套件包含超 100 个库、工具及指南&#xff0c;可帮助开发者遵循最佳实践、减少样板代码&#xff0c;并编写可在各种 Android 版…

chatgpt赋能python:Python修改配置文件:实现自动配置与简化运维

Python修改配置文件&#xff1a;实现自动配置与简化运维 介绍 配置文件是软件开发中不可缺少的一部分&#xff0c;它不仅包含应用程序的基本设置&#xff0c;还提供了一种简单的方式来管理这些设置。如何有效地修改配置文件已经成为了每个开发者必备的技能之一&#xff0c;而…

这8个NumPy函数可以解决90%的常见问题

NumPy是一个用于科学计算和数据分析的Python库&#xff0c;也是机器学习的支柱。可以说NumPy奠定了Python在机器学习中的地位。NumPy提供了一个强大的多维数组对象&#xff0c;以及广泛的数学函数&#xff0c;可以对大型数据集进行有效的操作。这里的“大”是指数百万行。 Nump…