Content management system 如何从数据库中检索动态内容?

Content management system 如何从数据库中检索动态内容?,content-management-system,dotcms,Content Management System,Dotcms,我正在评估基于java的cms并选择一个作为我们的cms,现在我正在学习dotcms,我需要知道如何像传统的jsp/bo那样从数据库中检索内容,我是dotcms的新手,官方文档只告诉如何添加静态内容,但动态内容,比如运行sql并获取所需数据,然后将它们放入页面。我们正在做一个内部网站,员工可以浏览新闻,事件,同事信息等,通过cms管理,信息绝对是动态的,定期更新。我们计划在项目中使用SpringMVC。对这个问题有什么想法吗 谢谢。要让它发挥作用,您需要做几件事: 如果要使用其他数据库,则可以向

我正在评估基于java的cms并选择一个作为我们的cms,现在我正在学习dotcms,我需要知道如何像传统的jsp/bo那样从数据库中检索内容,我是dotcms的新手,官方文档只告诉如何添加静态内容,但动态内容,比如运行sql并获取所需数据,然后将它们放入页面。我们正在做一个内部网站,员工可以浏览新闻,事件,同事信息等,通过cms管理,信息绝对是动态的,定期更新。我们计划在项目中使用SpringMVC。对这个问题有什么想法吗


谢谢。

要让它发挥作用,您需要做几件事:

  • 如果要使用其他数据库,则可以向conf/Catalina/localhost/ROOT.xml文件添加新资源。如果您想使用dotCMS数据库托管其他表,则可以跳过此步骤

  • 在java代码中,可以使用DbConnectionFactory类获得数据库连接。现在您可以从数据库中读取数据。下面是一个例子: 导入java.sql.Connection; 导入java.sql.ResultSet; 导入java.sql.SQLException; 导入java.sql.Statement

    Connection conn = DbConnectionFactory.getConnection();
    Statement selectStatement;
    try {
      selectStatement = conn.createStatement();
      try {
        selectStatement.execute("SELECT * FROM your_table WHERE your_where_clause etc...");
        ResultSet result = selectStatement.getResultSet();
        if (result.next()) {
          .. do your stuff here...
          // for example:
          // Long dbId = result.getLong("Id");
          // String stringField = result.getString("stringFieldName");
          // int intField = result.getInt("intFieldName");
        } finally  {
          selectStatement.close();
        }
      } catch (SQLException e1) {
         // Log the error here
      }
    
    }

  • 如果要在velocity中使用此数据,则需要创建一个viewtool。请在此处阅读更多信息: