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

news2024/11/26 16:54:29

目录

  • 引出
  • 用Maven建项目
    • 0.Maven配置方式
    • 1.io流的工具IOUtils/FileUtils
      • 1)可以读文件、按照行读、读网页等;
      • 2)配合hasmap进行简体繁体转换
    • 2.durid数据库连接工具
      • 1)创建连接,durid进行连接管理
      • 2)查询的方式queryForObject、query,queryForRowSet
  • 案例:把电话号码导入到数据库
    • 0.pom.xml配置
    • 1.读取文件存到数据库
    • 2.DBUtils
    • 3.Dao层的代码【查单个/多个,统计数量】
    • 4.实体类
    • 5.进行测试
  • 总结

引出

如何用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/598540.html

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

相关文章

chatgpt赋能python:Python中的转置函数-一种简单而高效的矩阵操作

Python中的转置函数 - 一种简单而高效的矩阵操作 作为一名10年的Python编程经验工程师&#xff0c;掌握利用Python进行矩阵操作是必不可少的。Python中提供了各种高效的矩阵操作功能&#xff0c;其中之一就是转置函数。 什么是转置&#xff1f; 在数学中&#xff0c;矩阵转置…

追寻幸福:探索幸福的关键特征和行为

目录 1. 积极的心态 2. 良好的人际关系 3. 自我接纳和自尊 4. 追求意义和目标 5. 健康的身心状态 6. 感知和实现个人价值 幸福是一个主观的感受&#xff0c;因此不同的人对于幸福的定义和追求方式可能会有所不同。然而&#xff0c;有一些共同的特点和行为模式&#xff0c…

【数据结构】难度上一个台阶的二叉树实现

【数据结构】难度上一个台阶的二叉树实现 一、什么是树和二叉树&#xff1f;二、目标三、实现3.1、初始化工作3.2、二叉树的前序遍历3.2.1、原理图解3.2.2、代码实现 3.3、二叉树的创建3.3.1、原理解析3.3.2、代码实现 3.4、二叉树的中序遍历3.5、二叉树的后序遍历3.6、二叉树的…

K8S系列文章之快速入门K8S

搭建K8S环境 前置 目前生产部署Kubernetes 集群主要有两种方式&#xff1a; kubeadm Kubeadm 是一个K8s 部署工具&#xff0c;提供kubeadm init 和kubeadm join&#xff0c;用于快速部署Kubernetes 集群。 官方地址&#xff1a;https://kubernetes.io/docs/reference/setu…

ChatGPT出来后,为什么老有人想让我们程序员失业?

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;2022年度博客之星前端领域TOP 2&#xff0c;前端领域优质作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步…

【LeetCode每日一题】——1248.统计「优美子数组」

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 滑动窗口 二【题目难度】 中等 三【题目编号】 1248.统计「优美子数组」 四【题目描述】 给…

NVIDIA NCCL 源码学习(十)- 多机间ncclSend和ncclRecv的过程

先回忆一下单机的执行流程&#xff0c;用户执行ncclSend之后通过ncclEnqueueCheck将sendbuff&#xff0c;sendbytes&#xff0c;peer等信息保存到了comm->p2plist中&#xff1b;然后执行ncclGroupEnd&#xff0c;如果发现channel没有建立到peer的链接则先建链&#xff0c;然…

深入理解设计原则之接口隔离原则(ISP)

系列文章目录 C高性能优化编程系列 深入理解设计原则系列 深入理解设计模式系列 高级C并发线程编程 LSP&#xff1a;接口隔离原则 系列文章目录1、接口隔离原则的定义和解读2、案例解读3、如何判断一个接口是否符合接口隔离原则&#xff1f;小结 1、接口隔离原则的定义和解读…

网络工程师一定要会关键技能:如何进行IP子网划分?

对于所有从事IP网络方面工作的工程师来说&#xff0c;进行IP子网划分操作属于一个必备的关键技能&#xff0c;也属于必须掌握的专业内容&#xff1b;但对于初学者来说&#xff0c;真正理解IP子网划分的概念也是一件相当困难的事情。 怎样才能正确地进行子网划分操作 IP子网划…

影响现代办公室隔断设计的因素有哪些,办公室隔断设计方案要求

