【问题标题】:Connect Flat files using java jdbc使用 java jdbc 连接平面文件
【发布时间】:2015-02-18 04:57:38
【问题描述】:

我在使用 jdbc 连接连接应用程序中存在的平面文件(.txt、.xml、.csv、.xls 等)时遇到问题。

经过搜索,我发现了以下一些建议。

1)xlsql
2)JDO

我尝试了第一个(xlsql),下面是过程。 首先创建核心java项目并加载来自xlsql的jar文件。 下面是代码

Class.forName("com.nilostep.xlsql.jdbc.xlDriver");
final String dir = System.getProperty("user.dir")+"\\db\\xl";
conn = DriverManager.getConnection("jdbc:nilostep:excel:/"+dir);
Statement stmt = con.createStatement();
String sql = "select * from  Sheet1$";
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()){
System.out.println(rs.getString(1));
}else{
System.out.println("nodata....");
}

这是说 Sheet1$ 表不存在。

请帮帮我。

【问题讨论】:

    标签: java excel csv jdbc flat-file


    【解决方案1】:

    xlsql的原理有点复杂,它使用hsqldb或mysql作为sql引擎,用excels文件中的数据创建相关的数据库和表,然后对数据库执行查询。它对待:

        directory -> database
        excel file -> schema
        sheet -> table
    

    so 它使用模式前缀访问表。例如:

        String sql = "select * from \"demo.xlsqly7\"";  
    

    这里的“demo”是不带扩展名的excel文件名,xlsqly7是工作表名。在 "XlSQL-Y8.zip" 或 "xlsql-Y7.zip" 中,有一个例子 "TestXlsql.java"。我还写了一篇:

    public static void main(String[] args) throws Exception {
        Class.forName("com.nilostep.xlsql.jdbc.xlDriver");
        String dir = "C:\\Temp\\xlsql-Y7";
        Connection con = DriverManager.getConnection("jdbc:nilostep:excel:"+dir);
        Statement stmt = con.createStatement();
        String sql = "select * from  \"Book1.MergedResult\"";
        ResultSet rs = stmt.executeQuery(sql);
        if(rs.next())
        {
            System.out.println(rs.getString(1));
        }
        else{
            System.out.println("nodata....");
        }
    
    }
    

    另一个限制是工作表的第一行必须是必须以大写字母开头的列名,否则工作表将被视为无效。

    这是关于XLSQL最好的文档:http://blog.csdn.net/ailvey/article/details/8779119,可惜是中文写的。

    【讨论】:

    • xlsql 是否支持 xlsx 文件?我认为这取决于不支持 xlsx 文件的 jxl。所以,我认为这个库不支持 xlsx 文件。我说的对吗?
    猜你喜欢
    • 2019-12-13
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2014-09-29
    • 1970-01-01
    • 2019-12-02
    相关资源
    最近更新 更多