事实上,我正在使用spring mvc和hibernate作为持久性框架开发我的Web应用程序的仪表板页面。我必须获取表大小(Mo)才能将其呈现给管理员。 我一直在寻找这样一个话题但是徒劳无功,我只是想知道hibernate是否可以提供表大小,因为它可以执行以下SQL命令:
SELECT
CONCAT(ROUND(sum(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2), 'Mo')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'nom_base_de_donnees'
AND table_name='nom_table'
我一直在忙于其他事情,现在我尝试过并且效果很好。我发布dao方法以防有人需要它。
@Override
public List getTableSize() {
Session session =sessionFactory.openSession();
String sql="SELECT round(sum(data_length+index_length)/1024/1024,2) FROM information_schema.tables WHERE table_schema = 'email_center_v2'AND table_name = 'message'";
Query query=session.createSQLQuery(sql);
List result=query.list();
session.colse();
return result;
}
只需调用Controller中的方法并将结果添加到相应的视图