`
Jameslyy
  • 浏览: 408105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个数据库连接Java工具类和数据迁移类

阅读更多
java 代码
 
  1. /**  
  2.  *   
  3.  * @author Administrator  
  4.  *   
  5.  */  
  6. public class DataBaseManager {   
  7.   
  8.     private String driver = "com.mysql.jdbc.Driver";   
  9.   
  10.     private Connection conn = null;   
  11.     private Statement statement = null;   
  12.   
  13.     private String path = "";   
  14.     // jdbc:oracle:thin:@10.1.1.1:1521:mydb   
  15.     // jdbc:mysql://10.1.1.1:3306/
  16.     // mydb?useUnicode=true&characterEncoding=utf-8&autoReconnect=true   
  17.     private String user = "";   
  18.     private String pwd = "";   
  19.   
  20.     /**  
  21.      * Constructor  
  22.      *   
  23.      */  
  24.     public DataBaseManager() {   
  25.         init();   
  26.     }   
  27.   
  28.     public DataBaseManager(String driver, String url, String user, String pwd) {   
  29.         this.driver = driver;   
  30.         this.path = url;   
  31.         this.user = user;   
  32.         this.pwd = pwd;   
  33.   
  34.         init();   
  35.     }   
  36.   
  37.     private void init() {   
  38.         //   
  39.         try {   
  40.             Class.forName(driver);   
  41.         } catch (ClassNotFoundException e) {   
  42.             // TODO Auto-generated catch block   
  43.             e.printStackTrace();   
  44.         }   
  45.   
  46.         try {   
  47.             conn = java.sql.DriverManager.getConnection(path, user, pwd);   
  48.             statement = conn.createStatement();   
  49.         } catch (SQLException e) {   
  50.             // TODO Auto-generated catch block   
  51.             System.out.println("can not connect db!");   
  52.             e.printStackTrace();   
  53.         }   
  54.     }   
  55.   
  56.     /**  
  57.      * close Connection  
  58.      *   
  59.      * @param sql  
  60.      * @return  
  61.      */  
  62.     public ResultSet getResultSet(String sql) {   
  63.         ResultSet rs = null;   
  64.         try {   
  65.             rs = statement.executeQuery(sql);   
  66.         } catch (SQLException e) {   
  67.             // TODO Auto-generated catch block   
  68.             e.printStackTrace();   
  69.         }   
  70.         return rs;   
  71.     }   
  72.   
  73.     /**  
  74.      *   
  75.      * @param hql  
  76.      * @return  
  77.      */  
  78.     public boolean exe(String hql) {   
  79.         try {   
  80.             return statement.execute(hql);   
  81.         } catch (SQLException e) {   
  82.             // TODO Auto-generated catch block   
  83.             e.printStackTrace();   
  84.         }   
  85.   
  86.         return false;   
  87.     }   
  88.   
  89.     /**  
  90.      * close Connection  
  91.      *   
  92.      */  
  93.     public void closeConnection() {   
  94.         if (conn != null)   
  95.             try {   
  96.                 conn.close();   
  97.             } catch (SQLException e) {   
  98.                 // TODO Auto-generated catch block   
  99.                 e.printStackTrace();   
  100.             }   
  101.         if (statement != null)   
  102.             try {   
  103.                 statement.close();   
  104.             } catch (SQLException e) {   
  105.                 // TODO Auto-generated catch block   
  106.                 e.printStackTrace();   
  107.             }   
  108.     }   
  109. }  
java 代码
 
  1. import java.io.BufferedReader;   
  2. import java.io.File;   
  3. import java.io.FileReader;   
  4. import java.io.IOException;   
  5. import java.util.ArrayList;   
  6. import java.util.List;   
  7.   
  8. public class DataTransferFromSqlScript {   
  9.     // private String dateFormat = "dd-mm-yyyy hh24:mi:ss.ff";   
  10.   
  11.     // private DataBaseManager dm1 = new   
  12.     // DataBaseManager("oracle.jdbc.driver.OracleDriver",   
  13.     // "jdbc:oracle:thin:@10.1.1.1:1521:mydb", "username", "pwd");   
  14.     // //   
  15.     // private DataBaseManager dm2 = new   
  16.     // DataBaseManager("oracle.jdbc.driver.OracleDriver",   
  17.     // "jdbc:oracle:thin:@10.1.1.1:1521:mydb", "username", "pwd");   
  18.   
  19.     // private DataBaseManager dm1 = new DataBaseManager(   
  20.     // "com.mysql.jdbc.Driver",   
  21.     // "jdbc:mysql://10.1.1.1:3306/
  22.     // mydb?useUnicode=true&characterEncoding=utf-8&autoReconnect=true",   
  23.     // "username", "pwd");   
  24.   
  25.     private DataBaseManager dm1 = new DataBaseManager(   
  26.             "com.mysql.jdbc.Driver",   
  27.             "jdbc:mysql://10.1.1.1:3306/"
  28.             + "mydb?useUnicode=true&characterEncoding=utf-8&autoReconnect=true",   
  29.             "username""pwd");   
  30.   
  31.     public void readAndSaveResumeDate() {   
  32.   
  33.         System.out.println("Translate date starting......");   
  34.   
  35.         List<string></string> files = new ArrayList<string></string>();   
  36.         files.add("c://dbtable1.sql");   
  37.         files.add("c://dbtable2.sql");   
  38.   
  39.         for (String fileName : files) {   
  40.             File f = new File(fileName);   
  41.   
  42.             List<string></string> sqls = new ArrayList<string></string>();   
  43.   
  44.             try {   
  45.                 FileReader in = new FileReader(f);   
  46.                 BufferedReader br = new BufferedReader(in);   
  47.                 String s;   
  48.                 String s1 = "";   
  49.                 while ((s = br.readLine()) != null) {   
  50.                     if (s.startsWith("insert into")) {   
  51.                         s1 = s;   
  52.                     } else if (s.startsWith("values (")) {   
  53.   
  54.                         s = getSql(s);   
  55.   
  56.                         sqls.add((s1 + s).replace(";"""));   
  57.                     }   
  58.                 }   
  59.                 br.close();   
  60.                 in.close();   
  61.             } catch (IOException e) {   
  62.                 // Auto-generated catch block   
  63.                 e.printStackTrace();   
  64.             }   
  65.   
  66.             // Object[] sqlsSorted = sortSqls(sqls, -1);   
  67.   
  68.             Object[] sqlsSorted = sqls.toArray();   
  69.   
  70.             System.out.println(fileName + " total: " + sqlsSorted.length);   
  71.   
  72.             for (Object sql : sqlsSorted) {   
  73.                 System.out.println(sql);   
  74.   
  75.                 //    
  76.                 dm1.exe((String) sql);   
  77.             }   
  78.   
  79.             System.out.println(fileName + " total: " + sqlsSorted.length);   
  80.         }   
  81.     }   
  82.   
  83.     /**  
  84.      *   
  85.      * @param positions  
  86.      */  
  87.     private static void swap(Object[] positions, int i, int j) {   
  88.         Object tem = positions[i];   
  89.         positions[i] = positions[j];   
  90.         positions[j] = tem;   
  91.     }   
  92.   
  93.     /**  
  94.      * n > 0 or n <= 0  
  95.      *   
  96.      * @param positions  
  97.      * @param n  
  98.      */  
  99.     public static Object[] sortSqls(List<string></string> sqls, int n) {   
  100.   
  101.         Object[] array = sqls.toArray();   
  102.   
  103.         for (int i = 0; i < array.length; i++) {   
  104.             for (int j = array.length - 1; j > i; j--) {   
  105.                 if (n > 0) {   
  106.                     if (getId((String) array[j]) > getId((String) array[j - 1]))   
  107.                         swap(array, j, j - 1);   
  108.                 } else if (n < 0) {   
  109.                     if (getId((String) array[j]) < getId((String) array[j - 1]))   
  110.                         swap(array, j, j - 1);   
  111.                 }   
  112.             }   
  113.         }   
  114.   
  115.         return array;   
  116.     }   
  117.   
  118.     /**  
  119.      *   
  120.      * @param sql  
  121.      * @return  
  122.      */  
  123.     public static int getId(String sql) {   
  124.         int start = sql.indexOf("values (");   
  125.         String s = sql.substring(start).split(",")[0].substring(8);   
  126.   
  127.         return Integer.parseInt(s);   
  128.     }   
  129.   
  130.     public String getSql(String s) {   
  131.         int i = s.indexOf("to_timestamp");   
  132.         if (i > 0) {   
  133.             return s.replace(s.substring(i, i + 70), "null");   
  134.         } else  
  135.             return s;   
  136.     }   
  137.   
  138.     public static void main(String[] args) {   
  139.   
  140.         DataTransferFromSqlScript rd = new DataTransferFromSqlScript();   
  141.         rd.readAndSaveResumeDate();   
  142.   
  143.         rd.dm1.closeConnection();   
  144.     }   
  145. }  
分享到:
评论
5 楼 zyu67 2017-11-17  
这个类运行不起来呀  这类如何导出数据呀
4 楼 di1984HIT 2013-12-26  
鞋的不错啊。呵呵额
3 楼 Jameslyy 2009-07-04  
jackytang520 写道
直接用insert的话,在大数据量的情况下,产生大量日志问题,效率也低,我也在想这方面的办法

可以考虑批量保存数据!
2 楼 jackytang520 2009-07-04  
直接用insert的话,在大数据量的情况下,产生大量日志问题,效率也低,我也在想这方面的办法
1 楼 dd2086 2008-04-27  
  不错,加油,能写成工具类就好了。

相关推荐

    JAVA将一个数据中数据定时自动复制(抽取)到另一个数据库

    本文将深入探讨如何使用Java编程语言实现从一个数据库中定时自动抽取数据并复制到另一个数据库,以达到数据库间的实时或近实时同步。 首先,我们需要了解基础概念。Java是一种广泛使用的面向对象的编程语言,具有...

    java代码操作数据转移,把一个数据库里的东西移动到另一个数据库,自动建库建表

    在提供的"override-db"文件中,可能包含了实现上述功能的具体Java代码,包括连接管理、数据库元数据获取、结构创建和数据迁移的逻辑。如果需要进一步的分析和解释,需要查看这些源代码文件。 总之,使用Java和MySQL...

    JAVA多线程实现数据库之间的数据互导、连接池、及多表插入数据库功能

    - **线程同步**:为了避免多线程环境中的数据竞争问题,Java提供了synchronized关键字、Lock接口(如ReentrantLock)以及各种同步工具类(如Semaphore、CyclicBarrier)。 - **线程通信**:使用wait()、notify()和...

    各种数据库工具类

    这个主题"各种数据库工具类"涵盖了多个方面,包括但不限于数据库连接、查询、事务处理、数据迁移等。下面我们将深入探讨这些关键知识点。 首先,数据库工具类通常是封装了数据库连接池、SQL执行、结果集处理等功能...

    JDBC实现MYSQL数据库迁徙

    总的来说,使用JDBC进行数据库迁移是一个涉及SQL操作、事务管理、异常处理和数据转换的过程。在实际项目中,为了提高代码的可维护性和复用性,通常会将这些操作封装成服务或工具类。同时,考虑到数据安全和一致性,...

    将postgres 表结构和数据转换到sqllite数据库中的工具类源码

    本项目提供了一个工具类源码,用于将PostgreSQL数据库的表结构和数据转换到SQLite数据库中,这对于开发、测试或部署在轻量级环境中的应用非常有用。这个工具基于Spring Boot框架,因此它具有良好的可扩展性和易用性...

    数据库自动升级工具类.zip

    这个名为"数据库自动升级工具类.zip"的压缩包包含了一个独立的、平台无关的Java类,它设计用于处理数据库的自动化升级任务。由于描述中提到它不依赖于特定的数据库连接或平台,这意味着它可能使用了一种通用的接口...

    数据库结构和数据对比工具.

    例如,在数据库迁移过程中,可以使用对比工具来确认新旧环境的数据库结构和数据是否完全一致,防止因迁移错误导致的应用程序故障。在版本控制中,当多个开发者同时修改数据库时,对比工具可以帮助合并各自的更改,...

    JAVA操作mysql工具类

    这篇博客的作者提供了一个自封装的JAVA操作MySQL数据库的工具类,这有助于简化数据库的交互过程,提高代码的可读性和可维护性。这里我们将深入探讨这个工具类可能涉及的关键知识点。 1. **JDBC(Java Database ...

    java实现Excel数据导入到数据库

    这是一个强大的API,它允许Java程序员读取、写入和修改Microsoft Office格式的文件,特别是Excel(.xlsx或.xls)文件。通过使用POI,我们可以创建工作簿、工作表、行和单元格对象,进而实现对Excel数据的读取和写入...

    Java代码 MySql导出到SqlLite

    【Java代码 MySql导出到SqlLite】是一种技术实践,它涉及到使用Java编程语言来实现一个功能,该功能能够将MySQL数据库中的数据高效地导出到SQLite数据库文件中。这一过程通常用于数据迁移、备份或者在不同环境之间...

    JAVA反射机制和JDBC和各种数据库的连接

    Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、对象等的内部结构。通过反射,开发者可以动态地创建对象、调用方法、访问字段,甚至修改私有成员,这极大地增强了代码的灵活性...

    JDBC与Java数据库编程

    - **JDBC 3.0**:增加了保存点功能,改进了连接池管理,并提供了一个迁移路径,帮助数据库开发商将其产品迁移到新的体系结构中。 **1.7 java.sql包** `java.sql`包中定义了许多基本的JDBC API,包括但不限于: - ...

    基于java的数据库脚本转换工具(mysql-&gt;oracle).zip

    标题中的“基于java的数据库脚本转换工具(mysql-&gt;oracle)”揭示了这是一个利用Java编程语言开发的实用程序,主要用于将MySQL数据库的脚本转换为适用于Oracle数据库的格式。这样的工具在数据迁移、系统升级或者多...

    数据库之间进行数据迁移代码实例

    综上所述,数据库间的数据迁移是一个涉及多方面技术的复杂任务。通过熟练掌握JDBC,结合适当的策略和工具,我们可以高效、安全地完成这个任务。在实际操作中,应根据具体需求选择合适的方法,同时注意代码的可维护性...

    Java数据库备份迁移程序的源代码

    Java数据库备份迁移程序是开发人员常用的工具,用于在不同的数据库环境之间进行数据的备份和迁移。这个源代码可能包含了一系列的类和方法,用于执行数据库的导出、导入、同步和迁移操作。以下是对Java数据库备份迁移...

    MySql和Oracle数据库本地或远程备份导出和导入(JAVA版)工具类.rar

    - `mysqldump` 是MySQL提供的一个命令行实用程序,用于生成数据库或表的结构和数据的SQL脚本,以便备份或迁移数据。在使用此JAVA工具类时,需要确保`mysqldump`命令的完整路径已经配置好。例如,在Linux系统中,...

    java数据库结构导出工具

    本文将详细探讨一个基于Java编写的数据库结构导出工具,该工具旨在帮助开发者高效地管理和维护数据库结构,同时也为团队协作和项目迁移提供了便利。 Java作为跨平台的编程语言,拥有丰富的库和框架,使得开发此类...

    Android开发中的SQLite数据库的增删改查工具类

    SQLite是一个轻量级的、关系型的数据库,它不需要单独的服务器进程,并且完全支持SQL标准。本篇文章将详细解析标题和描述中提到的两个关键文件:SQLiteManager.java和DBSOpenHelper.java,以及它们在实现SQLite...

    Excel与数据库数据交换类

    在实际应用中,这个类可能作为企业系统的一部分,用于定期或按需同步Excel报表和数据库中的数据,或者作为数据验证和数据迁移工具。有了这样的类,开发者无需手动复制粘贴数据,大大提高了工作效率。 使用这个类时...

Global site tag (gtag.js) - Google Analytics