Sql 标记

用途
Sql  标记主要用于处理与数据库相关的操作在 < Sql > </ Sql > 标记之间可以插入任何
静态的 SQL  语句这些 SQL  语句将会被发送到数据库引擎中去并被执行同时 Sql  标记
还可以配合 SqlParam  标记一起使用创建动态的 SQL  语句 Sql  标记可以通过三种方式与
数据库系统建立连接第一种方式是直接使用现存的 JDBC Connection  对象
(java.sql.Connection  接口 第二种方法是使用 J2EE Data Source(javax.sql.DataSource) 对象
这是一个 JNDI  服务对象第三种方法是使用指定的 JDBC  数据库驱动程序与数据库服务的
URL  地址与数据库服务器建立连接这三种方法我们都会在下面的例子中涉及
Sql  标记可以包含在 Transaction  标记中这时 Sql  标记体内的操作被当作事务的一部
分执行这个事务中的操作一起被执行如果每一个操作都成功了那么所有的状态改变
都将成为事实如果有任何一个操作失败了那么整个操作就会失败这个事务所涉及的
状态的改变都不会起任何作用而保持原状
语法
< sql  ... >
sql statement with optional  < sqlparam  ... />
...
</ sql >
属性
connection  指定 Connection  对象的名称
id  执行 SQL  语句所返回的记录集的名字就是 id  属性的值如果执行 SQL  语句后不
返回任何有效的记录集那么这个属性将会被忽略
scope  该属性类似于 JavaBeans  Scope  属性可以取的值为 Page Session Request
Application 
datasrc  指定数据源的名字该名字代表一个 JNDI  服务也就是说我们可以把数据
源作为一个 JNDI  服务发布在 datasrc  属性中指定这个 JNDI  服务的名字就可以访问此
数据源了
username  指定访问数据库所需要的用户名
password  指定访问数据库所需要的密码
driver  指定访问数据库所需要的驱动程序名例如 jdbc.odbc.JdbcOdbcDriver
url  指定数据源的标示例如 jdbc:odbc:test
TLD  文件
< tag >
< name > sql </ name >
< tagclass > allaire.taglib.SqlTag </ tagclass >
< teiclass > allaire.taglib.SqlTei </ teiclass >
< bodycontent > JSP </ bodycontent >
< attribute >
< name > id </ name >
< required > false </ required >
< rtexprvalue > false </ rtexprvalue >
</ attribute >
< attribute >
< name > scope </ name >
< required > false </ required >
< rtexprvalue > false </ rtexprvalue >
</ attribute >
< attribute >
< name > driver </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > url </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > datasrc </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > connection </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > username </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > password </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
</ tag >
用法示例
<%@   page   import =" java.sql.*”   %>
<%@   page   import = ”javax.sql.*   allaire.taglib. *"  %>
<%@   taglib   uri = "jruntags"   prefix = "jrun"   %>
<%
Class.forName( "jdbc.odbc.JdbcOdbcDriver" );
Connection con =DriverManager.getConnection( "jdbc:odbc:test"  ”sa” ””);
%>
< jrun:sql   connection =" <%=  con  %> id = "q1" >
SELECT * FROM goods
</ jrun:sql >
< jrun:sql   driver = "jdbc.odbc.JdbcOdbcDriver "   url = " jdbc:odbc:test"   id = "q2"
username = ”sa”   password = ”” >
SELECT * FROM goods
</ jrun:sql >
<%-- sql usesjava:comp/env/jdbc/dsn1 to lookup a datasource --%>
< jrun:sql   datasrc = "dsn1"   id = "q3" >
SELECT * FROM goods
</ jrun:sql >
<%-- you can enumerate theQueryTable by: --%>
< jrun:param   id = "q3"   type = "QueryTable" />
< jrun:foreach   item = "x"   group =" <%=  q3.Names  %> " >
<%=  x  %> < br >
</ jrun:foreach >
< jrun:foreach   group =" <%=  q3  %> " >
< jrun:foreach   item = "y"   group =" <%=  q3.Values  %> " >
<%=  y  %> < br >
</ jrun:foreach >
</ jrun:foreach >
<%-- OR --%>
< jrun:param   id = "q3"   type = "QueryTable" />
< jrun:foreach   group =" <%=  q3  %> " >
<%
int  count = q3.getColumnCount();
for  ( int  i = 0;i < count;i += 1)
{
%>
<%=  q3.get(i)  %> < br >
<%
}
%>
</ jrun:foreach >
<%-- OR --%>
< jrun:param   id = "q3"   type = "QueryTable" />
<% while  (q3.next())
{
%>
< jrun:foreach   item = "y"   group =" <%=  q3.Values  %> " >
<%=  y  %> < br >
</ jrun:foreach >
<%
}
%>
<%-- OR if you want to usecolumn names... --%>
< jrun:param   id = "q3"   type = "QueryTable" />
< jrun:foreach   group =" <%=  q3  %> " >
<%=  q3.get( "id" %> < br >
<%=  q3.get( "lastname" %> < br >
<%=  q3.get( "firstname" %> < br >
</ jrun:foreach >
<%-- OR if you want to usecolumn index... --%>
< jrun:param   id = "q3"   type = "QueryTable" />
< jrun:foreach   group =" <%=  q3  %> " >
<%=  q3.get(1)  %> < br >
<%=  q3.get(2)  %> < br >
<%=  q3.get(3)  %> < br >
</ jrun:foreach >
代码解释
在上面的实例中读者只需要了解 Sql  标记是如何与数据源建立连接的就可以了第
一种情况首先创建一个 Connection  接口的实例对象然后指定 Sql  标记的 connection 
性的值为这个 Connection  对象第二种情况直接指定 Sql  标记的 driver  属性和 url  属性的
Sql  标记就利用这些信息与数据库建立连接第三种情况指定 datasrc  属性的值为 JNDI
服务名 dsn1 JSP  引擎会自动寻找 (lookup) 这个服务然后通过它来访问数据源与数据源
建立连接以后就可以把 SQL  语句发送到数据源中去执行的结果将会保存到一个记录集
对象中这个记录集对象的名字就是 Sql  标记 id  属性的值接下来就是利用各种方法把
记录集对象中的数据输出来这里用到了 ForEach  标记和 SqlParam  标记的功能我们将在

下面分别介绍这两个标记的功能。

。。。。。


http://www.57itsq.com/read.php?tid-1306.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值