如何使自定义部署将数据写入MS SQL数据库?(How to make a Custom Deplo

2019-09-19 04:06发布

我已经添加在配置/ cd_deployer_conf.xml默认处理器自定义模块:

<Processor Action="Deploy" Class="com.tridion.deployer.Processor">
            ...
            <Module Type="MyCustomModuleDeploy" Class="com.tridion.new.extensions.MyCustomModule">
            </Module>
</Processor>

该模块的代码看起来是这样的:

public class MyCustomModule extends com.tridion.deployer.modules.PageDeploy {

     static Logger logger = Logger.getLogger("customDeployerFirst");

    public MyCustomModule(Configuration config, Processor processor)
            throws ConfigurationException {
        super(config, processor);
        // TODO Auto-generated constructor stub
    }

    public void processPage(Page page, File pageFile) throws ProcessingException {
        // TODO Auto-generated method stub
            Date d = new Date();
        log.info("WORKING");
        log.info("Page ID: " + page.getId().toString());
        log.info("Publication date: "+ d.toString());
    }

}

在我的日志文件,我得到我想要的信息,每一个页面发布时间。

我想接下来要做的就是写的页面ID和出版日期到我的Microsoft SQL数据库,在我以前创建的表。 我怎样才能做到这一点? 如何从MyCustomModule访问数据库中的表?

谢谢

Answer 1:

不知道你的要求,但你已经选择了部署扩展模型VS存储扩展。 随着存储扩展,外表套上将提供关于如何扩展存储器(如JPAFramework和基地DAOEntities您可以扩展)的模型。 如果您打算在部署扩展路线,如屈林和努诺提到它是这样写像任何其他应用程序标准的JDBC代码。

但是,我建议你也看看存储扩展模型,看看它是否符合您的要求。 一个很好的出发点是看下面的文章: http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/extending-content-delivery-storage-sdltridion-2011-1.aspx



Answer 2:

好了,所以我在这里做的解决我的问题到底是什么Quirijn建议。 使用JDBC驱动程序连接到我的数据库,然后执行一个SQL更新查询:

int sqlStatement = st.executeUpdate("insert into Pages values ('" + page.getId().toString()+ "', '" + ... + "')");

这样,每一次的页面发布的一些数据将被写入到我的数据库。



文章来源: How to make a Custom Deployer to write data to MS SQL database?