关于MSSQL 2000中Select语句FOR XML产生XML文件学习心得

FOR 子句

FOR 子句用于指定 BROWSE 或 XML 选项(BROWSE 和 XML 是不相关的选项)。

语法

[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }
            [ , XMLDATA ]
            [ , ELEMENTS ]
            [ , BINARY BASE64 ]
        }
]

参数

BROWSE

指定当查看 DB-Library 浏览模式游标中的数据时允许更新。如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。

说明  在含有 FOR BROWSE 选项的 SELECT 语句中无法使用 <lock_hint> HOLDLOCK。

 

FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。

XML

指定查询结果将作为 XML 文档返回。必须指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。

RAW

获得查询结果并将结果集内的各行转换为 XML 元素,用一般标识符 <row /> 作为元素标记。

测试:

select top  2  图书编号 = BookNo,图书名称 = BookName from sys_books as图书信息 FOR XML raw


结果:

< row 图书编号 = " B001 "  图书名称 = " 1 " />< row 图书编号 = " B002 "  图书名称 = " 体育报(上海) " />

 

AUTO

以简单的嵌套 XML 树返回查询结果。在 FROM 子句内,每个在 SELECT 子句中至少有一列被列出的表都表示为一个 XML 元素。SELECT 子句中列出的列映射到适当的元素特性。
测试:

select top  2  图书编号 = BookNo,图书名称 = BookName from sys_books  as  图书信息 FOR XML auto


结果:

< 图书信息 图书编号 = " B001 "  图书名称 = " 1 " />< 图书信息 图书编号 = " B002 "  图书名称 = " 体育报(上海) " />

 

EXPLICIT

指定显式定义所得到的 XML 树的形状。使用此种模式,要求以一种特定的方式编写查询,以便显式指定有关期望的嵌套的附加信息。

XMLDATA

返回架构,但不将根元素添加到结果中。如果指定了 XMLDATA,它将被追加到文档上。

ELEMENTS

指定列作为子元素返回。否则,列将映射到 XML 特性。

测试:

select top  2  图书编号 = BookNo,图书名称 = BookName from sys_books  as  图书信息 FOR XML AUTO,ELEMENTS

结果:

< 图书信息 >< 图书编号 > B001 </ 图书编号 >< 图书名称 > 1 </ 图书名称 ></ 图书信息 >< 图书信息 >< 图书编号 > B002 </ 图书编号 >< 图书名称 > 体育报(上海) </ 图书名称 ></ 图书信息 >


NARY BASE64

指定查询返回二进制 base64 编码格式的二进制数据。使用 RAW 和 EXPLICIT 模式检索二进制数据时,必须指定该选项。这是 AUTO 模式中的默认值。

首先,需要在pom.xml文件添加以下依赖项,以便使用SQL服务器的JDBC驱动程序: ``` <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>8.4.1.jre8</version> </dependency> ``` 然后,在application.properties文件添加以下配置: ``` spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=your_database_name spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver ``` 其,url的localhost表示SQL服务器所在的主机名或IP地址,1433是SQL服务器的默认端口号,databaseName是要连接的数据库名称,username和password分别是连接数据库所需的用户名和密码。 接下来,可以使用JdbcTemplate类来连接SQL Server并执行SQL语句。例如,可以在Spring Boot应用程序创建一个名为XmlCreationService的服务类,其包含以下方法来创建XML文件: ``` @Service public class XmlCreationService { @Autowired private JdbcTemplate jdbcTemplate; public void createXmlFile() throws Exception { String sql = "SELECT * FROM your_table_name FOR XML AUTO, ROOT('root')"; String xmlString = jdbcTemplate.queryForObject(sql, String.class); BufferedWriter writer = new BufferedWriter(new FileWriter("output.xml")); writer.write(xmlString); writer.close(); } } ``` 这个方法使用SELECT语句从指定的表检索数据,并将其转换为XML字符串。然后,使用BufferedWriter类将XML字符串写入名为output.xml的文件。 最后,在Spring Boot应用程序的Main类,可以使用XmlCreationService类来创建XML文件: ``` @SpringBootApplication public class Application implements CommandLineRunner { @Autowired private XmlCreationService xmlCreationService; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override public void run(String... args) throws Exception { xmlCreationService.createXmlFile(); } } ``` 这将在应用程序启动时调用createXmlFile方法,并在output.xml文件创建XML文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值