Java按行读取本地文件,生成sql脚本

文件结构:

中国:Chinese
蒙古:Mongolian
朝鲜:North Korean
韩国:South Korean
日本:Japanese
菲律宾:Philipinos
越南:Vietnamese

package com.soundai.nat.institution.admin.module;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.UUID;

public class Test2Controller {

    public static void main(String[] args) throws IOException {
        String sql = "INSERT INTO `sys_dict_data`(`uid`, `oid`, `dict_type`, `dict_label`, `dict_value`, `create_by`, `update_by`, `remark`, `is_publish`, `update_time`, `create_time`, `status`, `sort`) " +
                "VALUES ('%s', %d, 'zhangjiakou.nation.list', '%s', '%s', 'admin', NULL, '备注信息', '1', NULL, '2021-12-02 18:42:31', 1, %d);";
        //BufferedReader是可以按行读取文件
        FileInputStream inputStream = new FileInputStream("C:\\Users\\14262\\Desktop\\new 1.txt");
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String str = null;
        int num = 1;
        while((str = bufferedReader.readLine()) != null)
        {
            String[] mess = str.split(":");
            String sqlResulrt = String.format(sql, UUID.randomUUID().toString().replaceAll("-", ""), num, mess[0].trim(), mess[1].trim(), num);
            num++;
            System.out.println(sqlResulrt);
        }
        //close
        inputStream.close();
        bufferedReader.close();
    }
}

运行结果:

INSERT INTO sys_dict_data(uid, oid, dict_type, dict_label, dict_value, create_by, update_by, remark, is_publish, update_time, create_time, status, sort) VALUES (‘e4ea0af9d84049d8921adb77907b402e’, 1, ‘zhangjiakou.nation.list’, ‘中国’, ‘Chinese’, ‘admin’, NULL, ‘备注信息’, ‘1’, NULL, ‘2021-12-02 18:42:31’, 1, 1);
INSERT INTO sys_dict_data(uid, oid, dict_type, dict_label, dict_value, create_by, update_by, remark, is_publish, update_time, create_time, status, sort) VALUES (‘856550cffb594148bbb4e200448904c7’, 2, ‘zhangjiakou.nation.list’, ‘蒙古’, ‘Mongolian’, ‘admin’, NULL, ‘备注信息’, ‘1’, NULL, ‘2021-12-02 18:42:31’, 1, 2);
INSERT INTO sys_dict_data(uid, oid, dict_type, dict_label, dict_value, create_by, update_by, remark, is_publish, update_time, create_time, status, sort) VALUES (‘d91bc43a601a4caea2b7c1025cb7a50e’, 3, ‘zhangjiakou.nation.list’, ‘朝鲜’, ‘North Korean’, ‘admin’, NULL, ‘备注信息’, ‘1’, NULL, ‘2021-12-02 18:42:31’, 1, 3);
INSERT INTO sys_dict_data(uid, oid, dict_type, dict_label, dict_value, create_by, update_by, remark, is_publish, update_time, create_time, status, sort) VALUES (‘98ee43198ab44972a485e753c44d22b6’, 4, ‘zhangjiakou.nation.list’, ‘韩国’, ‘South Korean’, ‘admin’, NULL, ‘备注信息’, ‘1’, NULL, ‘2021-12-02 18:42:31’, 1, 4);
INSERT INTO sys_dict_data(uid, oid, dict_type, dict_label, dict_value, create_by, update_by, remark, is_publish, update_time, create_time, status, sort) VALUES (‘1223954d25474945b595d8c66d942093’, 5, ‘zhangjiakou.nation.list’, ‘日本’, ‘Japanese’, ‘admin’, NULL, ‘备注信息’, ‘1’, NULL, ‘2021-12-02 18:42:31’, 1, 5);
INSERT INTO sys_dict_data(uid, oid, dict_type, dict_label, dict_value, create_by, update_by, remark, is_publish, update_time, create_time, status, sort) VALUES (‘f3ab83d2027f48d5b43d4b8fea00fd14’, 6, ‘zhangjiakou.nation.list’, ‘菲律宾’, ‘Philipinos’, ‘admin’, NULL, ‘备注信息’, ‘1’, NULL, ‘2021-12-02 18:42:31’, 1, 6);
INSERT INTO sys_dict_data(uid, oid, dict_type, dict_label, dict_value, create_by, update_by, remark, is_publish, update_time, create_time, status, sort) VALUES (‘a70420b0905340c6908f889b541bd5c5’, 7, ‘zhangjiakou.nation.list’, ‘越南’, ‘Vietnamese’, ‘admin’, NULL, ‘备注信息’, ‘1’, NULL, ‘2021-12-02 18:42:31’, 1, 7);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、简介 1.1前言 1、由于最近工作一直用Oracle,故对Oracle数据库研究为对象。 2、根据工作业务需求实际情况进行功能研发。为什么要开发呢?因为在数据库升级或者迁移的时候,为了保证不同环境不同数据库数据保持同步,故数据库SQL脚本非常作用。比如:数据库主脚本,副脚本,增量脚本。 3、 什么是主脚本、副脚本、增量脚本呢? 3.1、主脚本指数据库表或存储过程,视图脚本,序列等脚本。 3.2、副脚本指必须执行主脚本之后才执行的脚本。换句话说在没执行主键脚本的情况下,副脚本执行之后会回滚事务失败。 3.3、增量脚本指在执行主脚本或副脚本之后,根据需求对某个表添加/修改约束(主外键约束,长度约束等),添加/修改字段/添加数据等情况对数据库结构改变处理的一种行为脚本。 1.2作用 1、 快速产出自定义规则需要的SQL脚本。 2、减少人工编写SQL脚本出错率问题,完全通过程序检测SQL准确性。 3、帮助开发人员提高SQL编写效率,减少人工编写SQL开发成本问题。 4、帮助开发人员节约时间,同时避免繁琐不必要编写SQL的工作。 二、实现方式与原理 2.1实现方式 1、实现方式分:正向与逆向实现。什么是正向与逆行呢【是否有鸡还是有蛋,先后道理同等】 2、正向方式:首先把设计好数据库表文档,把所有表的字段属性配置到EXCEL或者CSV格式的文件通过JXL/POI技术去读取文件的字段,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 3、逆向方式:首先有数据库表,然后通过ORM持久化技术连接数据库再读取表的字段等属性出来,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 2.2原理 对数据库软件内置核心表或视图查询出来存储用户行为表结构所有属性信息,对此属性结构信息进行分析与组装所需要SQL脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是王小贱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值