如何列出Liferay Portal中的所有数据库表[不考虑使用的数据库]?

时间:2014-02-06 12:21:17

标签: database hibernate liferay datasource

无论使用哪个数据库,我都需要在Liferay Portal Server中列出所有数据库表。任何提示?

我可以获得SessionFactory和session但是之后我无法提示该做什么。

SessionFactory sessionFactory = (SessionFactory) PortalBeanLocatorUtil.locate("liferaySessionFactory");

有人能指出我的方向吗?

编辑:我需要在自定义构建的portlet中阅读完整的表及其字段列表。

2 个答案:

答案 0 :(得分:3)

请尝试以下代码:

    try {
        DataSource dataSource = (DataSource) PortalBeanLocatorUtil.locate("liferayDataSource");
        Connection connection =  dataSource.getConnection();
        DatabaseMetaData md = connection.getMetaData();
        ResultSet rs = md.getTables(null, null, "%", null);
        while (rs.next()) {
            System.out.println(rs.getString(3));
        }

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

参考文献:

  1. http://www.liferaysavvy.com/2013/02/getting-data-from-multiple-tables-in.html How to get all table names from a database?

答案 1 :(得分:1)

Liferay的源代码附带完整的表格列表。例如。看看portal-tables.sql

或者,您可以打开最不信任的数据库浏览器,并枚举您为Liferay配置的数据库中的表。

请记住:这些表的内容仅由Liferay更新。通过访问API更改它们,永远不要直接写任何东西。违反这一假设很可能会导致问题。