文本数据增量导入到mysql

实现思路:
       实现Java读取TXT文件中的内容并存到内存,将内存中的数据和mysql 数据库里面某张表数据的字段做一个比较,如果比较内存中的数据在mysql 里存在则不做处理,如果不存在则将该数据插入mysql数据库中

步骤1、读取文本数据   给一个string 返回值

步骤2、查询mysql 表中数据  给一个String 返回值

步骤3  、内存中文本数据和读取的mysql 数据做比较

/**
	 * 实现读取文件信息
	 *
	 * @param fileName
	 * @return
	 */
	public static String readFileByLines(String fileName) {
		String result = "";
		file = new File(fileName);
		String tempString = null;
		BufferedReader reader = null;
		try {

			reader = new BufferedReader(new FileReader(file));
			while ((tempString = reader.readLine()) != null) {
				result += tempString + "\n";
			}
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e1) {
				}
			}
		}
		return result;
	}
     public static String url = null;
    public static String username = null;
    public static String password = null;
    public static Connection conn;
    public static Statement stmt;
    public static ResultSet rs;
    public static String fileName;
    public static String tempString = null;

    public static String PATH = "/dbconfig.properties";
    private static Properties properties;
    static {
        try {
            InputStream is = DBlUtils.class.getResourceAsStream(PATH);
            properties = new Properties();
            properties.load(is);
            url = properties.getProperty("jdbc.url");
            username = properties.getProperty("jdbc.username");
            password = properties.getProperty("jdbc.password");
            fileName = properties.getProperty("fileName");
            System.out.println("fileName:" + fileName);
            if (is != null)
                is.close();
        } catch (IOException e) {

            e.printStackTrace();
        }

    }

查询mysql 数据库数据

/**
	 * 查询mysql 数据库数据,并获得内容
	 *
	 * @param sql
	 */
	public static String queryDatas(String sql) {
		String queryDatas = null;
		try {
			conn = DriverManager.getConnection(url, username, password);
			conn.setAutoCommit(false);
			stmt = conn.prepareStatement("load data local infile ‘‘ " + "into table loadtest fields terminated by ‘,‘");
			StringBuilder sb = new StringBuilder();
			InputStream is = new ByteArrayInputStream(sb.toString().getBytes());
			((com.mysql.jdbc.Statement) stmt).setLocalInfileInputStream(is);
			ResultSet rs = stmt.executeQuery(sql);
			ResultSetMetaData rsmd = rs.getMetaData();
			int columnCount = rsmd.getColumnCount();
			// 输出列名
			for (int i = 1; i <= columnCount; i++) {
				if (rsmd.getColumnName(i).startsWith("content")) {
					System.out.print(rsmd.getColumnName(i));
				}
			}
			System.out.println();
			// 输出mysql数据
			while (rs.next()) {
				queryDatas = rs.getString(2);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return queryDatas;
	}

文本读取的数据和mysql查询的数据进行比较:

时间: 2024-08-28 10:31:16

文本数据增量导入到mysql的相关文章

【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中

最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现.本文章记录了数据导入从0到1的过程,最终实现了每秒钟快速导入约 1200 条数据.一起来看吧~ 一.Kettle 连接图 简单说下该转换流程,增量导入数据: 1)根据 source 和 db 字段来获取 MongoDB 集合内 business_time 最大值. 2)设置 mysql 语句 3)对查询的字段进行改名 4)过滤数据:只往 MongoDB 里面导入 person_id,address,

wysiwyg富文本数据如何保存到mysql

bootstrap提供了一个叫wysiwyg的富文本组件,用来显示和编辑富文本数据,但如何将编辑后的数据保存到mysql数据库,却不得而知.另外,如何将mysql数据库中的数据显示到wysiwyg也不得而知,对于这两个问题,让我来告诉你解决方案! 一.效果展示 首先,我们先来看看效果如何: 富文本中有一张图片,还有一个数字列表 我们可以看到编辑后的数据保存成功,以及保存后对应的展示. 二.富文本 度娘对于富文本的解释如下: 富文本格式(Rich Text Format, 一般简称为RTF)是由微

解决Solr增量导入MySQL数据的问题

步骤一:在solrconfig.xml中插入一个新的requestHandler,增加如下几行 <requestHandler name="/dataimportcommentdelta" class="org.apache.solr.handler.dataimport.DataImportHandler">  <lst name="defaults">  <str name="config"&

将SQL Server 2000数据导入到MySQL 5.5的方法

一.安装MySQL 5.5(可以与SQL Server不在同一台服务器上),并新建一个空的数据库(一般用utf-8编码),用于接收导入的数据. 二.在SQL Server的服务器上安装mysql-connector-odbc-5.3.2-win32. 三.在SQL Server的服务器上运行"管理工具"->"数据源(ODBC)",切换到"系统DSN"面板,添加"MySQL ODBC 5.3 Unicode Driver"

将excel数据导入到mysql的方法

文本框被键盘遮挡到了,不会再获取焦点的时候被顶到键盘顶部.解决方案:设置A的Position为绝对定位absolute即可,其他几种定位方式未测试,但是不能是fixed ,正是因为这种定位方式,导致它无法被顶上去 某日同事丢给我一个看上去复杂的查询(实际就涉及两张表,套来套去)说只是换了日期条件,但一个查询5秒出数据,一个根本查不出来.现在整理下解决过程,及涉及的知识点. 关于Nginx模块开发的博客资料,网上很多,很多.但是,每篇博客都只提要点,无法"step by step"照着做

向Sql Server数据库中导入固定格式的txt文本数据

文本数据量比较大的时候,一条条的输入基本不可能,写个程序来中转一下也是很麻烦,幸运的是sql server提供了比较简洁的方法. Bulk insert 表名 from 'C:\你的文本文件.txt' with (FieldterMinator ='以什么符号分割数据', RowterMinator= '以什么符号加\n结尾') --\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\n Bulk insert #temp from 'C:\test.txt' with (Field

使用命令行将Excel数据表导入Mysql中的方法小结

从Excel数据表导入MySQL,已经做过好几次了,但每次都会碰到各种问题:invalid utf8 character string, data too long, ...,浪费了不少时间 为了提高效率,是时候指定一个数据导入的SOP了: 1.准备.txt文件 1.1 将要导入的数据(不含表头)从工作表复制.粘贴到一个新建的Excel数据表中(避免污染源数据) 1.2 粘贴时注意:使用右键paste as value选项,过滤掉源数据表中的多余格式(如,字体颜色.粗体等) 1.3 将新建的Ex

利用SQOOP将数据从数据库导入到HDFS(并行导入,增量导入)

基本使用 如下面这个shell脚本: #Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口号CONNECTURL=jdbc:oracle:thin:@20.135.60.21:1521:DWRAC2#使用的用户名ORACLENAME=kkaa#使用的密码ORACLEPASSWORD=kkaa123#需要从Oracle中导入的表名oralceTableName=tt#需要从Oracle中导入的表中的字段名columns=AREA_ID,TEAM_NAME#将Oracle中的数据

mysql数据导出导入

1. 从mysql查询出数据导入 txt 文件 mysql -h 10.3.20.251 -u addata_r -P 3417 -pARreBOEhw9MijIEN_eP6BYKOxkTikUnl ad_data -e "select id, advertiser_id,date,cost,0 as cash_cost, 0 as reward_cost, 0 as return_goods_cost, income,balance, create_time, ad_count, 'show'