实验七-通过JDBC转移异构数据库中数据

2023-11-04

通过ODBC/JDBC转移异构数据库中数据

实验环境:Windows 10操作系统、MySQL 8.0、SQL Server 2019、eclipse2021-09

实验内容与完成情况:

  • 实验目的

学会配置ODBC/JDBC数据源,熟悉使用ODBC/JDBC来进行数据库应用程序的设计,熟悉通过ODBC/JDBC接口访问异构数据库并对异构数据库进行操作。

  • 实验平台和实验工具

实验平台:2个异构数据库(MySQL 8.0和SQL Server 2019)。

通过JAVA语言编写访问数据库的应用程序。编程工具选用eclipse 2021-09。

  • 实验内容和要求

配置两个不同的数据源,使用ODBC/JDBC编写程序连接两个不同关系数据库管理系统的数据源,对异构数据库中的数据进行互相转移。如,将MySQL数据库的某个表中的数据转移到SQL Server数据库的表,将SQL Server中的数据转移至MySQL数据库。

  • 实验步骤
  1. 配置两个不同的数据库
    • 在MySQL中新建一个test7数据库。

    • 在SQL server中新建一个test7数据库。

  1. 在eclipse中新建一个java项目

  1. 新建一个JDBC包,用于连接两个数据库。

(1)JDBC连接SQL Server

    • 新建一个用于连接SQL Server的类

下载好的这三个jar包都行,如果选择高版本的会报错,可以换低版本的jar包:

导入jar包到项目:

    • 编写java代码连接SQL server数据库

package JDBC;

import java.sql.*;

public class sql_jdbc {

    public Connection dbConn = null;

    public String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 驱动配置

    public String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=test7;TrustServerCertificate=true;"; // 数据库位置

    public String userName = "sa"; // 数据库用户名

    public String userPwd = "123456"; // 数据库密码

    // 连接数据库

    public void insert() {

        // 导入SQL server驱动

        // 1.加载驱动

        try {

            Class.forName(driverName);

            // 2.建立连接

            dbConn = DriverManager.getConnection(URL, userName, userPwd);

            System.out.println("SQL Server数据库连接成功!");

        } catch (ClassNotFoundException | SQLException e) {

            e.printStackTrace();

            System.out.println("SQL Server数据库连接失败!");

        }

    }

    // 断开数据库

    public void disconnect() {

        try {

            dbConn.close();

            System.out.println("SQL Server数据库关闭成功!");

        } catch (SQLException e) {

            e.printStackTrace();

            System.out.println("SQL Server数据库关闭失败!");

        }

    }

}

(2)JDBC连接MySQL

  • 新建一个用于连接MySQL的类

导入jar包到项目:

  • 编写java代码连接MySQL数据库:

package JDBC;

import java.sql.*;

public class mysql_jdbc {

    public Connection connection = null;

    public String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; // 驱动配置

    public String URL = "jdbc:mysql://localhost:3306/test7?useSSL=false"; // 数据库位置

    public String USER = "root"; // 数据库用户名

    public String PWD = "767701"; // 数据库密码

    // 连接数据库

    public void insert() {

        // 导入MySQL驱动

        // 1.加载驱动

        try {

            Class.forName(JDBC_DRIVER);

            // 2.建立连接

            connection = DriverManager.getConnection(URL, USER, PWD);

            System.out.println("MySQL数据库连接成功!");

        } catch (ClassNotFoundException | SQLException e) {

            System.out.println(e.getLocalizedMessage());

            System.out.println("MySQL数据库连接失败!");

        }

    }

    // 断开数据库

    public void disconnect() {

        try {

            connection.close();

            System.out.println("MySQL数据库关闭成功!");

        } catch (SQLException e) {

            e.printStackTrace();

            System.out.println("MySQL数据库关闭失败!");

        }

    }

}

  1. 将两个数据库建表、插入数据、查看数据等操作用两个类实现。
  1. 对SQL server数据库的操作
    • 新建一个类

    • 编写java代码

package JDBC;

import java.io.*;

import java.sql.*;

public class sql_op {

    public Statement state = null;

    public String[][] result1 = null; // 保存teacher表的结果

