根据程序中的某个变量,有一个参数可以为NULL的select查询的最佳方法是什么?
我可以想到两个解决方案(伪代码):
bool valueIsNull;
int value;
query = "SELECT * FROM table WHERE field ";
if (valueIsNull)
{
query += "IS NULL";
}
else
{
query += "= ?";
}
statement st = sql.prepare(query);
if (!valueIsNull)
{
st.bind(0, value);
}
Run Code Online (Sandbox Code Playgroud)
要么
bool valueIsNull;
int value;
query = "SELECT * FROM table WHERE field = ? OR (? IS NULL AND field IS NULL)";
statement st = sql.prepare(query);
if (valueIsNull)
{
st.bindNull(0);
st.bindNull(1);
}
else
{
st.bind(0, value);
st.bind(1, value);
} …Run Code Online (Sandbox Code Playgroud) 是否可以根据当前git分支选择配置文件?
例如,如果您在master分支中,它将选择“生产”配置文件。如果是develop分支,则选择“ development”概要文件。
我找到了提供该属性的mavanagaiata插件,mvngit.branch但不能在本<profiles>节中使用。
这样的事情可能吗?还是有更好的方法?我想要一种简单的方法来根据要构建的分支自动选择正确的配置文件。
我有一个包含信息的XML文件,例如:
<letter>
<name>Test</name>
<age>20</age>
<me>Me</me>
</letter>
Run Code Online (Sandbox Code Playgroud)
然后我有一个文本模板,如:
Dear $name,
some text with other variables like $age or $name again
greatings $me
Run Code Online (Sandbox Code Playgroud)
当使用xslt将XML转换为纯文本字母时,我可以使用以下内容:
<xsl:text>Dear </xsl:text><xsl:value-of select="name"/><xsl:text>
some text with other variables like </xsl:text>
<xsl:value-of select="age"/><xsl:text> or </xsl:text>
<xsl:value-of select="name"/><xsl:text> again
greatings </xsl:text><xsl:value-of select="me"/>
Run Code Online (Sandbox Code Playgroud)
但是当我得到越来越多的变量和更多的文本时,这就变成了进入和维持的噩梦.
有没有办法用xslt以更干净的方式做到这一点?我更愿意,如果我可以使用我上面用作示例的文本模板,并将$ name和$ age替换为正确的值.
我有一个docbook文档,当我创建PDF时,我希望它显示章节标题,而不是前面的"章节".根据这个,以下应该工作:
我的自定义样式表:(doc.xsl)
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:import
href="/usr/share/xml/docbook/stylesheet/docbook-xsl-ns/fo/docbook.xsl"/>
<xsl:param name="local.l10n.xml" select="document('')"/>
<l:l18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="en">
<l:context name="title-numbered">
<l:template name="chapter" text="%n. %t"/>
</l:context>
</l:l10n>
</l:l18n>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
当我使用这个文档时:(doc.xml)
<book xmlns="http://docbook.org/ns/docbook" version="5.0"
xml:lang="en">
<title>Doc</title>
<chapter>
<title>Introduction</title>
<section>
<title>Purpose of the document</title>
<para></para>
</section>
</chapter>
</book>
Run Code Online (Sandbox Code Playgroud)
和这些命令:
xsltproc doc.xsl doc.xml > doc.fo
fop -fo doc.fo -pdf fo.pdf
Run Code Online (Sandbox Code Playgroud)
生成的PDF在名为"简介"的章节前面仍然有"第1章".
我尝试了不同的上下文名称,如"title",但它不起作用.我做错了什么或如何调试此问题?
更新
我发现了问题.这条线l:l18n应该是l:i18n......
docbook ×1
docbook-5 ×1
git ×1
mavanagaiata ×1
maven ×1
postgresql ×1
replace ×1
sql ×1
xml ×1
xslt ×1