java开发用什么数据库工具

发布时间:2022-11-22

本文目录一览:

  1. 怎么实现用java操作远程oracle数据库的导入导出
  2. 如何用java实现mysql数据库的导入导出
  3. java怎样实现orecol数据库导出excel
  4. 如何用java将数据库中的表导出到excel
  5. java里将从excel读到的数据用csv导出,代码怎么写
  6. 使用java将数据库中的数据导出到excel中

怎么实现用java操作远程oracle数据库的导入导出

oracle 数据库导入导出(用dmp的方法) cmd

  1. 将数据库SampleDB完全导出,用户名system 密码manager 导出到E:\SampleDB.dmp中
exp file=E:\sampleDB.dmp full=y
  1. 将备份数据库文件中的数据导入指定的数据库SampleDB 中,如果 SampleDB 已存在该表,则不再导入;
imp file=D:\SampleDB.dmp full=y ignore=y

如果没有DBA权限,用以下命令授予DBA权限

sqlplus / as sysdba;
conn system/manager
sqlgrant dba to SampleDB

如何用java实现mysql数据库的导入导出

MySql导出数据库的命令如下: Sql代码

mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName exportPath

利用Java调用命令窗口执行命令来进行MySql导入数据库一般分三步走:

  1. 第一步:登录Mysql数据库,在登录数据库的时候也可以指定登录到哪个数据库,如果指定了则可以跳过第二步;
  2. 第二步:切换数据库到需要导入的目标数据库
  3. 第三步:利用命令开始导入 在进行导出的时候,需要注意命令语句的运行环境,如果已经将mysql安装路径下的bin加入到系统的path变量中,那么在导出的时候可以直接使用命令语句,否则,就需要在执行命令语句的时候加上命令所在位置的路径,即mysql安装路径下的bin下的mysqldump命令。

java怎样实现orecol数据库导出excel

用java做的话:

  1. 需要用java程序从数据库把数据读出来。
  2. 把读出来的数据用POI生成excel输出即可。

如何用java将数据库中的表导出到excel

第一步:如何用POI操作Excel

@Test
public void createXls() throws Exception {
    //声明一个工作薄
    HSSFWorkbook wb = new HSSFWorkbook();
    //声明表
    HSSFSheet sheet = wb.createSheet("第一个表");
    //声明行
    HSSFRow row = sheet.createRow(7);
    //声明列
    HSSFCell cel = row.createCell(3);
    //写入数据
    cel.setCellValue("你也好");
    FileOutputStream fileOut = new FileOutputStream("d:/a/b.xls");
    wb.write(fileOut);
    fileOut.close();
}

第二步:导出指定数据库的所有表

分析:

  1. 某个数据库有多少表,表名是什么?―――DataBaseMetadate.getMetadate().getTables(null,null,null,new String[]{"Table"}); - excel的文件名称。
  2. 对每一个表进行select * 操作。 - 每一个sheet的名称。
  3. 分析表结构,rs.getMetadate(); ResultSetMedated
  4. 多个列,列名是什么.- 字段名就是sheet的第一行信息。
  5. 获取每一行的数据 – 放到sheet第一行以后。
