无论使用哪个数据库,我都需要在Liferay Portal Server中列出所有数据库表。任何提示?
我可以获得SessionFactory和session但是之后我无法提示该做什么。
SessionFactory sessionFactory = (SessionFactory) PortalBeanLocatorUtil.locate("liferaySessionFactory");
有人能指出我的方向吗?
编辑:我需要在自定义构建的portlet中阅读完整的表及其字段列表。
答案 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 :(得分:1)
Liferay的源代码附带完整的表格列表。例如。看看portal-tables.sql。
或者,您可以打开最不信任的数据库浏览器,并枚举您为Liferay配置的数据库中的表。
请记住:这些表的内容仅由Liferay更新。通过访问API更改它们,永远不要直接写任何东西。违反这一假设很可能会导致问题。