影响现代办公室隔断设计的因素有哪些 1. 办公空间的用途和功能要求 2. 员工数量及工作场所的布局 3. 设计风格和企业文化要求 4. 预算和材料选择 5. 环保节能和安全性要求 办公室隔断设计方案要求&#xff1a; 1. 合理利用空间&#xff0c;满足办公室的功能需求 2. 设计…

Creepypastsa VoxEdit 竞赛

召唤所有恐怖都市传闻爱好者。 通过 Creepypasta VoxEdit 竞赛&#xff0c;潜入黑暗领域&#xff0c;并释放你们的创造力&#xff01;踏入阴森恐怖的神秘世界&#xff0c;把你最可怕的噩梦变成现实&#xff01; 设计终极的 Creepypasta 体素资产 你是恐怖大师吗&#xff1f;是一…

RHCE 作业三

1.基于域名访问网站 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# systemctl disable firewalld [rootserver ~]# yum install httpd -y [rootserver ~]# systemctl start httpd [rootserver ~]# syst…

npm发包/发布群组过程记录

目录 创建群组 本地发包 1、初始化本地的包到群组 2、 登录npm账号 3、设置公开库 4、发布到npm上 5、升级更新发布 创建群组 打开npm的网站&#xff0c;登录个人账户密码--->点击右侧上方个人的头像--->在下拉框点击【add Organization】 接下来会出现一个添加群…

C语言 打印杨辉三角

杨辉三角的前五行如下&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1、首先我们可以定义定义一个5行5列的二维数组 代码&#xff1a; int main() {int arr[5][5] { 0 };初始化int i 0;int j 0;//循环输出for (i 0; i < 5; i) {for (j 0; j <5; j) {printf("…

华为OD机试之寻找相同子串(Java源码)

寻找相同子串 题目描述 给定一个字符串s&#xff0c;最多只能进行一次变换&#xff0c;返回变换后能得到的最小字符串&#xff08;按照字典序进行比较&#xff09;。 变换规则&#xff1a;交换字符串中任意两个不同位置的字符。 输入描述 一串小写字母组成的字符串s 输出描述 …

华硕天选FA506IU(R7 4600h)电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件配置 硬件型号驱动情况 主板华硕天选FA506IU 处理器AMD Ryzen 7 4600h已驱动 内存8GB DDR4 3200MHz已驱动 硬盘东芝 KXG5AZNV256G Windows 10已驱动 显卡集成显卡…

基于MapReduce的京东20年口红数据的分析与实现

基于MapReduce的京东20年口红数据的分析与实现 文章目录 基于MapReduce的京东20年口红数据的分析与实现一、前言二、数据可视化1、安装Python和Flask框架2、创建Flask应用程序3、创建基于Echarts的网页展示代码4、最终结果 三、最后我想说 一、前言 这是一个利用HadoopMapRedu…

Java设计模式(二)

系列文章目录 里氏替换原则 开闭原则 文章目录 系列文章目录前言一、里氏替换原则1.OO中的继承性的思考和说明2.里氏替换原则基本介绍 二、开闭原则1.开闭原则基本介绍 总结 前言 大家好呀&#xff0c;欢迎来到柚子的博客~让我们一起成长吧o(&#xffe3;▽&#xffe3;)ブ 提…

二、浏览器广告屏蔽插件_Adblock Plus

1、浏览器广告 在浏览器浏览内容时&#xff0c;有广告无可厚非&#xff0c;但有些网页做的太过分了。如广告影响了正常网页的浏览&#xff1b;广告内容低俗恶心。特推荐以下浏览器广告屏蔽插件。 2、浏览器广告屏蔽插件 2.1、Adblock Plus 简介 (1)这里推荐Adblock Plus插件…

有哪些代码调试工具推荐? - 易智编译EaseEditing

下面是一些常用的代码调试工具&#xff0c;它们可以帮助开发人员识别和解决代码中的问题&#xff1a; 调试器(Debugger)&#xff1a; 调试器是一种强大的工具&#xff0c;用于在代码执行过程中逐行执行和检查代码。它允许您设置断点、观察变量的值、跟踪函数调用和返回等。 …