@Test
public void export() throws Exception {
    //声明需要导出的数据库
    String dbName = "focus";
    //声明book
    HSSFWorkbook book = new HSSFWorkbook();
    //获取Connection,获取db的元数据
    Connection con = DataSourceUtils.getConn();
    //声明statemen
    Statement st = con.createStatement();
    //st.execute("use "+dbName);
    DatabaseMetaData dmd = con.getMetaData();
    //获取数据库有多少表
    ResultSet rs = dmd.getTables(dbName, dbName, null, new String[]{"TABLE"});
    //获取所有表名 - 就是一个sheet
    List<String> tables = new ArrayList<String>();
    while (rs.next()) {
        String tableName = rs.getString("TABLE_NAME");
        tables.add(tableName);
    }
    for (String tableName : tables) {
        HSSFSheet sheet = book.createSheet(tableName);
        //声明sql
        String sql = "select * from " + dbName + "." + tableName;
        //查询数据
        rs = st.executeQuery(sql);
        //根据查询的结果,分析结果集的元数据
        ResultSetMetaData rsmd = rs.getMetaData();
        //获取这个查询有多少行
        int cols = rsmd.getColumnCount();
        //获取所有列名
        //创建第一行
        HSSFRow row = sheet.createRow(0);
        for (int i = 0; i < cols; i++) {
            String colName = rsmd.getColumnName(i + 1);
            //创建一个新的列
            HSSFCell cell = row.createCell(i);
            //写入列名
            cell.setCellValue(colName);
        }
        //遍历数据
        int index = 1;
        while (rs.next()) {
            row = sheet.createRow(index++);
            //声明列
            for (int i = 0; i < cols; i++) {
                String val = rs.getString(i + 1);
                //声明列
                HSSFCell cel = row.createCell(i);
                //放数据
                cel.setCellValue(val);
            }
        }
    }
    con.close();
    book.write(new FileOutputStream("d:/a/" + dbName + ".xls"));
}

java里将从excel读到的数据用csv导出,代码怎么写

解释:csv文件实际上就是字符串,之间用“,”进行分割,之后进行的存储。 工具类如下:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
/**
 * CSV文件导出工具类
 */
public class CSVUtils {
    /**
     * CSV文件生成方法
     * @param head
     * @param dataList
     * @param outPutPath
     * @param filename
     * @return
     */
    public static File createCSVFile(List head, List<List> dataList, String outPutPath, String filename) {
        File csvFile = null;
        BufferedWriter csvWtriter = null;
        try {
            csvFile = new File(outPutPath + File.separator + filename + ".csv");
            File parent = csvFile.getParentFile();
            if (parent != null && !parent.exists()) {
                parent.mkdirs();
            }
            csvFile.createNewFile();
            // GB2312使正确读取分隔符","
            csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "GB2312"), 1024);
            // 写入文件头部
            writeRow(head, csvWtriter);
            // 写入文件内容
            for (List row : dataList) {
                writeRow(row, csvWtriter);
            }
            csvWtriter.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                csvWtriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return csvFile;
    }
    /**
     * 写一行数据方法
     * @param row
     * @param csvWriter
     * @throws IOException
     */
    private static void writeRow(List row, BufferedWriter csvWriter) throws IOException {
        // 写入文件头部
        for (Object data : row) {
            StringBuffer sb = new StringBuffer();
            String rowStr = sb.append("\"").append(data).append("\",").toString();
            csvWriter.write(rowStr);
        }
        csvWriter.newLine();
    }
}

Object-Z

使用java将数据库中的数据导出到excel中

