DB2 JDBC连接详解(附DEMO~超详细)

news2024/12/24 20:37:57

DB2 JDBC连接详解

  • DB2 JDBC连接详解
    • 摘要
    • 引言
    • 正文
      • 1. JDBC基础
      • 2. 配置DB2JDBC连接
        • 2.1 DB2连接JDBC
        • 2.2 DB2连接JDBC是否成功
        • 2.3 DB2连接JDBC获取表信息注释等
        • 2.4 DB2连接JDBC根据表名获取字段信息注释等
        • 2.5 执行 SQL 查询
        • 2.6 执行 SQL 查询
        • 2.7 插入数据
        • 2.8 执行存储过程
        • 2.9 批处理操作
        • 2.10 事务管理
        • 2.11 元数据查询
      • 3. 性能优化
        • 1. 批量操作:
        • 2. 连接池配置:
        • 3. 查询优化:
        • 4. PreparedStatement:
        • 5. 适当的连接超时和查询超时设置:
        • 6. 数据库连接的合理使用和关闭:
      • 4. 常见问题和解决方法
        • 1. 连接超时问题:
        • 2. 连接泄漏问题:
        • 3. 驱动程序加载问题:
        • 4. 数据库连接池问题:
        • 5. 数据库访问权限问题:
        • 6. 查询性能问题:
        • 7. 数据库版本问题:
    • 总结
    • 参考资料

在这里插入图片描述
在这里插入图片描述

博主 默语带您 Go to New World.
个人主页—— 默语 的博客👦🏻
《java 面试题大全》
🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭
《MYSQL从入门到精通》数据库是开发者必会基础之一~
🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!💻⌨

DB2 JDBC连接详解

摘要

在这篇博客中,作为一名默语博主,我将详细探讨如何通过Java Database Connectivity(JDBC)与IBM Db2数据库建立连接。我们将深入研究JDBC连接的各个方面,包括配置、性能优化和常见问题的解决方法。无论您是初学者还是有经验的开发者,都将从本文中获得有关DB2 JDBC连接的宝贵信息。

引言

数据库连接是任何与数据库交互的应用程序的关键组成部分。IBM Db2是一款强大的关系型数据库管理系统,而JDBC是Java平台上与数据库交互的标准方式。本文将引导您深入了解如何使用JDBC连接到IBM Db2数据库,从而使您的应用程序能够有效地访问和操作数据。

正文

在这里插入图片描述

1. JDBC基础

在开始讲解DB2 JDBC连接之前,我们需要先了解一些JDBC的基础知识。我们将介绍JDBC的工作原理,以及如何配置和管理JDBC驱动程序。

2. 配置DB2JDBC连接

2.1 DB2连接JDBC

这一部分将详细介绍如何配置您的Java应用程序以与IBM Db2建立连接。我们将讨论连接字符串、认证、连接池等关键概念,并提供示例代码以帮助您快速开始。

