数据迁移-jdbc

2023-11-14

1.jdbc工具类

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;

public class PropertyUtils {

	public static Properties getProp(String propName){
		  Properties prop = new Properties();     
	        try{
	            //读取属性文件a.properties
	            InputStream in = new BufferedInputStream (new FileInputStream(propName));
	            prop.load(in);     ///加载属性列表
	           /* Iterator<String> it=prop.stringPropertyNames().iterator();
	            while(it.hasNext()){
	                String key=it.next();
	                System.out.println(key+":"+prop.getProperty(key));
	            }*/  //迭代获取key及value
	            in.close();
	        }
	        catch(Exception e){
	            e.printStackTrace();
	        }
			return prop;
	}
}

2.单表迁移方法

package com.huateng.flowsharp;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Types;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class 单表数据迁移 {

	private static final Logger logger = LoggerFactory.getLogger(单表数据迁移.class);

	private static Map<String, Object> table_Map = new LinkedHashMap<String, Object>();

	private static String table;

	private static String id;

	public static void main(String[] args) throws SQLException {
		table = args[0];
		id = args[1];
		logger.info("表名为:" + table + " id为" + id + "数据迁移开始");

		Connection conn = getConnection("zx_jdbc.properties");
		loadData(conn);
		Connection conn1 = getConnection("jc_jdbc.properties");
		writeData(conn1);

		logger.info("表名为:" + table + " id为" + id + "数据迁移结束");
	}

	public static void loadData(Connection conn) throws SQLException {
		logger.info("reading is start...");

		String sql = "SELECT * from " + table + " where id=?";
		PreparedStatement prestat = conn.prepareStatement(sql);
		prestat.setString(1, id);
		ResultSet result = prestat.executeQuery();
		ResultSetMetaData metaDatat = result.getMetaData();
		int columnCount = metaDatat.getColumnCount();

		while (result.next()) {
			for (int i = 1; i <= columnCount; i++) {
				String key = metaDatat.getColumnLabel(i);

				if (Types.VARCHAR == metaDatat.getColumnType(i)) {
					String value = result.getString(i);
					table_Map.put(key, value);
				}
				if (Types.NUMERIC == metaDatat.getColumnType(i)) {
					BigDecimal value = result.getBigDecimal(i);
					table_Map.put(key, value);
				}
			}
		}

		logger.info("reading is end...");
		conn.close();
	}

	public static void writeData(Connection conn) throws SQLException {
		logger.info("writing is start...");

		String sql = "insert into " + table + " (";

		Set<String> set = table_Map.keySet();
		for (String key : set) {
			sql += key + ",";
		}
		sql = sql.substring(0, sql.length() - 1);
		sql += ") values (";

		for (String key : set) {
			if (table_Map.get(key) instanceof String) {
				sql += "'" + table_Map.get(key) + "'" + ",";
			} else if (table_Map.get(key) instanceof BigDecimal) {
				sql += table_Map.get(key) + ",";
			} else {
				sql += null + ",";
			}
			sql = sql.trim();
		}
		sql = sql.substring(0, sql.length() - 1) + ")";
		PreparedStatement prestat = conn.prepareStatement(sql);
		prestat.execute();
		logger.info("writing is end...");
		conn.close();
	}

	public static Connection getConnection(String jdbc) throws SQLException {
		Properties prop = PropertyUtils.getProp("src/test/java/config/" + jdbc);
		try {
			Class.forName(prop.getProperty("classDriver"));
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		String url = prop.getProperty("url");
		String username = prop.getProperty("username");
		String passwd = prop.getProperty("passwd");
		return DriverManager.getConnection(url, username, passwd);
	}
}

3.多表数据迁移

package com.huateng.flowsharp;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 执行完后将trunct环境卖出申请记账和买入申请记账迁移到本地jc环境
 * @author lichuang
 *
 */
public class 多表数据迁移 {
	
	private static final Logger logger = LoggerFactory.getLogger(多表数据迁移.class);
	
	
	private static String[] strArr = {"CPES_CLICK_DEAL_CONTRACT","CES_QUOTE_DEAL","CES_QUOTE_INFO"
			                ,"CPES_CLICK_DEAL_DETAILS","DPC_DRAFT_INFO","HTES_DRAFT_INFO"};
	
	
	private static Map<String,Object> contract_Map = new LinkedHashMap<String, Object>();
	private static Map<String,Object> deal_Map = new LinkedHashMap<String, Object>();
	private static Map<String,Object> quote_MAP = new LinkedHashMap<String, Object>();
	private static Map<String,Object> details_Map = new LinkedHashMap<String, Object>();
	private static Map<String,Object> draft_Map = new LinkedHashMap<String, Object>();
	private static Map<String,Object> htestDraft_Map = new LinkedHashMap<String, Object>();
	
	private static String contractId = null;

	public static void main(String[] args) throws SQLException {
		
		logger.info("批次id为"+args[0]+"开始克隆");
		contractId = args[0];
		Connection conn = getConnection("zx_jdbc.properties");
		loadData(conn);
		Connection conn1 = getConnection("jc_jdbc.properties");
		writeData(conn1);
	}
	
	//读取数据
	public static void loadData(Connection conn) throws SQLException{
		logger.info("reading is start...");
		PreparedStatement prestat= null;
		
		Map map = null;
		for(String str:strArr){
			String sql = null;
			if(str.equals(strArr[0])){
				map = contract_Map;
				prestat= conn.prepareStatement("SELECT * from CPES_CLICK_DEAL_CONTRACT c where c.ID =?");
						
			}else if(str.equals(strArr[1])){
				map = deal_Map;
				prestat= conn.prepareStatement("SELECT * from CES_QUOTE_DEAL d where d.BUSS_CONTRACT_ID =?");
			}else if(str.equals(strArr[2])){
				map = quote_MAP;
				prestat= conn.prepareStatement("SELECT * from CES_QUOTE_INFO q where q.DEAL_ID in (SELECT d.ID from CES_QUOTE_DEAL d where d.BUSS_CONTRACT_ID =?)");
			}else if(str.equals(strArr[3])){
				map = details_Map;
				prestat= conn.prepareStatement("SELECT * from NBMS_ZX.CPES_CLICK_DEAL_DETAILS e where e.CONTRACT_ID =?");
			}else if(str.equals(strArr[4])){
				map = draft_Map;
				prestat= conn.prepareStatement("SELECT * from DPC_DRAFT_INFO d where d.ID in (SELECT e.DPC_DRAFT_ID from NBMS_ZX.CPES_CLICK_DEAL_DETAILS e where e.CONTRACT_ID =?)");
			}else if(str.equals(strArr[5])){
				map = htestDraft_Map;
				prestat= conn.prepareStatement("SELECT * from HTES_DRAFT_INFO h where h.DRAFT_NUMBER = (SELECT d.DRAFT_NUMBER from DPC_DRAFT_INFO d where d.ID in (SELECT e.DPC_DRAFT_ID from NBMS_ZX.CPES_CLICK_DEAL_DETAILS e where e.CONTRACT_ID =?))");
			}
			prestat.setString(1, contractId);
			
			ResultSet result = prestat.executeQuery();;
			ResultSetMetaData metaDatat = result.getMetaData();
			int columnCount = metaDatat.getColumnCount();
			
			while(result.next()){
				for (int i = 1; i <=columnCount; i++) {
					String key =metaDatat.getColumnLabel(i);

					if(Types.VARCHAR==metaDatat.getColumnType(i)){
						String value = result.getString(i);
						map.put(key, value);
					}if(Types.NUMERIC==metaDatat.getColumnType(i)){
						BigDecimal value = result.getBigDecimal(i);
						map.put(key, value);
					}
				}
			}
		}
		
		conn.close();
		logger.info("reading is end...");
	}
	
	//写数据
	public static void writeData(Connection conn) throws SQLException{
        logger.info("writing is start...");
	PreparedStatement prestat= null;
		
		Map map = null;
		for(String str:strArr){
			String sql = null;
			if(str.equals(strArr[0])){
				sql = "insert into CPES_CLICK_DEAL_CONTRACT (";
				map = contract_Map;
				
			}else if(str.equals(strArr[1])){
				sql = "insert into CES_QUOTE_DEAL (";
				map = deal_Map;
			}else if(str.equals(strArr[2])){
				sql = "insert into CES_QUOTE_INFO (";
				map = quote_MAP;
			}else if(str.equals(strArr[3])){
				sql = "insert into CPES_CLICK_DEAL_DETAILS (";
				map = details_Map;
			}else if(str.equals(strArr[4])){
				sql = "insert into DPC_DRAFT_INFO (";
				map = draft_Map;
			}else if(str.equals(strArr[5])){
				sql = "insert into HTES_DRAFT_INFO (";
				map = htestDraft_Map;
			}
			Set<String> set = map.keySet();
			for(String key:set){
				sql+=key+",";
			}
			sql=sql.substring(0,sql.length()-1);
			sql+=") values (";
			
			for(String key:set){
				 if (map.get(key) instanceof String) {
					 sql+="'"+map.get(key)+"'"+",";
				}else if(map.get(key) instanceof BigDecimal){
					sql+=map.get(key)+",";
				}else{
					sql+=null+",";
				}
				 sql = sql.trim();
			}
			sql = sql.substring(0, sql.length()-1)+")";
			prestat= conn.prepareStatement(sql);
			prestat.execute();
		}

		logger.info("writing is end...");
		conn.close();
	}
	
	//flowsharp/src/test/java/config/jc_jdbc.properties
	//获取jdbc连接
	public static Connection getConnection(String jdbc) throws SQLException {
		Properties prop = PropertyUtils.getProp("src/test/java/config/"+jdbc);
		try {
			Class.forName(prop.getProperty("classDriver"));
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		String url = prop.getProperty("url");
		String username = prop.getProperty("username");
		String passwd = prop.getProperty("passwd");
		return DriverManager.getConnection(url,username,passwd);
	}
	
}


4.包含blob大字段数据迁移

package com.huateng.flowsharp;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import com.huateng.flowsharp.inner.entity.Process;

public class Blob处理类 {
	
	static String []str;
	static Blob blob ;

	public static void main(String[] args) throws Exception {
		
		
		String []str = {"f109f9d0bec44ef1a1ae21159862cfd4"};
				for (String processId:str) {
					writeDate(processId);
				}
		
	}
	
	public static void writeDate(String processId) throws Exception {
		com.huateng.flowsharp.inner.entity.Process obj =null;
		try {
			Connection conn = getConnection();
			Statement stat = conn.createStatement();
			String sql = "SELECT * from FLOWSHARP_ZX.TBL_SERPROCESS s where s.PROCESS_ID = "+"'"+processId+"'";
			stat.execute(sql);
			ResultSet result = stat.getResultSet();
			getData(result);
		
		
			//ByteArrayOutputStream outStream = new ByteArrayOutputStream();
			
			//FileOutputStream output = new FileOutputStream(new File("C:/Users/lichuang/Desktop/test.txt"));
			
			
			/*InputStream in = blob.getBinaryStream();
			byte []data =new byte[4096];
			int count = -1;
			while((count = in.read(data,0,4096))!=-1){
				//output.write(data, 0, count);
				outStream.write(data, 0, count);
				
			}
			output.flush();
			output.close();*/
			//String content= new String(outStream.toByteArray(),"UTF8");
			//String content = new String(blob.getBytes((long)1, (int)blob.length()));
	
			  byte[] btArr =blob.getBytes((long)1, (int)blob.length());
			  ByteArrayInputStream bi = new ByteArrayInputStream(btArr);
		      ObjectInputStream oi = new ObjectInputStream(bi);
		      Process obj1 = (Process) oi.readObject();
		      bi.close();
		      oi.close();

			
			result.close();
			stat.close();
			conn.close();
			
	
			Connection conn1 = getConnection1();
			Statement stat1 = conn1.createStatement();
			String sql1 = "insert INTO FLOWSHARP_JC.TBL_SERPROCESS(TBL_SERPROCESS.PROCESS_ID, TBL_SERPROCESS.PROCESS_NAME, TBL_SERPROCESS.BIZ_ID, TBL_SERPROCESS.NODE_ID, TBL_SERPROCESS.NODE_NAME, TBL_SERPROCESS.PROCESS_BYTE, TBL_SERPROCESS.START_DATE, TBL_SERPROCESS.END_DATE, TBL_SERPROCESS.STARTED_USER, TBL_SERPROCESS.MODEL_ID, TBL_SERPROCESS.SUPER_PROCESS_ID, TBL_SERPROCESS.RUN_FLAG) VALUES"+
			"("+"'"+str[0]+"'"+","
				    +"'"+str[1]+"'"+","
				    +"'"+str[2]+"'"+","
				    +"'"+str[3]+"'"+","
				    +"'"+str[4]+"'"+","
				    +"empty_blob()"+","
				    +"'"+str[5]+"'"+","
				   
				    +"'"+str[7]+"'"+","
				    +"'"+str[8]+"'"+","
				    +"'"+str[9]+"'"+","
				    +"'"+str[10]+"'"+","
				    +"'"+str[11]+"'"+")";
			stat1.execute(sql1);
			
			ResultSet rs =stat1.executeQuery("select * from FLOWSHARP_JC.TBL_SERPROCESS s where s.PROCESS_ID  = "+"'"+processId+"'"+"for update");
			if(rs.next()){
				Blob b =rs.getBlob(6);
				
				   ByteArrayOutputStream bo = new ByteArrayOutputStream();
				      ObjectOutputStream oo = new ObjectOutputStream(bo);
				      oo.writeObject(obj1);
				      byte[]bytes = bo.toByteArray();
				      bo.close();
				      oo.close();
				      
				BufferedOutputStream os = new BufferedOutputStream(b.setBinaryStream(0));
				os.write(bytes);
				os.flush();
				os.close();
				stat1.close();
				conn1.close();
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void getData(ResultSet result) throws Exception{
		ResultSetMetaData metaDatat = result.getMetaData();
		int columnCount = metaDatat.getColumnCount();
	   
		for (int i = 1; i <=columnCount; i++) {
			if(i>1) System.out.print(",");
			System.out.print(metaDatat.getColumnLabel(i));
		}
		System.out.println();
		
		
		while(result.next()){
			str = new String[columnCount];
			for (int i = 1; i <=columnCount; i++) {
				if(i>1) System.out.print(",");
				  if("PROCESS_BYTE".equals(metaDatat.getColumnLabel(i))){
					   blob =result.getBlob(i);
				  }else{
					  str[i-1]=result.getString(i);
				  }
			}
			System.out.println();
		}
	}
	
	
	public static Connection getConnection() throws SQLException{
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		String url = "jdbc:oracle:thin:@ip:port/service";
		String username = "用户名1";
		String passwd = "密码1";
		
		return DriverManager.getConnection(url,username,passwd);
	}
	
	public static Connection getConnection1() throws SQLException{

		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		String url = "jdbc:oracle:thin:@ip:port/service";
		String username = "用户名2";
		String passwd = "密码2";
		
		return DriverManager.getConnection(url,username,passwd);
	}
}

 

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

数据迁移-jdbc 的相关文章

  • Android:java.lang.OutOfMemoryError:

    我在 Android 上开发了一个使用大量图像的应用程序 可绘制文件夹中有很多图像 比如说超过 100 张 我正在开发图像动画应用程序 我使用 imageview 来显示 GIF 图像 我使用了将 gif 图像分割成多个 PNG 格式图像的
  • 不支持的字段:将瞬间格式化为日期 ISO 时的年份[重复]

    这个问题在这里已经有答案了 我正在尝试将 Instant 格式化为 ldap 日期 ISO8601 但在 f format Instant now 处失败 String input 20161012235959 0Z DateTimeFor
  • 无论线程如何,对象是否总是能看到其最新的内部状态?

    假设我有一个带有简单整数计数变量的可运行对象 每次可运行对象运行时该变量都会递增 该对象的一个 实例被提交以在计划的执行程序服务中定期运行 class Counter implements Runnable private int coun
  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • 类型已知,但方法指的是缺失类型

    我对 java 和 Eclipse 不太有经验 但遇到以下问题 我正在写类似的东西 Point3D myPoint myClass myMethod arg 我收到错误 方法 myMethod myType arg 引用缺失的类型 Poin
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • Android 上的 SQLite JDBC 驱动程序

    我正在尝试使用xerial sqlite jdbc在 Android 中管理我的数据库没有成功 我得到了java lang NoClassDefFoundError org sqlite SQLiteConnection异常 我已经导入了这
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • 如何让“循环”泛型在 Java 中工作?

    我在编译以下涉及一些泛型的代码时遇到错误 public abstract class State
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • Janusgraph 0.3.2 + HBase 1.4.9 - 无法设置 graph.timestamps

    我在 Docker 容器中运行 Janusgraph 0 3 2 并尝试使用运行 HBase 1 4 9 的 AWS EMR 集群作为存储后端 我可以运行 gremlin server sh 但如果我尝试保存某些内容 我会得到粘贴在下面的堆
  • 无法连接到docker中的elasticsearch容器

    我正在尝试使用 docker 的官方 elasticsearch 镜像 我遵循了本指南 https www elastic co guide en elasticsearch reference current docker html但是当
  • Spring - 如何在不匹配列名的情况下使用 BeanPropertyRowMapper

    我正在开发一个应用程序 该应用程序已使用行映射器从纯 JDBC 转换为 Spring 模板 我遇到的问题是数据库中的列与属性名称不匹配 这阻止我使用BeanPropertyRowMapper容易地 我看到一些关于在查询中使用别名的帖子 这会
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该

随机推荐

  • python中save 函数_超全Python图像处理讲解!花五天才整理的!

    文章目录1 1 打开图片和显示图片 1 2 创建一个简单的图像 1 4 图像旋转和格式转换 三 ImageChops模块 图像合成 四 ImageEnhance模块 色彩 亮度 Pillow模块讲解 一 Image模块 1 1 打开图片和显
  • ngnix配置集群负载均衡——upstream模块

    测试包下来让他以守护进程的方式运行 nohup java jar demo 1 jar nohup java jar demo 2 jar 阿里云盘 测试所需要的两个jar包 https www aliyundrive com s XMYx
  • 如何创建Silverlight 项目

    Silverlight Silverlight Tools 您可以使用已经掌握的技术和熟悉的工具创建基于 Silverlight 的应用程序 本主题介绍开发用于 Silverlight 3 的应用程序时可使用的各种工具 本主题包括下列各节
  • Markdown使用(MarkdownPad2 表格不显示处理)

    MarkdownPad2 表格不显示处理 1 添加表格的扩展 工具 选项 Markdown Markdown处理器 改为 Markdown 扩展 即可 2 在设置的过程中要注册markdownpad2 邮箱 Soar360 live com
  • MySQL之索引的使用

    SQL CREATE INDEX 语法 在表上创建一个简单的索引 允许使用重复的值 CREATE INDEX index name ON table name column name 如果您希望以降序索引某个列中的值 您可以在列名称之后添加
  • Spring之BeanFactory学习笔记

    类图 一 注解 The root interface for accessing a Spring bean container BeanFactory 是获取IOC容器的根接口 提供了IoC容器所应该遵循的最基本的服务契约 IoC容器实际
  • DC综合完整脚本以及操作实例

    脚本最终成品 synopsys dc setup与syn script tcl 前面的文件定义各种库以及各种搜索路径 后者定义综合的约束以及输出结果文件 启动dc dc会自动的加载第一个文件 其中定义了各种路径以及库 默认用的是TSMC90
  • Vmware vSphere 5.0实战教程之一 vSphere高级应用测试环境搭建

    转载至 http andygao blog 51cto com 323260 839909 我们知道 vSphere的 vMotion HA FT等高级应用 必须在多网卡 独立存储的环境中使用 前面的系列教程中 详细的讲解了如何添加VMKe
  • STL函数模板入门

    Unit01 模板起源 01 C 为静态类型语言 这种语言有很多的数据类型 基本类型 类类型 在效率和类型安全上是无可比拟的 但这种语言在很大程度上也给程序员编写通用代码带来瓶颈 使程序员不得不为每一种数据类型编写完全相同或近乎完全相同的代
  • git提交代码会报 vue-cli-service lint found some errors. Please fix them and try committing again

    转载 https blog csdn net j15533415886 article details 92003047 转载 https blog csdn net qq 42180156 article details 10248098
  • web-view 调用微信小程序的方法

    1 1api文件夹下新建api js 获取微信公众号配置授权 后端提供接口 initConfig url gt return API GET api getJsapiSignature url url 1 2 utils文件夹下新建一个js
  • 数据结构day3(2023.7.17)

    一 Xmind整理 二 课上练习 练习1 时间复杂度 时间复杂度 只保留最高阶 f n 3 n 3 n 2 100 n T n O 3 n 3 n 2 100 n O 3 n 3 O n 3 1 gt O 1 常数阶 int t a 1 a
  • 使用百度地图JavaScript实现驾车/公交/步行导航功能

    1 2 3 4 5
  • 【语义分割】12、Fully Attentional Network for Semantic Segmentation

    文章目录 一 背景和动机 二 方法 三 效果 出处 AAAI2022 一 背景和动机 语义分割中 non local NL 的方法起到了很好了捕捉 long range 信息的作用 大致可分为 Channel non local 和 Spa
  • 使用insert into和insert overwrite插入数据的区别【Hive or Odps】

    1 创建一个测试表insert test 标识创建表insert test 默认新增id列 并插入一条数据1 CREATE TABLE insert test AS SELECT 1 AS id 2 插入数据 使用insert into插入
  • 记录:查看ubuntu版本信息。

    cat proc version uname a lsb release a WSL Ubuntu 20 04运行结果 lsb release a 查看Release和Codename uname a 内核版本和操作系统32 64位 cat
  • 32位机内存管理(下)

    既然这样 段描述符表放在那里呢 80386中引入了两个新的寄存器来管理描述符表 一个是48位的全局描述符表寄存器GDTR 一个是16位的局部描述符表寄存器LDTR 那么 为什么有两个描述符表寄存器呢 GDTR指向的描述符表为全局描述符表GD
  • 数据库原理 封锁的粒度

    1 封锁粒度是什么 封锁对象的大小称为封锁的粒度 封锁对象 逻辑单元 物理单元 2 选择封锁粒度的原则 封锁粒度和系统的并发度 系统的开销密切相关 封锁的粒度越大 数据库能够封锁的数据单元就越少 并发度就越小 系统开销也就越小 封锁的粒度越
  • Android三维模型解决方案

    1 原生OpenGL ES 无需多说 虽然OpenGL已经出来这么多年了 但无疑还是现在普及最广的 尤其在移动端 所以用原生OpenGL ES方案可以解决 2 jpct 最推荐 JPCT是一款基于OpenGL技术开发的3D图形引擎 PC环境
  • 数据迁移-jdbc

    1 jdbc工具类 import java io BufferedInputStream import java io FileInputStream import java io InputStream import java util