用jxl来实现

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public String importEnter(HttpServletRequest request) {
    Connection conn = null;
    PreparedStatement ps = null;
    OpenDbBean db = new OpenDbBean();
    String message = "";
    try {
        ServletInputStream is = request.getInputStream();
        byte[] junk = new byte[1024];
        int bytesRead = 0;
        //去掉浏览器发送的垃圾信息
        bytesRead = is.readLine(junk, 0, junk.length);
        bytesRead = is.readLine(junk, 0, junk.length);
        bytesRead = is.readLine(junk, 0, junk.length);
        bytesRead = is.readLine(junk, 0, junk.length);
        Workbook workbook = Workbook.getWorkbook(is);
        //取得第一个工作录
        Sheet sheet = workbook.getSheet(0);
        //从第二行开始取数据并处理
        Enter enter = new Enter();
        //连接数据库
        conn = db.getConnection();
        String sql =
            "insert into haocai_enter(enter_id,enter_time,amount,jsr,type_id,xh)"
            + " values(s_enter_id.nextval,to_date(?,'dd/mm/yyyy'),?,?,?,?)";
        ps = conn.prepareStatement(sql);
        int okCount = 0;
        ArrayList errorRows = new ArrayList();
        for (int i = 1; i < sheet.getRows(); i++) {
            DB mydb = new DB();
            Cell[] c = sheet.getRow(i);
            String type_id = enter.getTypeIdByPm(c[PM].getContents());
            if (type_id != null) {
                //设置入库数据
                ps.setString(1, c[ENTER_TIME].getContents());
                ps.setString(2, c[AMOUNT].getContents());
                ps.setString(3, c[JSR].getContents());
                ps.setString(4, type_id);
                ps.setString(5, c[XH].getContents());
                ps.addBatch();
                okCount++;
            } else {
                message += "<br>第" + i + "行 " + c[PM].getContents() + " 导入失败";
            }
        }
        //执行该批过程
        if (okCount > 0) {
            ps.executeBatch();
        }
        message += "<br>成功导入" + okCount + " 行";
        workbook.close();
    } catch (Exception e) {
        System.out.println(e.getMessage());
        message += "<br>" + e.getMessage();
    } finally {
        try {
            db.CleanConnection(conn, ps, null);
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
    }
    return message;
}

用jxl.jar或者poi都可以,poi可以到apache网站上去下。

利用Java 创建和读取Excel文档

为了保证示例程序的运行,必须安装Java 2 sdk1.4.0 和Jakarta POI,Jakarta POI的Web站点是: 示例1将演示如何利用Jakarta POI API 创建Excel 文档。 示例1程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;
public class CreateXL {
    /** Excel 文件要存放的位置,假定在D盘JTest目录下*/
    public static String outputFile="D:/JTest/gongye.xls";
    public static void main(String argv[]) {
        try {
            // 创建新的Excel 工作簿
            HSSFWorkbook workbook = new HSSFWorkbook();
            // 在Excel工作簿中建一工作表,其名为缺省值
            // 如要新建一名为"效益指标"的工作表,其语句为:
            // HSSFSheet sheet = workbook.createSheet("效益指标");
            HSSFSheet sheet = workbook.createSheet();
            // 在索引0的位置创建行(最顶端的行)
            HSSFRow row = sheet.createRow((short)0);
            //在索引0的位置创建单元格(左上端)
            HSSFCell cell = row.createCell((short) 0);
            // 定义单元格为字符串类型
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            // 在单元格中输入一些内容
            cell.setCellValue("增加值");
            // 新建一输出文件流
            FileOutputStream fOut = new FileOutputStream(outputFile);
            // 把相应的Excel 工作簿存盘
            workbook.write(fOut);
            fOut.flush();
            // 操作结束,关闭文件
            fOut.close();
            System.out.println("文件生成...");
        } catch (Exception e) {
            System.out.println("已运行 xlCreate() : " + e );
        }
    }
}

读取Excel文档中的数据

示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为gongye.xls的Excel文件。 示例2程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL {
    /** Excel文件的存放位置。注意是正斜线*/
    public static String fileToBeRead="D:/JTest/gongye.xls";
    public static void main(String argv[]){
        try{
            // 创建对Excel工作簿文件的引用
            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
            // 创建对工作表的引用。
            // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
            HSSFSheet sheet = workbook.getSheet("Sheet1");
            // 也可用getSheetAt(int index)按索引引用,
            // 在Excel文档中,第一张工作表的缺省索引是0,
            // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
            // 读取左上端单元
            HSSFRow row = sheet.getRow(0);
            HSSFCell cell = row.getCell((short)0);
            // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
            System.out.println("左上端单元是: " + cell.getStringCellValue());
        } catch(Exception e) {
            System.out.println("已运行xlRead() : " + e );
        }
    }
}

设置单元格格式

在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:

  1. 创建字体,设置其为红色、粗体:
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  1. 创建格式
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFont(font);
  1. 应用格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("标题 ");

总之,如本篇文章所演示的一样,Java程序员不必担心Excel工作表中的数据了,利用Jakarta POI API,我们就可以轻易的在程序中存取Excel文档。