Tridion 如何制作自定义部署程序将数据写入MS SQL数据库?

Tridion 如何制作自定义部署程序将数据写入MS SQL数据库?,tridion,tridion2009,tridion-content-delivery,Tridion,Tridion2009,Tridion Content Delivery,我在config/cd\u deployer\u conf.xml中的默认处理器中添加了一个自定义模块: <Processor Action="Deploy" Class="com.tridion.deployer.Processor"> ... <Module Type="MyCustomModuleDeploy" Class="com.tridion.new.extensions.MyCustomModule">

我在config/cd\u deployer\u conf.xml中的默认处理器中添加了一个自定义模块:

<Processor Action="Deploy" Class="com.tridion.deployer.Processor">
            ...
            <Module Type="MyCustomModuleDeploy" Class="com.tridion.new.extensions.MyCustomModule">
            </Module>
</Processor>
每次发布页面时,我都会在日志文件中获得所需的信息

接下来我要做的是将页面ID和发布日期写入我以前创建的表中的Microsoft SQL数据库。我该怎么做?如何从MyCustomModule访问数据库表


谢谢

我不确定您的需求,但您已经选择了deployer扩展型号与存储扩展型号。通过存储扩展,Tridion将提供一个模型,说明如何扩展存储,如JPAFramew和可以扩展的基本实体。如果您选择deployer扩展路线,就像Quirin和Nuno提到的那样,这就像编写标准JDBC代码一样,就像编写任何其他应用程序一样


但是,我建议您也看看存储扩展模型,看看它是否符合您的需求。一个非常好的起点是看下面的文章:

不确定您的需求,但您已经选择了deployer扩展模型与存储扩展。通过存储扩展,Tridion将提供一个模型,说明如何扩展存储,如JPAFramew和可以扩展的基本实体。如果您选择deployer扩展路线,就像Quirin和Nuno提到的那样,这就像编写标准JDBC代码一样,就像编写任何其他应用程序一样


但是,我建议您也看看存储扩展模型,看看它是否符合您的需求。一个很好的起点是看下面的文章:

好的,所以我在这里解决问题的方法正是Quirijn所建议的。使用JDBC驱动程序连接到我的数据库,然后执行sql更新查询:

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

这样,每次发布页面时,一些数据都会写入我的数据库。

好的,所以我在这里解决问题的方法正是Quirijn所建议的。使用JDBC驱动程序连接到我的数据库,然后执行sql更新查询:

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


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

看起来您已经拥有解决方案中特定于Tridion的部分。现在您只需要问一个关于Java和SQL Server的问题。这是一个相当离题的话题。你试过谷歌搜索“Java SQL Server”或其他什么吗?是的,假装代码不是Tridion Deployer扩展-这就是你需要的代码。谢谢大家!我被Tridion迷住了,我想这会是一件更具挑战性的事情。总是比看起来容易…嘿,Marko。请您接受下面的一个答案,以便其他人可以从您的发现中受益。如果是你自己的答案解决了你的问题,那么不要犹豫接受它。看起来你已经有了解决方案中特定于Tridion的部分。现在您只需要问一个关于Java和SQL Server的问题。这是一个相当离题的话题。你试过谷歌搜索“Java SQL Server”或其他什么吗?是的,假装代码不是Tridion Deployer扩展-这就是你需要的代码。谢谢大家!我被Tridion迷住了,我想这会是一件更具挑战性的事情。总是比看起来容易…嘿,Marko。请您接受下面的一个答案,以便其他人可以从您的发现中受益。如果你的答案解决了你的问题,请毫不犹豫地接受你自己的答案。这种类型的解决方案是否只有在Tridion 2011年才可用,因为我的实施是在2009年?是的。这只在2011年提供,而不是在2009年。你有升级到2011年的计划吗?当你升级时,它将被重写。理论上,在旧版本中使用自定义的home类定制存储是可能的,但是关于这项技术的信息可能更难获得。2011年,它建立在标准库的基础上,这真是太棒了。但在此之前,定制部署器是一个不错的选择。还要注意home类,它们在2011年被弃用/删除。当你升级时,你有更多的工作要做。Marko已经拥有的代码在2011年可以正常工作。home类已经弃用/消失,但deployer模块没有。这种类型的解决方案是否仅在Tridion 2011中可用,因为我的实现是在2009年?是的。这只在2011年提供,而不是在2009年。你有升级到2011年的计划吗?当你升级时,它将被重写。理论上,在旧版本中使用自定义的home类定制存储是可能的,但是关于这项技术的信息可能更难获得。2011年,它建立在标准库的基础上,这真是太棒了。但在此之前,定制部署器是一个不错的选择。还要注意home类,它们在2011年被弃用/删除。当你升级时,你有更多的工作要做。Marko已经拥有的代码在2011年可以正常工作。home类已经过时了,但deployer模块没有。我还要强调的是,我在Tridion2009中使用了这个解决方案。如果您使用2011,我建议您阅读Ram关于存储扩展的回答
s、 我还要强调的是,我在Tridion 2009中使用了此解决方案。如果您使用2011,我建议您阅读Ram关于存储扩展的回答。