使用java导出sqlite db

时间:2013-04-08 08:26:39

标签: java sqlite

我想将sqlite数据库导出/保存到另一个空间(例如:C,D,任何地方) 通过使用java ... 我希望有人能帮我解决这个问题.. 观点是 也许使用java swing制作一个接口,这个程序有一个sqlite db,我们有一个按钮(另存为)按,可以将此db保存到另一个空间 我找不到很多资源要查找,所以我希望有人可以帮我完成这个程序。 我会很高兴,谢谢你。

2 个答案:

答案 0 :(得分:0)

SQLite允许您ATTACH另一个数据库文件(可以位于任何地方)。然后,您只需使用SQL语句copy the contents over。这就是你想要的东西。

ATTACH DATABASE '/the/path/to/the/other/db.sqlite' AS otherdb;
CREATE TABLE otherdb.theTableName (...);
INSERT INTO otherdb.theTableName SELECT * FROM main.theTableName;

或者,没有连接打开只需复制数据库文件。

答案 1 :(得分:0)

 try{
        filename = null;
        HSSFWorkbook hwb=new HSSFWorkbook();
        HSSFSheet sheet =  hwb.createSheet("new sheet");

        HSSFRow rowhead = sheet.createRow((short)0);           
        rowhead.createCell((short) 0).setCellValue("Invoice No");
        rowhead.createCell((short) 1).setCellValue("Date");
        rowhead.createCell((short) 2).setCellValue("Customer");
        rowhead.createCell((short) 3).setCellValue("Reference No.");
        rowhead.createCell((short) 4).setCellValue("Qty");


        Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/animal1", "root", "315921");
            Statement st=con.createStatement();
            ResultSet rs=st.executeQuery("Select * from few1");
            int i=1;
            while(rs.next()){
            HSSFRow row=   sheet.createRow((short)i);
            row.createCell((short) 0).setCellValue(rs.getString("Invoice"));
            row.createCell((short) 1).setCellValue(rs.getString("Date"));
            row.createCell((short) 2).setCellValue(rs.getString("Customer"));
            row.createCell((short) 3).setCellValue(rs.getString("Reference"));
            row.createCell((short) 4).setCellValue(rs.getString("Qty"));

            i++;
            }



             JFileChooser fileChooser = new JFileChooser();
             int retval = fileChooser.showSaveDialog(null);
             if (retval == JFileChooser.APPROVE_OPTION) {

                filename  = fileChooser.getSelectedFile();

                if (!filename.getName().toLowerCase().endsWith(".xls")) {
                    filename = new File(filename.getParentFile(), filename.getName() + ".xls");

                }  
             }


            FileOutputStream fileOut =  new FileOutputStream(filename);
            hwb.write(fileOut);  
            fileOut.close();


            JOptionPane.showMessageDialog(this, "Your excel file has been generated!");


            } catch ( IOException | ClassNotFoundException | SQLException ex ) {
                System.out.println(ex);

            }

它用于Java在Microsoft excel中导出MySQL数据。