// 示例代码:建立DB2 JDBC连接
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Db2ConnectionExample {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:db2://localhost:50000/mydb";
        String username = "your_username";
        String password = "your_password";
        
        try {
            Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
            // 连接已建立,可以执行数据库操作
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

2.2 DB2连接JDBC是否成功

以下是一个用于测试DB2 JDBC连接是否成功的简单Java代码示例:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DB2ConnectionTest {
    public static void main(String[] args) {
        // JDBC连接参数
        String jdbcUrl = "jdbc:db2://hostname:port/database";
        String user = "your_username";
        String password = "your_password";

        // 连接到数据库
        Connection connection = null;
        try {
            // 加载DB2 JDBC驱动程序
            Class.forName("com.ibm.db2.jcc.DB2Driver");

            // 创建连接
            connection = DriverManager.getConnection(jdbcUrl, user, password);

            // 如果连接成功,打印成功信息
            if (connection != null) {
                System.out.println("DB2 JDBC连接成功!");
            } else {
                System.out.println("DB2 JDBC连接失败!");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("DB2 JDBC连接失败!");
        } finally {
            // 关闭数据库连接
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

请确保将以下值替换为实际的数据库连接信息:

  • jdbcUrl:DB2数据库的JDBC连接URL,包括主机名、端口和数据库名称。
  • user:数据库用户名。
  • password:数据库密码。

运行这个程序后,它将尝试连接到DB2数据库,并在成功或失败时打印相应的消息。如果连接成功,你将看到 “DB2 JDBC连接成功!” 的消息。如果连接失败,将会显示 “DB2 JDBC连接失败!” 的消息以及有关连接失败的详细信息。

2.3 DB2连接JDBC获取表信息注释等

要获取DB2数据库中表的信息,你可以使用JDBC来查询数据库的系统表或视图,例如 SYSCAT.TABLES,以获取有关表的信息,包括表的名称、注释等。以下是一个Java示例代码,演示如何连接到DB2数据库并获取表信息和注释:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DB2TableInfo {
    public static void main(String[] args) {
        // JDBC连接参数
        String jdbcUrl = "jdbc:db2://hostname:port/database";
        String user = "your_username";
        String password = "your_password";

        // 连接到数据库
        Connection connection = null;
        try {
            // 加载DB2 JDBC驱动程序
            Class.forName("com.ibm.db2.jcc.DB2Driver");

            // 创建连接
            connection = DriverManager.getConnection(jdbcUrl, user, password);

            // 查询表信息和注释
            String sql = "SELECT TABNAME, REMARKS FROM SYSCAT.TABLES WHERE TABSCHEMA = ?";

            // 指定表所在的模式(schema),例如:"MYSCHEMA"
            String schema = "MYSCHEMA";

            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, schema);
            
            ResultSet resultSet = preparedStatement.executeQuery();
            
            // 处理查询结果
            while (resultSet.next()) {
                String tableName = resultSet.getString("TABNAME");
                String tableComment = resultSet.getString("REMARKS");

                System.out.println("Table Name: " + tableName);
                System.out.println("Table Comment: " + tableComment);
            }
            
            // 关闭资源
            resultSet.close();
            preparedStatement.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭数据库连接
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

在这个示例中,我们查询了 SYSCAT.TABLES 系统表,以获取指定模式下的表信息和表注释。请确保将以下值替换为实际的数据库连接信息和模式名称:

  • jdbcUrl:DB2数据库的JDBC连接URL,包括主机名、端口和数据库名称。
  • user:数据库用户名。
  • password:数据库密码。
  • schema:要查询的模式名称。

运行这个程序后,它将连接到DB2数据库并打印出表的名称和注释信息。这可以帮助你获取有关表结构的基本信息。如果需要其他表信息,你可以查询其他系统表或视图来获取更多详细信息。

2.4 DB2连接JDBC根据表名获取字段信息注释等

要根据表名获取DB2数据库中表的字段信息以及注释,你可以使用JDBC来查询数据库的系统表或视图,例如 SYSCAT.COLUMNS,以获取有关字段的信息,包括字段名、数据类型、注释等。以下是一个Java示例代码,演示如何连接到DB2数据库并获取指定表的字段信息和注释:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DB2TableColumnInfo {
    public static void main(String[] args) {
        // JDBC连接参数
        String jdbcUrl = "jdbc:db2://hostname:port/database";
        String user = "your_username";
        String password = "your_password";

        // 连接到数据库
        Connection connection = null;
        try {
            // 加载DB2 JDBC驱动程序
            Class.forName("com.ibm.db2.jcc.DB2Driver");

            // 创建连接
            connection = DriverManager.getConnection(jdbcUrl, user, password);

            // 查询表字段信息和注释
            String sql = "SELECT COLNAME, TYPENAME, LENGTH, REMARKS " +
                         "FROM SYSCAT.COLUMNS " +
                         "WHERE TABSCHEMA = ? AND TABNAME = ?";

            // 指定要查询的模式(schema)和表名
            String schema = "MYSCHEMA"; // 替换为你的模式名
            String tableName = "MYTABLE"; // 替换为你的表名

            // 创建PreparedStatement来执行SQL查询
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, schema); // 设置模式参数
            preparedStatement.setString(2, tableName); // 设置表名参数
            
            // 执行查询并获取结果集
            ResultSet resultSet = preparedStatement.executeQuery();
            
            // 处理查询结果
            while (resultSet.next()) {
                // 从结果集中获取字段信息
                String columnName = resultSet.getString("COLNAME");
                String columnType = resultSet.getString("TYPENAME");
                int columnLength = resultSet.getInt("LENGTH");
                String columnComment = resultSet.getString("REMARKS");

                // 打印字段信息和注释
                System.out.println("Column Name: " + columnName);
                System.out.println("Column Type: " + columnType);
                System.out.println("Column Length: " + columnLength);
                System.out.println("Column Comment: " + columnComment);
            }
            
            // 关闭资源
            resultSet.close();
            preparedStatement.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 关闭数据库连接
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

在这个示例中,我们查询了 SYSCAT.COLUMNS 系统表,以获取指定模式和表名下的字段信息和注释。请确保将以下值替换为实际的数据库连接信息、模式名称和表名:

  • jdbcUrl:DB2数据库的JDBC连接URL,包括主机名、端口和数据库名称。
  • user:数据库用户名。
  • password:数据库密码。
  • schema:要查询的模式名称。
  • tableName:要查询的表名。

运行这个程序后,它将连接到DB2数据库并打印出指定表的字段信息,包括字段名、数据类型、长度和注释等信息。这可以帮助你获取有关表结构的详细信息。如果需要其他表信息,你可以查询其他系统表或视图来获取更多信息。

2.5 执行 SQL 查询

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DB2SQLQuery {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:db2://hostname:port/database";
        String user = "your_username";
        String password = "your_password";

        try {
            Class.forName("com.ibm.db2.jcc.DB2Driver");
            Connection connection = DriverManager.getConnection(jdbcUrl, user, password);

            Statement statement = connection.createStatement();
            String sql = "SELECT * FROM your_table";
            ResultSet resultSet = statement.executeQuery(sql);

            while (resultSet.next()) {
                // 处理查询结果
            }

            resultSet.close();
            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这个示例演示如何使用 DB2 JDBC 连接到数据库并执行 SQL 查询。

  • jdbcUrluserpassword 分别是数据库连接的URL、用户名和密码。你需要将它们替换为你的实际数据库连接信息。
  • Class.forName("com.ibm.db2.jcc.DB2Driver") 用于加载 DB2 JDBC 驱动程序。
  • DriverManager.getConnection(jdbcUrl, user, password) 用于建立数据库连接。
  • Statement 对象用于执行 SQL 查询。
  • executeQuery(sql) 执行 SQL 查询并返回结果集 ResultSet
  • while (resultSet.next()) 循环遍历结果集中的每一行。
  • 在循环内部,你可以使用 resultSet 获取查询结果的数据,并进行进一步的处理。
  • 最后,需要关闭连接、语句和结果集以释放资源。

2.6 执行 SQL 查询

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class DB2SQLUpdate {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:db2://hostname:port/database";
        String user = "your_username";
        String password = "your_password";

        try {
            Class.forName("com.ibm.db2.jcc.DB2Driver");
            Connection connection = DriverManager.getConnection(jdbcUrl, user, password);

            Statement statement = connection.createStatement();
            String sql = "UPDATE your_table SET column1 = 'new_value' WHERE condition";
            int rowsUpdated = statement.executeUpdate(sql);

            // 处理更新结果
            System.out.println("Rows updated: " + rowsUpdated);

            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这个示例演示如何使用 DB2 JDBC 连接到数据库并执行 SQL 更新操作。

  • 类似于查询示例,首先配置连接参数和加载 JDBC 驱动程序。
  • executeUpdate(sql) 用于执行 SQL 更新操作,并返回受影响的行数。
  • 你可以根据需要修改 SQL 语句,然后检查更新操作的结果。
  • 最后,需要关闭连接和语句以释放资源。

2.7 插入数据

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class DB2InsertData {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:db2://hostname:port/database";
        String user = "your_username";
        String password = "your_password";

        try {
            Class.forName("com.ibm.db2.jcc.DB2Driver");
            Connection connection = DriverManager.getConnection(jdbcUrl, user, password);

            String sql = "INSERT INTO your_table (column1, column2) VALUES (?, ?)";
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, "value1");
            preparedStatement.setInt(2, 123);
            int rowsInserted = preparedStatement.executeUpdate();

            // 处理插入结果
            System.out.println("Rows inserted: " + rowsInserted);

            preparedStatement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这个示例演示如何使用 DB2 JDBC 连接到数据库并执行数据插入操作。

  • 类似于查询示例,首先配置连接参数和加载 JDBC 驱动程序。
  • INSERT INTO your_table (column1, column2) VALUES (?, ?) 是插入数据的 SQL 语句,其中 your_table 是目标表名,column1column2 是表的列名。
  • PreparedStatement 对象用于执行带有占位符的 SQL 语句,并通过 setStringsetInt 方法设置占位符的值。
  • executeUpdate() 执行 SQL 插入操作并返回受影响的行数,通常为 1,表示成功插入一行数据。
  • 你可以根据需要修改 SQL 语句和占位符的值。
  • 最后,需要关闭连接和预处理语句以释放资源。

这些示例代码提供了连接到 DB2 数据库并执行常见操作的基本框架。你可以根据自己的需求进行修改和扩展,以满足具体的数据库操作需求。在实际应用中,请确保处理异常和资源释放以保证代码的健壮性和性能。

当使用DB2 JDBC连接到数据库时,除了执行查询、更新和插入操作之外,还有一些其他常用的方法和操作,例如:

2.8 执行存储过程

import java.sql.CallableStatement;
// ...
String sql = "{CALL your_stored_procedure(?, ?)}";
CallableStatement callableStatement = connection.prepareCall(sql);
callableStatement.setString(1, "parameter1");
callableStatement.setInt(2, 123);
callableStatement.execute();
// ...

这个示例演示如何执行存储过程。你需要提供存储过程的名称和参数,然后使用 CallableStatement 来执行它。

2.9 批处理操作

import java.sql.PreparedStatement;
// ...
String sql = "INSERT INTO your_table (column1, column2) VALUES (?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);

for (int i = 0; i < 10; i++) {
    preparedStatement.setString(1, "value" + i);
    preparedStatement.setInt(2, i);
    preparedStatement.addBatch();
}

int[] results = preparedStatement.executeBatch();
// ...

这个示例演示了如何使用批处理操作一次性执行多个SQL语句,例如批量插入多行数据。这可以提高性能。

2.10 事务管理

try {
    connection.setAutoCommit(false); // 关闭自动提交
    // 执行一系列的SQL操作
    connection.commit(); // 提交事务
} catch (SQLException e) {
    connection.rollback(); // 回滚事务
    e.printStackTrace();
} finally {
    connection.setAutoCommit(true); // 恢复自动提交
}

你可以使用事务管理来确保一系列SQL操作要么全部成功提交,要么全部回滚。上述示例演示了如何手动控制事务。

2.11 元数据查询

import java.sql.DatabaseMetaData;
// ...
DatabaseMetaData metaData = connection.getMetaData();
ResultSet tables = metaData.getTables(null, "MYSCHEMA", null, new String[] { "TABLE" });
while (tables.next()) {
    String tableName = tables.getString("TABLE_NAME");
    // 处理表信息
}

使用元数据查询可以获取数据库的元数据信息,如表、列、索引等。上述示例演示了如何获取指定模式下的所有表的信息。

这些是一些常用的DB2 JDBC操作方法和技巧,可以根据具体的需求选择使用。需要根据你的应用程序的要求来决定哪种操作最适合你的情况。

3. 性能优化

了解如何优化DB2 JDBC连接对于确保应用程序的高性能至关重要。我们将分享一些性能优化的最佳实践,包括批量操作、连接池配置和查询优化。


1. 批量操作:

使用批处理操作可以显著提高性能,特别是在需要插入、更新或删除大量数据时。通过将多个SQL操作组合成一个批处理,可以减少与数据库服务器的通信次数。

PreparedStatement preparedStatement = connection.prepareStatement(sql);

for (int i = 0; i < 1000; i++) {
    preparedStatement.setString(1, "value" + i);
    preparedStatement.addBatch();
}

int[] results = preparedStatement.executeBatch();

2. 连接池配置:

使用连接池可以有效地管理数据库连接,减少连接的开销。连接池会维护一组可重用的数据库连接,而不是每次都创建新的连接。常见的连接池库包括Apache DBCP、C3P0和HikariCP。

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:db2://hostname:port/database");
config.setUsername("your_username");
config.setPassword("your_password");

HikariDataSource dataSource = new HikariDataSource(config);

Connection connection = dataSource.getConnection();
// 使用连接
connection.close(); // 将连接放回池中

3. 查询优化:

  • 使用索引:确保你的表上有适当的索引,以加速检索操作。使用数据库分析工具来分析查询性能,并根据需要创建索引。
  • 限制返回的数据量:只检索需要的数据列,而不是检索整个表。使用SELECT语句的WHERE子句来过滤数据。
  • 避免使用SELECT *:明确列出需要的列,而不是使用SELECT *来检索所有列。这可以减少网络带宽和内存的使用。

4. PreparedStatement:

使用PreparedStatement而不是Statement来执行SQL语句,因为它们可以预编译SQL并提供更好的性能和安全性。

PreparedStatement preparedStatement = connection.prepareStatement(sql);

5. 适当的连接超时和查询超时设置:

在连接字符串中设置适当的连接超时和查询超时,以防止无限等待连接或查询完成。

String jdbcUrl = "jdbc:db2://hostname:port/database;connectTimeout=5000;queryTimeout=30;";

6. 数据库连接的合理使用和关闭:

确保在使用完数据库连接后关闭连接,以释放资源。使用try-with-resources块或finally来确保关闭连接,即使发生异常也能正确关闭。

try (Connection connection = DriverManager.getConnection(jdbcUrl, user, password)) {
    // 使用连接
} catch (SQLException e) {
    e.printStackTrace();
}

这些性能优化的最佳实践可以帮助你提高DB2 JDBC连接的性能,确保应用程序在与数据库的交互中运行得更高效。根据具体的需求和环境,可能需要进一步调整和优化这些策略。

4. 常见问题和解决方法

在使用DB2 JDBC连接时,可能会遇到各种常见问题,例如连接超时、连接泄漏等。我们将逐一讨论这些问题,并提供解决方法,以便您能够有效地排除故障。


以下是一些常见问题以及解决方法,当使用DB2 JDBC连接时可能会遇到这些问题:

1. 连接超时问题:

问题描述: 连接到DB2数据库时,可能会遇到连接超时的问题,导致无法建立连接。

解决方法:

  • 检查数据库服务器是否运行正常。
  • 确保数据库服务器的主机名、端口号和数据库名称正确。
  • 配置适当的连接超时参数,例如在JDBC连接字符串中使用connectTimeout
  • 确保防火墙和网络设置不会阻止与数据库服务器的通信。

2. 连接泄漏问题:

问题描述: 在应用程序中,数据库连接未正确关闭,导致连接泄漏。

解决方法:

  • 使用try-with-resources块或finally来确保在使用连接后正确关闭连接。
  • 使用连接池来管理数据库连接,以确保连接在不再使用时被释放。
  • 使用代码审查工具或连接池工具来检测潜在的连接泄漏。

3. 驱动程序加载问题:

问题描述: 无法加载DB2 JDBC驱动程序。

解决方法:

  • 确保驱动程序的JAR文件已正确添加到项目的构建路径中。
  • 使用Class.forName来加载驱动程序,例如Class.forName("com.ibm.db2.jcc.DB2Driver")
  • 确保JAR文件中的驱动程序类路径正确。

4. 数据库连接池问题:

问题描述: 连接池配置不正确,导致连接不稳定或无法正常工作。

解决方法:

  • 仔细阅读连接池库的文档,了解如何正确配置连接池。
  • 确保连接池的最大连接数和其他参数适当地设置。
  • 定期检查连接池的健康状态并监控连接的使用情况。

5. 数据库访问权限问题:

问题描述: 由于缺乏数据库访问权限,无法执行特定的SQL操作。

解决方法:

  • 检查数据库用户的权限,确保用户具有执行所需操作的权限。
  • 确保连接的用户名和密码正确。
  • 使用数据库的访问控制功能来配置访问权限。

6. 查询性能问题:

问题描述: 查询性能较差,导致响应时间慢。

解决方法:

  • 使用数据库性能分析工具来分析查询计划并进行优化。
  • 确保表上有适当的索引。
  • 避免不必要的SELECT *语句,只检索需要的列。
  • 使用PreparedStatement而不是Statement以提高性能和安全性。

7. 数据库版本问题:

问题描述: 使用的DB2数据库版本与JDBC驱动程序不兼容。

解决方法:

  • 确保使用的DB2 JDBC驱动程序版本与你的DB2数据库版本兼容。
  • 升级驱动程序或数据库以解决兼容性问题。

解决这些问题通常需要仔细的故障排除和调试。你可以根据具体的问题描述和错误消息来采取相应的措施,或者查阅相关文档以获取更多信息。如果问题持续存在,你还可以考虑与DB2数据库供应商或社区寻求帮助。

总结

本文中,我们深入探讨了DB2 JDBC连接的各个方面,从基础知识到高级性能优化和故障排除。通过正确配置和管理DB2 JDBC连接,您可以确保您的应用程序能够以高效、可靠的方式与IBM Db2数据库进行交互。无论您是新手还是有经验的开发者,都可以从本文中获得有关DB2 JDBC连接的宝贵知识。

参考资料

  • IBM Db2官方文档
  • Oracle JDBC文档

希望这篇博客对您有所帮助,并为您在使用DB2 JDBC连接时提供了有用的指导和技巧。如果您有任何问题或需要进一步的帮助,请随时联系我。感谢您阅读本文!

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进📓;(联系微信:Solitudemind )

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

在这里插入图片描述

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

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

相关文章

Vue3 封装 element-plus 图标选择器

一、实现效果 二、实现步骤 2.1. 全局注册 icon 组件 // main.ts import App from ./App.vue; import { createApp } from vue; import * as ElementPlusIconsVue from element-plus/icons-vueconst app createApp(App);// 全局挂载和注册 element-plus 的所有 icon app.con…

Android平台下奔溃Crash和无响应ANR日志抓取分析

一、使用AndroidStudio 在logcat中查看实时日志&#xff0c;需要选择连接的手机和应用包名 AS下载链接 二、使用adb shell dumpsys dropbox命令获取 #!/bin/bash # path"/data/system/dropbox" # 在手机这个目录下存储了崩溃日志 newest_time$(adb shell dumps…

JK405R-SOP16录音芯片ic方案的测试板使用说明以及咪头如何选择

目录 2.1芯片硬件说明 注意事项 1、供电最高5.2V&#xff0c;最低2.6V。芯片的11脚是唯一的电源输入&#xff0c;供电电压越低扬声器声音越小 2、注意音频地和数字地要在供电的入口处短接 3、USB引脚一定要留出测试&#xff0c;也可以升级固件 4、10脚为芯片输出的3.3V&am…

旭雅阁私人博物馆 钱币博物馆

一、旭雅阁博物馆简介 旭雅阁博物馆&#xff0c;成立于2018年&#xff0c;是一家以古钱币、老钱币、字画等为主的专题博物馆&#xff0c;主要从事钱币的收藏、研究和展示&#xff0c;肩负有指导和推动钱币收藏、研究及宣传钱币文化的任务。旭雅阁博物馆&#xff0c;坐落于湖南…

个人博客网站一揽子:Docker建站(Nginx、Wordpress、MySql)

前言 既然安装了Docker&#xff0c;那就不妨建立一个自己的博客网站。实现内外网隔离网站部署&#xff0c;更安全。 1.创建Docker子网络 首先创建一个Docker虚拟子网&#xff1a; sudo docker network create wpnt检查是否建立成功&#xff1a; sudo docker network ls最后…

PyTorch实战:实现MNIST手写数字识别

前言 PyTorch可以说是三大主流框架中最适合初学者学习的了&#xff0c;相较于其他主流框架&#xff0c;PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是&#xff0c;框架可以类比为编程语言&#xff0c;仅为我们实现项目效果的工具&#xff0c;也就是我们…

AI绘图提示词Stable Diffusion Prompt 笔记

基础 提示词分为正向提示词&#xff08;positive prompt&#xff09;和反向提示词&#xff08;negative prompt&#xff09;&#xff0c;用来告诉AI哪些需要&#xff0c;哪些不需要词缀的权重默认值都是1&#xff0c;从左到右依次减弱&#xff0c;权重会影响画面生成结果。AI …

登录认证方式汇总,例如ThreadLocal+拦截器+Redis、JWT

登录方式汇总 先讲讲传统的登录方式 1.Cookie方案 用cookie作为媒介存放用户凭证。 用户登录系统之后&#xff0c;会返回一个加密的cookie&#xff0c;当用户访问子应用的时候会带上这个cookie&#xff0c;授权以解密cookie并进行校验&#xff0c;校验通过后即可登录当前用…

基于Java的高校竞赛管理系统设计与实现(亮点:发起比赛、报名、审核、评委打分、获奖排名,可随意更换主题如蓝桥杯、ACM、王者荣耀、吃鸡等竞赛)

高校竞赛管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述4.2 系统角色 五、系统…

linux常用命令(1):zip/unzip命令(压缩文件/解压缩文件)

文章目录 前言一、linux安装zip文件二、zip语法2.1、常用选项实例2.1.1、-r &#xff08;压缩文件夹&#xff0c;解决80%的场景&#xff09;2.1.2、-q2.1.3、-d&#xff08;从压缩文件中删除指定文件&#xff09;2.1.4、-u&#xff08;更新文件&#xff09;2.1.5、-f2.1.6、-m2…

leetcode1797. 设计一个验证系统(java)

设计一个验证系统 题目描述哈希表题目描述 题目描述 难度 - 中等 leetcode1797. 设计一个验证系统 你需要设计一个包含验证码的验证系统。每一次验证中&#xff0c;用户会收到一个新的验证码&#xff0c;这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新…

XGBoost算法讲解和公式推导

本文节选自《机器学习入门基础&#xff08;微课版&#xff09;》 10.5 XGBoost 算法 XGBoost 是 2014 年 2 月由华盛顿大学的博士生陈天奇发明的基于梯度提升算法(GBDT)的机器学习算法&#xff0c;其算法不但具有优良的学习效果&#xff0c;而且训练速度高效&#xff0c;在数据…

Linux下的系统编程——线程同步(十三)

前言&#xff1a; 在多线程编程中&#xff0c;如果多个线程同时访问和修改共享资源&#xff0c;可能会产生竞争条件和数据不一致的问题。同步机制用于协调线程之间的访问和操作&#xff0c;确保数据的正确性和一致性。为了避免多个线程同时访问和操作共享资源导致的问题&#…

小程序键盘没有【小数点】输入

<input v-model"formData.number" :auto-height"true" placeholder"请输入" confirm-type"done" type"digit" maxlength"11" input"inputNumber" />number&#xff1a;数字键盘&#xff08;没有小…

Minitab Express for Mac(数据分析软件)附破解补丁 v1.5.0 支持M1

Minitab Express是一款专为Mac用户设计的数据分析和统计软件。它提供了一套全面的工具和功能&#xff0c;用于分析数据、执行统计计算和生成可视化。 下载&#xff1a;Minitab Express for Mac(数据分析软件)附破解补丁 以下是 Minitab Express for Mac 的一些主要功能&#x…

随机森林案例分析

阅读随机森林模型前&#xff0c;建议首先阅读决策树模型手册&#xff08;点击后跳到决策树模型的帮助手册页面&#xff09;&#xff0c;因为随机森林模型实质上是多个决策树模型的综合&#xff0c;决策树模型只构建一棵分类树&#xff0c;但是随机森林模型构建非常多棵决策树&a…

数字虚拟人制作简明指南

如何在线创建虚拟人&#xff1f; 虚拟人&#xff0c;也称为数字化身、虚拟助理或虚拟代理&#xff0c;是一种可以通过各种在线平台与用户进行逼真交互的人工智能人。 在线创建虚拟人变得越来越流行&#xff0c;因为它为个人和企业带来了许多好处。 推荐&#xff1a;用 NSDT编辑…

阿里云无影云电脑和传统PC有什么区别?

阿里云无影云电脑和传统电脑PC有什么区别&#xff1f;区别大了&#xff0c;无影云电脑是云端的桌面服务&#xff0c;传统PC是本地的硬件计算机&#xff0c;无影云电脑的数据是保存在云端&#xff0c;本地传统PC的数据是保存在本地客户端&#xff0c;阿里云百科分享阿里云无影云…

低代码与低代码平台

随着数字化转型和软件需求的不断增长&#xff0c;传统的手写代码开发方式已经无法满足迅速推出应用程序的需求。为了加快软件开发的速度并降低技术门槛&#xff0c;低代码开发模式应运而生。本文将介绍低代码的概念&#xff0c;探讨什么是低代码、什么是低代码平台&#xff1f;…

RFID设备在自动化堆场中的管理应用

随着信息技术的高速发展&#xff0c;带动了港口生产和管理技术的长足进步&#xff0c;港口堆场内的自动化场桥的智能化水平成为码头提高生产率一个重要标签。各地海关着力于现代化科技手段&#xff0c;努力构筑新型的便捷通关模式&#xff0c;在进出口环节做好管理和服务。 全…