精华内容
下载资源
问答
  • 今天做了一个用java导入sql脚本的功能,前台上传一个sql文件,后台先保存本地,然后进行导入。主要代码如下:Stringcmd="cmd/csqlplususr/[emailprotected]{//服务器IP:1521/}sid@d:\\1.sql>d:\\t.log";Processp=...

    今天做了一个用java导入sql脚本的功能,前台上传一个sql文件,后台先保存本地,然后进行导入。主要代码如下:String cmd = "cmd /c sqlplus usr/[email protected]{//服务器IP:1521/}sid @d:\\1.sql>d:\\t.log";

    Process p = null;

    try {

    p = Runtime.getRuntime().exec(cmd);

    } catch (IOException e) {

    e.printStackTrace();

    } finally {

    if (p != null) {

    try {

    p.waitFor();

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    p.destroy();

    }

    }

    注:1.sql文件中必须要有/

    2.如果没有在sql最后一行加入exit则,执行完后,process实例仍然出于等待中,具体可以自行尝试cmd中执行。如需sql执行完程序关闭则最后一行加入exit。

    3.上面的服务器IP和端口号是可选的,如果你已经配置了Net manager,则直接引用配置的sid就行了。

    原文:http://biyusheng.blog.51cto.com/2626140/1438073

    展开全文
  • java导入SQL文件的方法

    千次阅读 2014-02-19 10:35:33
    import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.SQLExec;...注意:使用此方法进行sql导入实现时,需要将sqlPath指定的SQL文件中的注释全部去掉,否则导入时会报错。
     import org.apache.tools.ant.Project;
    
            import org.apache.tools.ant.taskdefs.SQLExec;       
    
     
    
            String linkStr = "jdbc:"+dbaddress+":3306/"+dbname+"?useUnicode=true&characterEncoding=UTF-8";
    
            SQLExec sqlExec = new SQLExec();
    
            sqlExec.setEncoding("UTF-8");
    
            sqlExec.setDriver("com.mysql.jdbc.Driver");
    
            sqlExec.setUrl(linkStr);
    
            sqlExec.setUserid(dbusername);
    
            sqlExec.setPassword(dbpassword);
    
            sqlExec.setSrc(new File(sqlPath)); //sqlPath = SQL文件的路径
    
            sqlExec.setProject(new Project());
    
            sqlExec.execute();

    注意:使用此方法进行sql导入实现时,需要将sqlPath指定的SQL文件中的注释全部去掉,否则导入时会报错。
    展开全文
  • 最近在做一个CMS系统,不免会在CMS安装阶段会有一个Install database阶段,需要用到安装数据库,之前已经用mysqldunp命令到处一个sql格式的文件,现在需要将它导入数据库。由于java里没有直接针对于数据库的文件操作...

    最近在做一个CMS系统,不免会在CMS安装阶段会有一个Install database阶段,需要用到安装数据库,之前已经用mysqldunp命令到处一个sql格式的文件,现在需要将它导入数据库。由于java里没有直接针对于数据库的文件操作。只能考虑其他办法:这里是采用读取文件拼接成字符串,并批量处理(addBatch)的方式:代码如下:

    private static File file = new File("E:\\data\\tulufan.sql");

    private static InputStreamReader fileReader;

    static {

    try {

    if (!file.exists()) {

    file.createNewFile();

    }

    fileReader = new InputStreamReader(new FileInputStream(file),

    "UTF-8");

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    public void readSQLFile() {

    BufferedReader bufferedReader = new BufferedReader(fileReader);

    try {

    StringBuilder sBuilder = new StringBuilder("");

    String str = bufferedReader.readLine();

    while (str != null) {

    // 去掉一些注释,和一些没用的字符

    if (!str.startsWith("#") && !str.startsWith("/*")

    && !str.startsWith("–") && !str.startsWith("\n"))

    sBuilder.append(str);

    str = bufferedReader.readLine();

    }

    String[] strArr = sBuilder.toString().split(";");

    List strList = new ArrayList();

    for (String s : strArr) {

    strList.add(s);

    System.out.println(s);

    }

    // 创建数据连接对象,下面的DBConnection是我的一个JDBC类

    DBConnection db = new DBConnection();

    db.executeBatchByStatement(strList);

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    try {

    bufferedReader.close();

    fileReader.close();

    } catch (Exception e) {

    }

    }

    return true;

    }/*******************************

    ** DBConnection类中批量处理方法

    */

    public boolean executeBatchByStatement(List sqlList) {

    boolean ret = false;

    if (conn != null) {

    Statement stmt = null;

    try {

    conn.setAutoCommit(false);

    stmt = conn.createStatement();

    for (String s : sqlList) {

    stmt.addBatch(s);

    }

    stmt.executeBatch();

    conn.commit();

    ret = true;

    } catch (BatchUpdateException e) {

    e.printStackTrace();

    try {

    conn.rollback();

    } catch (SQLException e1) {

    e1.printStackTrace();

    }

    } catch (SQLException e) {

    e.printStackTrace();

    } finally {

    try {

    conn.setAutoCommit(true);

    if (stmt != null) {

    stmt.close();

    stmt = null;

    }

    } catch (SQLException e) {

    e.printStackTrace();

    }

    }

    }

    return ret;

    }

    当然,这只是我个人想出来的一个办法,愚陋之见还望大家批评指教,共同提高啊。。。代码有什么问题的可以QQ我,共同商讨啊。。

    展开全文
  • sql文件导入大字段,大字段超过4000则报错文本超过长度,import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.InputStreamReader;import ...

    sql文件导入大字段,大字段超过4000则报错文本超过长度,

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.io.StringReader;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.PreparedStatement;

    import java.sql.SQLException;

    import java.util.ArrayList;

    import java.util.List;

    import oracle.jdbc.OracleDriver;

    public class ClobTest {

    String url = "jdbc:oracle:thin:@192.168.1.102:1521:orcl";

    String user = "YNZJ";

    String pwd = "YNZJ";

    //String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";

    //String user = "hczz";

    //String pwd = "hczz";

    private void clobImport(List list) throws SQLException {

    DriverManager.registerDriver(new OracleDriver());

    Connection conn = DriverManager.getConnection(url, user, pwd);// 得到连接对象

    PreparedStatement stmt = null;

    for (String sql : list) {

    String content = "";

    try {

    sql = sql.trim();

    int num = sql.lastIndexOf("', '");

    content = sql.substring(num + 4, sql.length() - 3);

    sql = sql.substring(0, num) + "', ?)";

    sql = sql.replace("\"YNZJ\".\"ENET_WORKBOOK\"", "ENET_WORKBOOK_bak");

    stmt = conn.prepareStatement(sql);// 加载SQL语句

    stmt.setCharacterStream(1, new StringReader(content), content.length());

    stmt.executeUpdate();

    } catch (Exception e) {

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

    System.out.println(content);

    System.out.println(sql);

    }

    }

    stmt.close();

    conn.close();

    }

    private List duqu(String path) throws Exception {

    String code = resolveCode(path);

    File file = new File(path);

    InputStream is = new FileInputStream(file);

    InputStreamReader isr = new InputStreamReader(is, code);

    BufferedReader bufferedReader = new BufferedReader(isr);

    List strings = new ArrayList();

    String str = null;

    String sql_d = "";

    int num = 0;

    int ks = 0;

    int dz = 200;

    int jz = ks + dz;

    while ((str = bufferedReader.readLine()) != null) {

    sql_d = sql_d + str;

    if (str.endsWith("');") && sql_d != "") {

    if (num >= ks) {

    strings.add(sql_d);

    }

    sql_d = "";

    num++;

    }

    if (num == jz) {

    break;

    }

    }

    System.out.println(strings.size());

    return strings;

    }

    private String resolveCode(String path) throws Exception {

    InputStream inputStream = new FileInputStream(path);

    byte[] head = new byte[3];

    inputStream.read(head);

    String code = "gb2312"; // 或GBK

    if (head[0] == -1 && head[1] == -2)

    code = "UTF-16";

    else if (head[0] == -2 && head[1] == -1)

    code = "Unicode";

    else if (head[0] == -17 && head[1] == -69 && head[2] == -65)

    code = "UTF-8";

    inputStream.close();

    return code;

    }

    public static void main(String[] args) throws Exception {

    ClobTest a = new ClobTest();

    String path = "D:\\WORD_BOOK超长字段错误数据(1).txt";

    a.clobImport(a.duqu(path));

    }

    }

    展开全文
  • 今天做了一个用java导入sql脚本的功能,前台上传一个sql文件,后台先保存本地,然后进行导入。主要代码如下:Stringcmd="cmd/csqlplususr/pwd@{//服务器IP:1521/}sid@d:\\1.sql>d:\\t.log";Processp=null;try{p=...
  • 1 @IocBean2 public classSqlCommandModel{34 //用户名5 @Inject("java:$conf.get('jdbc.username')")6 privateString username;7 //用户密码8 @Inject("java:$conf.get('jdbc.password')")9 priva...
  • 自己写的java导入.sql文件到数据库,部署项目时可直接调用。内部包含源码。共享给大家,如有疑问,发邮件到 yichangjiang@sina.com 可与大家共同探讨。程序及说明在runjar目录下。
  • Java把txt文件导入SqlServer中
  • 如何利用Java将Excel文件中的数据导入SQLServer邵建强(西安石油大学计算机学院,陕西西安710065)摘要:介绍了利用Java程序语言将Excel表格的数据导入到SQLSERVER2000...
  • // 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免 writer.flush(); // 别忘记关闭输入输出流 out.close(); br.close(); writer.close(); if(child.waitfor()==0){ System.out....
  • java实现导出导入mysql数据库的sql文件代码中省略mysql数据库配置文件信息,要知道实际项目开发中这个代码习惯不可取哦。本文只针对简单测试,故省略配置文件,直接写死配置信息。package com.fun.test;public class...
  • 1 @IocBean 2 public class SqlCommandModel{ 3 4 //用户名 5 @Inject("java:$conf.get('jdbc.username')") 6 private String username; 7 //用户密码 8 @Inject...
  • package com.example.springbootlogback.utils; import java.io.File; import java.io.IOException; public class CommandUtil { public static void execute(String filePath, String fileName) throws IOE...
  • 问题描述String[] str = {"mysqldump -h localhost -u root -p -t lailr_js_pay wx_sp >...Runtime.getRuntime(str).exec执行mysqldump命令生成sql文件但是没有用会报错Exception in thread "main" java.io.IOExce...
  • 上一篇文章我们使用通过beeline执行一些常规的HQL今天这一篇文章主要来看如果通过Java将MySQL数据导入到Hive中。SqoopSqoop并不在这篇文章的范围内,拿出来说的原因是,在公司数据研发大佬告诉我公司的数据库数据是...
  • 您需要将CSV文件导入数据表然后,您可以使用SQLBulkCopy插入批量行using System;using System.Data;using System.Data.SqlClient;namespace SqlBulkInsertExample{class Program{static void Main(string[] args){...
  • 批处理导入SQL文件

    2012-11-01 15:26:26
    这是一个关于批处理导入SQL文件的类,里面有java调用批处理,和批处理的写法
  • 你是不是打算象SQL里面批量插入的方法用一个INSERT语句一次性导入?那还是放弃吧。不是说不能实现,而是这个办法实在没有多大用处,实在是屠龙之技。举个例子吧有A,B两个表(是不是同一个数据库并不重要),要求把A表...
  • javaSQL文件导入到数据库

    千次阅读 2011-08-10 10:01:11
    最近在做一个CMS系统,不免会在CMS安装阶段会有一个Install database阶段,需要用到安装数据库,之前已经用mysqldunp命令到处一个sql格式的文件,现在需要将它导入数据库。由于java里没有直接针对于数据库的文件操作...
  • java实现txt文件导入sql sever 数据库

    热门讨论 2012-03-19 14:58:17
    txt中信息例如:姓名、年龄、年级、学号等信息通过java程序导入SQL数据库中
  • packagecom.cme.core;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io....importjava.sql.Connection;importjava.sql.PreparedStatement;importjava...
  • package importMysql;import java.io.*;...public class importTry {/*** @param args* 本程序涉及文件IO,字符串分隔StringTokenizer,JDBC,数据库sql语句*/public static void main(String[] args)...
  • 在数据库脚本初始化的时候,可能会遇到拿到的脚本有很多个,如果一...1、将多个sql文件拷贝到D:\\sql目录,目录自定义2、通过java程序输出该目录下的sql文件信息package com.zoro.fileoperate;import java.io.File;pu...
  • Java 导入导出txt文件。Oracle数据库导出成txt格式方法,如何将数据库表单信息生成txt文件。daoJava代码 收藏代码/*** 获得所有数据*/public String getAllWord() {Session session=super.getSession();StringBuffer...
  • 第四天--html简易布局 【转载】 Java线程面试题 Top 50Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员...
  • java导入csv文件到mysql数据库里 不用导poi的包 简单易懂` package com; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.LineNumberReader; import java.sql....
  • Mysql导入sql文件乱码解决方法 在后面加上默认字符集 [code="cmd"] C:\Documents and Settings\Administrator>mysql -h127.0.0.1 -utiger -p111111 test
  • java代码中用JDBC导入sql脚本关注:120答案:2mip版解决时间 2021-02-02 21:43提问者祇為焄菂兲哋閤2021-02-02 09:55我有一个Temp.sql脚本文件java的中用JDBC导入sql脚本,我用Statement.execute("source d:okercn....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,758
精华内容 703
关键字:

java导入sql文件

java 订阅