    public int row1 = 0;              // teacher表的行数

    public String[][] result2 = null; // 保存student表的结果

    public int row2 = 0;              // student表的行数

    // 连接数据库

    public void set_state(sql_jdbc Database) throws IOException {

        try {

            state = Database.dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 初始化,删除数据库两个表

    public void init() throws IOException {

        try {

            String sql = "DROP TABLE IF EXISTS teacher";

            state.executeUpdate(sql);

            sql = "DROP TABLE IF EXISTS student";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 查询数据库中有哪些表

    public void show_tables() throws IOException {

        try {

            String sql = "SELECT name FROM sys.tables";

            ResultSet rs = state.executeQuery(sql);

            System.out.println("SQL server数据库中的表有:");

            while (rs.next()) {

                System.out.println(rs.getString(1));

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 新建一个教师表

    public void create_teacher_table() throws IOException {

        try {

            String sql = "CREATE TABLE teacher(id INT PRIMARY KEY NOT NULL,name VARCHAR(20) NOT NULL,age INT NOT NULL)";

            state.executeUpdate(sql);

            System.out.println("SQL Server创建教师表成功!");

        } catch (SQLException e) {

            e.printStackTrace();

            System.out.println("SQL Server创建教师表失败!");

        }

    }

    // 向教师表中插入数据

    public void insert_teacher(int id, String name, int age) throws IOException {

        try {

            String sql = "INSERT INTO teacher(id,name,age) VALUES(" + id + ",'" + name + "'," + age + ")";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 删除教师表中的所有数据

    public void delete_teacher() throws IOException {

        try {

            String sql = "DELETE FROM teacher";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

   

    // 查看教师表中的数据并以数组的形式保存每一行的数据

    public void select_teacher() throws IOException {

        try {

            String sql = "SELECT * FROM teacher";

            ResultSet rs = state.executeQuery(sql);

            row1 = 0;

            while (rs.next()) {

                row1++;

            }

            result1 = new String[row1][3];

            rs.beforeFirst();

            int i = 0;

            while (rs.next()) {

                result1[i][0] = rs.getString(1);

                result1[i][1] = rs.getString(2);

                result1[i][2] = rs.getString(3);

                i++;

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 显示教师表中的数据

    public void show_teacher() throws IOException {

        System.out.println("查询到教师表中数据如下:");

        System.out.println("+----------+------------+----------+");

        System.out.println("|    id    |    name    |    age   |");

        System.out.println("+----------+------------+----------+");

        for (int i = 0; i < row1; i++) {

            System.out.printf("|%-10s|%-10s|%-10s|\n", result1[i][0], result1[i][1], result1[i][2]);

        }

        System.out.println("+----------+------------+----------+");

    }

    // 新建一个学生表

    public void create_student_table() throws IOException {

        try {

            String sql = "CREATE TABLE student(id INT PRIMARY KEY NOT NULL,name VARCHAR(20) NOT NULL,age INT NOT NULL)";

            state.executeUpdate(sql);

            System.out.println("SQL Server创建学生表成功!");

        } catch (SQLException e) {

            e.printStackTrace();

            System.out.println("SQL Server创建学生表失败!");

        }

    }

    // 向学生表中插入数据

    public void insert_student(int id, String name, int age) throws IOException {

        try {

            String sql = "INSERT INTO student(id,name,age) VALUES(" + id + ",'" + name + "'," + age + ")";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 删除学生表中的所有数据

    public void delete_student() throws IOException {

        try {

            String sql = "DELETE FROM student";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 查看学生表中的数据并以数组的形式保存每一行的数据

    public void select_student() throws IOException {

        try {

            String sql = "SELECT * FROM student";

            ResultSet rs = state.executeQuery(sql);

            row2 = 0;

            while (rs.next()) {

                row2++;

            }

            result2 = new String[row2][3];

            rs.beforeFirst();

            int i = 0;

            while (rs.next()) {

                result2[i][0] = rs.getString(1);

                result2[i][1] = rs.getString(2);

                result2[i][2] = rs.getString(3);

                i++;

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

   

    // 显示学生表中的数据

    public void show_student() throws IOException {

        System.out.println("查询到学生表中数据如下:");

        System.out.println("+----------+------------+----------+");

        System.out.println("|    id    |    name    |    age   |");

        System.out.println("+----------+------------+----------+");

        for (int i = 0; i < row2; i++) {

            System.out.printf("|%-10s|%-10s|%-10s|\n", result2[i][0], result2[i][1], result2[i][2]);

        }

        System.out.println("+----------+------------+----------+");

    }

}

  1. 对MySQL数据库的操作
  • 新建一个类

  • 编写java代码

package JDBC;

import java.io.*;

import java.sql.*;

public class mysql_op {

    public Statement state = null;

    public String[][] result1 = null; // 保存teacher表的结果

    public int row1 = 0;              // teacher表的行数

    public String[][] result2 = null; // 保存student表的结果

    public int row2 = 0;              // student表的行数

    // 连接数据库

    public void set_state(mysql_jdbc Database) throws IOException {

        try {

            state = Database.connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 初始化,删除数据库两个表

    public void init() throws IOException {

        try {

            String sql = "DROP TABLE IF EXISTS teacher";

            state.executeUpdate(sql);

            sql = "DROP TABLE IF EXISTS student";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 查询数据库中有哪些表

    public void show_tables() throws IOException {

        try {

            String sql = "SHOW TABLES";

            ResultSet rs = state.executeQuery(sql);

            System.out.println("MySQL数据库中的表有:");

            while (rs.next()) {

                System.out.println(rs.getString(1));

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

   

    // 新建一个教师表

    public void create_teacher_table() throws IOException {

        try {

            String sql = "CREATE TABLE teacher(id INT PRIMARY KEY NOT NULL,name VARCHAR(20) NOT NULL,age INT NOT NULL)";

            state.executeUpdate(sql);

            System.out.println("MySQL创建教师表成功!");

        } catch (SQLException e) {

            e.printStackTrace();

            System.out.println("MySQL创建教师表失败!");

        }

    }

    // 向教师表中插入数据

    public void insert_teacher(int id, String name, int age) throws IOException {

        try {

            String sql = "INSERT INTO teacher(id,name,age) VALUES(" + id + ",'" + name + "'," + age + ")";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 删除教师表中的所有数据

    public void delete_teacher() throws IOException {

        try {

            String sql = "DELETE FROM teacher";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

 

    // 查看教师表中的数据并以数组的形式保存每一行的数据

    public String[][] select_teacher() throws IOException {

        try {

            String sql = "SELECT * FROM teacher";

            ResultSet rs = state.executeQuery(sql);

            row1 = 0;

            while (rs.next()) {

                row1++;

            }

            result1 = new String[row1][3];

            rs.beforeFirst();

            int i = 0;

            while (rs.next()) {

                result1[i][0] = rs.getString("id");

                result1[i][1] = rs.getString("name");

                result1[i][2] = rs.getString("age");

                i++;

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return result1;

    }

    // 显示教师表中的数据

    public void show_teacher() throws IOException {

        System.out.println("查询到教师表中数据如下:");

        System.out.println("+----------+------------+----------+");

        System.out.println("|    id    |    name    |    age   |");

        System.out.println("+----------+------------+----------+");

        for (int i = 0; i < row1; i++) {

            System.out.printf("|%-10s|%-10s|%-10s|\n", result1[i][0], result1[i][1], result1[i][2]);

        }

        System.out.println("+----------+------------+----------+");

    }

    // 新建一个学生表

    public void create_student_table() throws IOException {

        try {

            String sql = "CREATE TABLE student(id INT PRIMARY KEY NOT NULL,name VARCHAR(20) NOT NULL,age INT NOT NULL)";

            state.executeUpdate(sql);

            System.out.println("MySQL创建学生表成功!");

        } catch (SQLException e) {

            e.printStackTrace();

            System.out.println("MySQL创建学生表失败!");

        }

    }

    // 向学生表中插入数据

    public void insert_student(int id, String name, int age) throws IOException {

        try {

            String sql = "INSERT INTO student(id,name,age) VALUES(" + id + ",'" + name + "'," + age + ")";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

    // 删除学生表中的所有数据

    public void delete_student() throws IOException {

        try {

            String sql = "DELETE FROM student";

            state.executeUpdate(sql);

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

   

    // 查看学生表中的数据并以数组的形式保存每一行的数据

    public String[][] select_student() throws IOException {

        try {

            String sql = "SELECT * FROM student";

            ResultSet rs = state.executeQuery(sql);

            row2 = 0;

            while (rs.next()) {

                row2++;

            }

            result2 = new String[row2][3];

            rs.beforeFirst();

            int i = 0;

            while (rs.next()) {

                result2[i][0] = rs.getString("id");

                result2[i][1] = rs.getString("name");

                result2[i][2] = rs.getString("age");

                i++;

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return result2;

    }

    // 显示学生表中的数据

    public void show_student() throws IOException {

        System.out.println("查询到学生表中数据如下:");

        System.out.println("+----------+------------+----------+");

        System.out.println("|    id    |    name    |    age   |");

        System.out.println("+----------+------------+----------+");

        for (int i = 0; i < row2; i++) {

            System.out.printf("|%-10s|%-10s|%-10s|\n", result2[i][0], result2[i][1], result2[i][2]);

        }

        System.out.println("+----------+------------+----------+");

    }

}

  1. 新建一个包,实现实验两个数据库间的数据转移的操作:
    • 新建一个main包,并在该包下新建一个main类:

    •  编写java代码:

package main;

import java.io.IOException;

import java.sql.SQLException;

import JDBC.*;

public class main {

    public static void main(String[] args) throws IOException, SQLException {

        // 与库建立连接

        sql_jdbc DB1 = new sql_jdbc();

        mysql_jdbc DB2 = new mysql_jdbc();

        DB1.insert();

        DB2.insert();

        // 初始化数据库,删除数据库两个表再新建表

        sql_op op1 = new sql_op();

        mysql_op op2 = new mysql_op();

        op1.set_state(DB1);

        op1.init();

        op2.set_state(DB2);

        op2.init();

        op1.create_teacher_table();

        op1.create_student_table();

        op2.create_teacher_table();

        op2.create_student_table();

        // sql server数据库表中插入数据

        op1.insert_teacher(1, "张三", 20);

        op1.insert_teacher(2, "李四", 21);

        op1.insert_teacher(3, "王五", 22);

        op1.insert_teacher(4, "赵六", 23);

        op1.insert_teacher(5, "孙七", 24);

        op1.insert_student(1, "学一", 20);

        // mysql数据库表中插入数据

        op2.insert_teacher(1, "张三", 20);

        op2.insert_student(1, "学一", 20);

        op2.insert_student(2, "学二", 21);

        op2.insert_student(3, "学三", 22);

        op2.insert_student(4, "学四", 23);

        op2.insert_student(5, "学五", 24);

        // 第一步、查看两个数据表的表以及表中的数据

        System.out.println("************************************************************");

        System.out.println("第一步、查看两个数据库的表以及表中的数据:");

        op1.show_tables();

        op1.select_teacher();

        op1.show_teacher();

        op1.select_student();

        op1.show_student();

        op2.show_tables();

        op2.select_teacher();

        op2.show_teacher();

        op2.select_student();

        op2.show_student();

        System.out.println("************************************************************");

        // 第二步,将sql server数据库教师表中的数据插入mysql数据库中

        System.out.println("第二步,将sql server数据库教师表中的数据插入mysql数据库中:");

        op2.delete_teacher();

        for (int i = 0;i <op1.row1 ; i++) {

            int a=Integer.parseInt(op1.result1[i][0]);

            int b=Integer.parseInt(op1.result1[i][2]);

            op2.insert_teacher(a,op1.result1[i][1],b);

        }

        System.out.println("数据转移成功!");

        System.out.println("************************************************************");

        // 第三步,将mysql数据库中学生表中的数据插入sql server数据库

        System.out.println("第三步,将mysql数据库中学生表中的数据插入sql server数据库:");

        op1.delete_student();

        for (int i = 0;i <op2.row2 ; i++) {

            int a=Integer.parseInt(op2.result2[i][0]);

            int b=Integer.parseInt(op2.result2[i][2]);

            op1.insert_student(a,op2.result2[i][1],b);

        }

        System.out.println("数据转移成功!");

        System.out.println("************************************************************");

        // 第四步、查看两个数据表的表以及表中的数据,验证是否转移成功

        System.out.println("第四步、查看两个数据库的表以及表中的数据,验证是否转移成功:");

        op1.show_tables();

        op1.select_teacher();

        op1.show_teacher();

        op1.select_student();

        op1.show_student();

        op2.show_tables();

        op2.select_teacher();

        op2.show_teacher();

        op2.select_student();

        op2.show_student();

        System.out.println("************************************************************");

        // 第五步、断开与数据库的连接

        DB1.disconnect();

        DB2.disconnect();

    }

}

  1. 编译结果:
    • 连接并初始化两个数据库:

    • 第一步、查看两个数据库的表以及表中的数据:

    • 第二步,将sql server数据库教师表中的数据插入mysql数据库中:

    • 第三步,将mysql数据库中学生表中的数据插入sql server数据库:

    • 第四步、查看两个数据表的表以及表中的数据,验证是否转移成功:

    • 分别在SQL server数据库和MySQL数据库管理系统上验证结果:

SQL server数据库:

MySQL数据库:

数据库数据转移成功!

出现的问题:

  • 问题一:

com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。

  • 问题二:

驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

解决方案:

  • 问题一:

检查SQL Server 配置的是否为1433端口(注意TCP动态端口由原来的0改为空,禁用动态端口)、以及TCP/IP协议是否启动

  • 问题二:

在URL处加个 trust 参数信任证书 :
TrustServerCertificate=true;

实验心得:

  

通过本次实验,我认识到了JDBC(Java数据库连接)接口功能的强大性,它可以将复杂的SQL语句嵌套在编程函数中。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。即使像MySQL和SQL server,他们的接口并不完全相同,但也可以通过JDBC进行数据库数据转移。

同时,通过本次实验,对Java编程能力和SQL语句编写能力都有所提高。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实验七-通过JDBC转移异构数据库中数据 的相关文章

随机推荐

  • SourceInsight修改暗灰色护眼主题(模仿vscode和sublime text的风格)

    SourceInsight护眼主题 仿vscode和sublime text 一 仿vscode 二 仿sublime text 三 自己动手 丰衣足食 1 载入主题 2 自制或修改主题 一 仿vscode 效果图 主题文件下载链接 htt
  • 配置MQTT

    MQTT 文章目录 MQTT 快速上手 源码安装mosquitto 配置Broker SDK调用接口 Python NodeJs WebJs Java C 快速上手 安装Broker服务 apt install mosquitto mosq
  • 泊松分布与泊松回归模型

    泊松分布 Poisson分布 法语 loi de Poisson 英语 Poisson distribution 译名有泊松分布 普阿松分布 卜瓦松分布 布瓦松分布 布阿松分布 波以松分布 卜氏分配等 是一种统计与概率学里常见到的离散概率分
  • Go 语言面试题(二):实现原理

    文章目录 Q1 init 函数是什么时候执行的 Q2 Go 语言的局部变量分配在栈上还是堆上 Q3 2 个 interface 可以比较吗 Q4 两个 nil 可能不相等吗 Q5 简述 Go 语言GC 垃圾回收 的工作原理 Q6 函数返回局
  • Android RxJava:功能性操作符 全面讲解

    前言 Rxjava 由于其基于事件流的链式调用 逻辑简洁 使用简单的特点 深受各大 Android开发者的欢迎 Github截图 如果还不了解 RxJava 请看文章 Android 这是一篇 清晰 易懂的Rxjava 入门教程 RxJav
  • Python特点及优势

    Python介绍 Python由荷兰数学和计算机科学研究学会的吉多 范罗苏姆 于1990 年代初设计 作为一门叫做ABC语言的替代品 Python提供了高效的高级数据结构 还能简单有效地面向对象编程 Python语法和动态类型 以及解释型语
  • [远程办公] 通过阿里云反向代理实现内网穿透

    准备工作 购买一台阿里云服务器 新用户第一个月免费 由于仅作数据转发用 配置要求不高 除了传输带宽外 其余配置选最低的就行 内网主机 生成ssh密匙 ssh keygen 与远程主机建立免密登录ssh copy id root ip 安装依
  • docker安装tomcat,以及常用操作

    1 安装tomcat镜像 访问docker hub仓库找出你想安装的版本 docker hub 网址 https registry hub docker com 直接在搜索框里搜tomcat就可以 如果想把自己镜像放到上边就自己注册一个账号
  • Docker 搭建sonarqube,并集成阿里P3C规则

    简介 本文安装的sonarqube是7 6 community版本 未安装最新版是因为7 9之后不再支持mysql 如果你安装的是其他版本的sonarqube 那么不要使用插件包中的插件 会有版本兼容性问题 插件 插件包 插件包中包含jav
  • Android:Action 与 Data 属性

    前言 Intent 的中文翻译就是 意图 的意思 它是 Android 程序中传输数据的核心对象 在 Android 官方文档中 对 Intent 的定义是执行某操作的一个抽象描述 一个 Intent 对象实质上是一组被捆绑的信息 它可以是
  • JAVA maven 编写UDF适用于hive和impala

    hive 内置函数很少 我们可以通过自定义的方式添加新的UDF上去 来增强hive的处理能力 比如hive没有字符串包含的UDF 我们通过Java maven的方式来编写一个字符串包含的UDF 1 新建maven工程 2 修改pom xml
  • android studio升级指定版本,Android studio升级到3.3遇到的问题

    问题一 android native 的方法无法与cpp中方法关联 问题二 External Native Build Issues Error configuring 最近由于用opencv 做物体识别的demo 然后新建一个工程 含有C
  • 日志记录的几个重要地方

    在和经理聊天之前自己对日志的打印是比较随意的 没有太多的在意细节 在聊天之后发现这几个地方的日志是必须的 1 参数配置 一般项目启动时就会加载参数 日志级别为fatal 这是一定会打印的 让我们清楚的知晓参数加载的情况 2 数据进来的时候
  • springboot接口接收数组及多个参数的解决方案

    本例为个人经历 必然存在认知局限与不足 欢迎指正以及提供更好方法 若接口中需要接受数组 那么接口应该如何写呢 一般而言我们会想到 PostMapping xxxx public String test List list do sth 假设
  • 2013年计算机试题(四),2013年计算机一级考试试题(精简版):第四套

    无忧考网为大家收集整理了 2013年计算机一级考试试题 精简版 第四套 供大家参考 希望对大家有所帮助 第一部分 单选题 每小题1分 共30分 注意 打开你的考试文件夹中的EXCEL工作簿文件 单选题答题卡D XLS 将下列选择题的答案填入
  • pytorch:本地可视化服务器的tensorboard

    摘要 由于服务器上的系统是无界面系统 无法使用tensorboard进行可视化 但是可以在本地可视化服务器上的tensorboard tensorboard的安装以及命令行的使用已经在上一篇博客介绍过 这里不再阐述 不清楚的可以访问pyto
  • 基于SSM的疫苗接种平台

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 Vue 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Maven项目 是
  • 计算方法--函数插值

    文章目录 插值多项式的存在唯一性定理 1 拉格朗日插值 Lagrange 线性插值 公式 分段线性插值函数的余项 抛物插值 公式 拉格朗日插值 插值余项定理 条件 公式 误差估计 2 Newton插值公式 差商 性质 Newton插值多项式
  • 华为OD机试 - 区间交集(Java)

    题目描述 给定一组闭区间 其中部分区间存在交集 任意两个给定区间的交集 称为公共区间 如 1 2 2 3 的公共区间为 2 2 3 5 3 6 的公共区间为 3 5 公共区间之间若存在交集 则需要合并 如 1 3 3 5 区间存在交集 3
  • 实验七-通过JDBC转移异构数据库中数据

    通过ODBC JDBC转移异构数据库中数据 实验环境 Windows 10操作系统 MySQL 8 0 SQL Server 2019 eclipse2021 09 实验内容与完成情况 实验目的 学会配置ODBC JDBC数据源 熟悉使用O