当前位置:首页 » 编程语言 » http传递sql语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

http传递sql语句

发布时间: 2022-07-14 00:27:48

sql server 发送HTTP请求

ALTER PROCEDURE [dbo].[P_GET_HttpRequestData]( @URL text, @status int=0 OUT, @returnText varchar(2000)='' OUT ) AS BEGIN DECLARE @object int, @errSrc int /*初始化对*/ EXEC @status = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0', @object OUT IF @status <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT RETURN END /*创建链接*/ EXEC @status= SP_OAMethod @object,'open',NULL,'GET',@URL IF @status <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT RETURN END EXEC @status=SP_OAMethod @object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded' /*发起请求*/ EXEC @status= SP_OAMethod @object,'send',NULL IF @status <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT RETURN END /*获取返回*/ EXEC @status= SP_OAGetProperty @object,'responseText',@returnText OUT IF @status <> 0 BEGIN EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT RETURN END END

㈡ 什么是ftp,http,SQL,php,NAT

FTP是FileTransferProtocol的缩写,中文翻译为"文件传输协议"。它是在计算机和网络之间交换文件的最简单的方法。像传送可显示文件的HTTP和电子邮件的SMTP一样,FTP也是应用TCP/IP协议的应用协议标准。FTP通常用于将网页从创作者上传到服务器上供人使用,而从服务器上下传文件也是一种非常普遍的使用方式。
你可以用非常简单的DOS界面来使用FTP,在Windows98中,单击"开始→运行",输入FTP后面接着输入主机IP地址或网址(注意,不要加上http://),例如输入:www.intodigi.com,就可以连接到笔者的网站,连接后会出现User(用户名)和password(密码),连接成功后,就可以用命令来操作。常用的有dir:显示此目录下的文件get:下载文件put:上传文件。或者使用第三方提供的图形界面的FTP来更新(删除,重命名,移动和复制)服务器上的文件,一般的FTP软件还支持续传的功能。现在有许多服务器支持匿名登录,允许用户使用FTP和anonymous作为用户名进行登录,通常可使用任何口令或只按回车键。

HTTP(Hypertext Transfer Protocol),即超文本传输协议。是WWW浏览器和WWW服务器之间的应用层通讯协议。HTTP协议是基于TCP/IP之上的协议,它不仅保证正确传输超文本文档,还确定传输文档中的哪一部分,以及哪一部分内容首先显示(如文本先与图形)等等

SQL是一种编程语言,下面对其进行一个详细介绍:

SQL(Structure Query Language)语言是数据库的核心语言。
SQL的发展是从1974年开始的,其发展过程如下:
1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R
时改为SQL。
1979年-----ORACLE公司发表第一个基于SQL的商业化RDBMS产品。
1982年-----IBM公司出版第一个RDBMS语言SQL/DS。
1985年-----IBM公司出版第一个RDBMS语言DB2。
1986年-----美国国家标准化组织ANSI宣布SQL作为数据库工业标准。
SQL是一个标准的数据库语言,是面向集合的描述性非过程化语言。
它功能强,效率高,简单易学易维护(迄今为止,我还没见过比它还好
学的语言)。然而SQL语言由于以上优点,同时也出现了这样一个问题:
它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而
绝大部分应用都是一个完整的过程,显然用SQL完全实现这些功能是很困
难的。所以大多数数据库公司为了解决此问题,作了如下两方面的工作:
(1)扩充SQL,在SQL中引入过程性结构;(2)把SQL嵌入到高级语言中,
以便一起完成一个完整的应用。
二 SQL语言的分类

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,
数据定义语言DDL,数据控制语言DCL。

1 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

2 数据操纵语言
数据操纵语言DML主要有三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE

3 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
| | | | |
表 视图 索引 同义词 簇

4 数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
1) GRANT:授权。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
回滚---ROLLBACK
回滚命令使数据库状态回到上次最后提交的状态。其格式为:
SQL>ROLLBACK;
3) COMMIT [WORK]:提交。
在数据库的插入、删除和修改操作时,只有当事务在提交到数据
库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看
到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交及自动提交。下面分
别说明这三种类型。
(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:
SQL>COMMIT;
(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
(3) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,
系统将自动进行提交,这就是自动提交。其格式为:
SQL>SET AUTOCOMMIT ON;

PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页。当一个访问者打开主页时,服务端便执行PHP的命令并将执行结果发送至访问者的浏览器中,这类似于ASP和CoildFusion,然而PHP和他们不同之处在于PHP开放源码和跨越平台,PHP可以运行在WINDOWS NT和多种版本的UNIX上。它不需要任何预先处理而快速反馈结果,它也不需要mod_perl的调整来使您的服务器的内存映象减小。PHP消耗的资源较少,当PHP作为Apache Web服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担。

除了能够操作您的页面外,PHP还能发送HIIP的标题。您可以设置cookie,管理数字签名和重定向用户,而且它提供了极好的连通性到其它数据库(还有DBC),集成各种外部库来做用PDF文档解析XML的任何事情。

有了PHP就无需特殊的开发环境和IDE,您可以以<?php 作为程序块的开始,可以以 ?>作为PHP代码块的结束,当然您也可以用带有 <% %>的标记甚至用<script LANGUAGE=“php”></script>的ASP的格式来配置 PHP,PHP会在那些标志间处理所有的事情。

PHP的编程语言类似与C和Perl。在使用它们之前您没必要声明任何变量,而且建立数组和Hash是很简单的事情。PHP还有一些面向对象的特征,可以为组织和打包您的代码提供很好的帮助。

虽然PHP在Apache里能快速运行,但是在PHP网站里有一些用来对Microsoft IIS 和 Netscape Enterprise Serer无缝结合的指令集。如果您还没有 PHP的话,您可以在 http: //www.php.com 下载,您也可以使用操作手册,它里边包括了所有的关于PHP的功能和特性的说明

网络地址转换 (NAT) 是一个 Internet 工程任务组 (Internet Engineering Task Force,IETF) 标准,用于允许专用网络上的多台 PC (使用专用地址段,例如 10.0.x.x、192.168.x.x、172.x.x.x) 共享单个、全局路由的 IPv4 地址。IPv4 地址日益不足是经常部署 NAT 的一个主要原因。Windows XP 和 Windows Me 中的“Internet 连接共享”及许多 Internet 网关设备都使用 NAT,尤其是在通过 DSL 或电缆调制解调器连接宽带网的情况下。

NAT 对于解决 IPv4 地址耗费问题 (在 IPv6 部署中却没必要) 尽管很有效,但毕竟属于临时性的解决方案。这种 IPv4 地址占用问题在亚洲及世界其他一些地方已比较严重,且日渐成为北美地区需要关注的问题。这就是人们为什么长久以来一直关注使用 IPv6 来克服这个问题的原因所在。

除了减少所需的 IPv4 地址外,由于专用网络之外的所有主机都通过一个共享的 IP 地址来监控通信,因此 NAT 还为专用网络提供了一个隐匿层。NAT 与防火墙或代理服务器不同,但它确实有利于安全。

㈢ 如何对网站进行SQL注入

首先你要了解什么是SQL注入漏洞,SQL注入漏洞就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。
简单来说,网站一般都是由web应用程序,数据库,服务器等组成的,网站的所有用户数据,密码表单等等都是保存在数据库当中的,数据库的内容按到常理来说是只能在服务器内部进行查询,当然,但是,开发人员对客户端用户向客户端提交的参数没有进行过滤,那么,黑客就可以从客户端【浏览器,等等,详细可以学习http协议】向服务器提交查询数据库的SQL语句,如果提交的语句成功的被服务器给接收到并且执行么,那么黑客岂不是想怎么查询数据库里面的内容就怎么查询,不是么?那些管理账号密码,会员数据不是分分钟就到手了?SQL注入漏洞危害是非常大的。

当然,这种漏洞是根据提交参数没过滤而产生的,那么除了浏览器的get提交参数,http协议中还有,post提交,cookie提交,等等。注入漏洞不是网上那些所谓的黑阔,用什么啊D,明小子之类的乱检测一气而找出来的,如果楼主想研究这个漏洞的产生,原理,利用和防御,是需要进行代码审计,SQL注入语句基础,等等。

现在一般常用的工具:SQLmap【这是一款神器,现在是公认最强大的开源注入工具】

建议楼主去看几本书:《SQL注入天书》《SQL注入漏洞的产生与防御》

这个漏洞的利用不是几句话就能说清楚的,详细的可以追问,纯手工打字,望楼主采纳。

㈣ 请帮我写个SQL语句 问题地址是http://.baidu.com/question/521012960quesup2&oldq=1

应该是这样的吧。我看了那个,在一些情况下是错误的。
select collcode,EndMoney,tradedate
from test
where(collcode, cast('2012-12-31 16:00:00' as datetime)-tradedate) in (
select collcode, min(cast('2012-12-31 16:00:00' as datetime)-tradedate)
from test
group by collcode)

㈤ 如何动态执行sql语句

这里只介绍动态SQL的使用。关于动态SQL语句的语法,参见:http://blog.csdn.NET/chiclewu/article/details/16097133

1.什么是时候需要使用动态SQL?
SQL文本在编译时是未知的。
例如,SELECT语句包含的标识符(如表名)在编译时是未知的,或者WHERE子句的条件数量在编译时是未知。
静态SQL不支持
例如,在PL/SQL中用静态SQL只能执行查询以及DML语句。如果想要执行DDL语句,只能使用动态SQL。
当让使用静态SQL,也有它的好处:
编译成功验证了静态SQL语句引用有效的数据库对象和访问这些对象的权限
编译成功创建了模式对象的依赖关系
2.EXECUTE IMMEDIATE语句
EXECUTE IMMEDIATE语句的意思是使用本地动态SQL处理大多数动态SQL语句。
如果动态SQL语句是自包含的(也就是说,它的绑定参数没有占位符,并且结果不可能返回错误),则EXECUTE IMMEDIATE语句不需要子句。
如果动态SQL语句包行占位符绑定参数,每个占位符在EXECUTE IMMEDIATE语句的子句中必须有一个相应的绑定参数,具体如下:
如果动态SQL语句是一个最多只能返回一行的SELECT语句,OUT绑定参数放置在INTO子句,IN绑定参数放置在USING子句。
如果动态SQL语句是一个可以返回多行的SELECT语句,OUT绑定参数放置在BULK COLLECT INTO子句,IN绑定参数放置在USING子句。
如果动态SQL语句是一个除了SELECT以外的其他DML语句,且没有RETURNING INTO子句,所有的绑定参数放置在USING子句中。
如果动态SQL还语句一个匿名PL/SQL块或CALL语句,把所有的绑定参数放置在USING子句中。
如果动态SQL语句调用一个子程序,请确保:
每个对应子程序参数占位符的绑定参数与子程序参数具有相同的参数模式和兼容的数据类型。
绑定参数不要有SQL不支持的数据类型(例如,布尔类型,关联数组,以及用户自定的记录类型)

USING子句不能包含NULL字面量。如果想要在USING子句中使用NULL值,可以使用位初始化的变量或者函数显示将NULL转换成一个有类型的值。

2.1动态SQL语句是一个最多只能返回一行的SELECT语句
使用动态SQL语句返回单列,查询SCOTT的薪水:
declare
v_sql_text varchar2(1000);
v_sal number;
v_ename emp.ename%type := 'SCOTT';
begin
v_sql_text := 'select e.sal from emp e where e.ename = :ename';
execute immediate v_sql_text
into v_sal
using v_ename;
dbms_output.put_line(v_ename || ':' || v_sal);
end;

使用动态SQL返回一条记录,查询SCOTT的基本信息:
declare
v_sql_text varchar2(1000);
v_ename emp.ename%type := 'SCOTT';
vrt_emp emp%rowtype;
begin
v_sql_text := 'select * from emp e where e.ename = :ename';
execute immediate v_sql_text
into vrt_emp
using v_ename;
dbms_output.put_line(v_ename || '的基本信息:');
dbms_output.put_line('工号:' || vrt_emp.empno);
dbms_output.put_line('工资:' || vrt_emp.sal);
dbms_output.put_line('入职日期:' || vrt_emp.hiredate);
end;

2.2动态SQL语句是一个可以返回多行的SELECT语句
2.2.1只有一个占位符
使用动态SQL语句返回多行记录,查询30部门的员工基本信息:
declare
v_sql_text varchar2(1000);
v_deptno emp.deptno%type := 30;
type nt_emp is table of emp%rowtype;
vnt_emp nt_emp;
begin
v_sql_text := 'select * from emp e where e.deptno = :deptno';
execute immediate v_sql_text bulk collect
into vnt_emp
using v_deptno;
for i in 1 .. vnt_emp.count loop
dbms_output.put_line(vnt_emp(i).ename || '的基本信息:');
dbms_output.put_line('工号:' || vnt_emp(i).empno);
dbms_output.put_line('工资:' || vnt_emp(i).sal);
dbms_output.put_line('入职日期:' || vnt_emp(i).hiredate);
dbms_output.put_line('');
end loop;
end

2.2.2多个占位符
查询20部门工资大于2000的员工基本信息:
declare
v_sql_text varchar2(1000);
v_deptno emp.deptno%type := 20;
v_sal number := 2000;
type nt_emp is table of emp%rowtype;
vnt_emp nt_emp;
begin
v_sql_text := 'select * from emp e where e.sal>:sal and e.deptno = :deptno';
execute immediate v_sql_text bulk collect
into vnt_emp
using v_sal, v_deptno; --注意绑定多个变量时,绑定变量只与占位符位置有关,与占位符名称无关,
for i in 1 .. vnt_emp.count loop
dbms_output.put_line(vnt_emp(i).ename || '的基本信息:');
dbms_output.put_line('工号:' || vnt_emp(i).empno);
dbms_output.put_line('工资:' || vnt_emp(i).sal);
dbms_output.put_line('入职日期:' || vnt_emp(i).hiredate);
dbms_output.put_line('');
end loop;

注意:对于SQL文本,占位符名称是没有意义的,绑定变量与占位符名称无关,只与占位符的配置有关。即使有多个相同名称占位符,也需要每个占位符对应一个绑定变量。对于PL/SQL块,占位符名称是有意义的,相同名称的占位符,只需要第一个占位符绑定变量。

2.3动态SQL语句是一个带有RETURNING子句的DML语句
KING的工资增长20%,返回增长后的工资:
eclare
v_sql_text varchar2(1000);
v_sal number;
v_ename emp.ename%type := 'KING';
begin
v_sql_text := 'update emp e set e.sal= e.sal*1.2 where e.ename = :ename returning e.sal into :sal';
execute immediate v_sql_text
using v_ename
returning into v_sal;
dbms_output.put_line(v_ename || ':' || v_sal);
end;

注意:只有当v_sql_text语句有returning into子句时,动态SQL语句才能使用returning into子句。

2.4给占位符传递NULL值
2.4.1通过未初始化变量传递NULL值
declare
v_sql_text varchar2(1000);
v_deptno emp.ename%type := 'ALLEN';
v_comm emp.comm%type;
begin
v_sql_text := 'update emp e set e.comm = :comm where e.ename =:ename';
execute immediate v_sql_text
using v_comm, v_deptno;
end;

2.4.2通过函数将NULL值显式的转换成一个有类型的值
declare
v_sql_text varchar2(1000);
v_deptno emp.ename%type := 'ALLEN';
begin
v_sql_text := 'update emp e set e.comm = :comm where e.ename =:ename';
execute immediate v_sql_text
using to_number(null), v_deptno;
end;

3.OPEN FOR语句
PL/SQL引入OPEN FOR语句实际上并不是为了支持本地动态SQL,而是为了支持游标变量。现在它以一种极其优雅的方式实现了多行的动态查询。
使用OPEN FOR语句来关联动态SQL语句的游标变量,在OPEN FOR语句的USING子句中,指定动态SQL语句每个占位符的绑定参数。
使用FETCH语句获取运行时结果集。
使用CLOSE语句关闭游标变量
使用OPEN FOR语句查询出10部门的员工的基本信息:
declare
type rc_emp is ref cursor;
vrc_emp rc_emp;
v_sql_text varchar2(1000);
v_deptno emp.deptno%type := 10;
vrt_emp emp%rowtype;
begin
v_sql_text := 'select * from emp e where e.deptno=:deptno';
open vrc_emp for v_sql_text
using v_deptno;
loop
exit when vrc_emp%notfound;
fetch vrc_emp
into vrt_emp;

dbms_output.put_line(vrt_emp.ename || '的基本信息:');
dbms_output.put_line('工号:' || vrt_emp.empno);
dbms_output.put_line('工资:' || vrt_emp.sal);
dbms_output.put_line('入职日期:' || vrt_emp.hiredate);
dbms_output.put_line('');

end loop;
close vrc_emp;
end;

4.重复的占位符名称
如果在动态SQL语句重复占位符名称,要知道占位符关联绑定参数的方式依赖于动态语句的类型。
如果执行的是一个动态SQL字符串,则必须为每一个占位符提供一个绑定参数,即使这些占位符是重复的。
如果执行的是一个动态PL/SQL块,则必须为每一个唯一占位符提供一个绑定参数,即重复的占位符只需要提供一个绑定参数。
4.1重复占位符的动态SQL字符串
declare
v_sql_text varchar2(1000);
v_sal emp.sal%type := 4000;
v_comm emp.comm%type;
v_ename emp.ename%type := 'SCOTT';
begin
v_sql_text := 'update emp e set e.sal=:sal , e.comm = :sal*0.1 where e.ename =:ename returning e.comm into :comm ';
execute immediate v_sql_text
using v_sal, v_sal, in v_ename
returning into v_comm;
dbms_output.put_line(v_ename || '分红:' || v_comm);
end;

4.2重复占位符的动态PL/SQL块
declare
v_sql_text varchar2(1000);
v_sal number;
v_ename emp.ename%type := 'KING';
begin
v_sql_text := ' begin select e.sal,e.ename into :sal,:ename from emp e where e.ename =:ename; end;';
execute immediate v_sql_text
using out v_sal, in out v_ename;
dbms_output.put_line(v_ename || ':' || v_sal);
end;

㈥ 如何将页面传递数据放如SQLSERVER2000中

加载及注册JDBC驱动程序

Class.forName("com.mysql.jdbc.Driver");

Class.forName("com.mysql.jdbc.Driver").newInstance();

JDBC URL 定义驱动程序与数据源之间的连接

标准语法:

<protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identifier(数据源)>

MySQL的JDBC URL格式:

jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][¶m2=value2]….

示例:jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password

常见参数:

user 用户名

password 密码

autoReconnect 联机失败,是否重新联机(true/false)

maxReconnect 尝试重新联机次数

initialTimeout 尝试重新联机间隔

maxRows 传回最大行数

useUnicode 是否使用Unicode字体编码(true/false)

characterEncoding 何种编码(GB2312/UTF-8/…)

relaxAutocommit 是否自动提交(true/false)

capitalizeTypeNames 数据定义的名称以大写表示

建立连接对象

String url="jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password";

Connection con = DriverManager.getConnection(url);

建立SQL陈述式对象(Statement Object)

Statement stmt = con.createStatement();

执行SQL语句

executeQuery()

String query = "select * from test";

ResultSet rs=stmt.executeQuery(query);

结果集ResultSet

while(rs.next())

{rs.getString(1);rs.getInt(2);}

executeUpdate()

String upd="insert into test (id,name) values(1001,xuzhaori)";

int con=stmt.executeUpdate(upd);

execute()

示例:

try

{

}

catch(SQLException sqle)

{

}

finally

{

}

Java类型和SQL类型 技术手册P421

PreparedStatement(预编语句)

PreparedStatement stmt = conn.prepareStatement("insert into test(id,name)values(?,?)");

stmt.setInt(1,id);

stmt.setString(2,name);

注:一旦设定语句的参数值后,就可以多次执行改语句,直到调用clearParameters()方法将他清除为止

CallableStatement(预储程序)技术手册P430

JDBC2.0使用

ResultSet对象中的光标上下自由移动

Statement stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

ResultSet rs=stmt.executeQuery("select * from test");

public Statement createStatement(int resultSetType,int resultSetConcuttency) throws SQLException

resultSetType

TYPE_FORWARD_ONLY 只能使用next()方法。

TYPE_SCROLL_SENSITIVE 可以上下移动,可以取得改变后的值。

TYPE_SCROLL_INSENSITIVE 可以上下移动。

resultSetConcuttency

CONCUR_READ_ONLY 只读

CONCUR_UPDATABLE ResultSet对象可以执行数据库的新增、修改、和移除

直接使用ResultSet对象执行更新数据

新增数据

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery("select * from test");

uprs.moveToInsertRow();

uprs.updateInt(1,1001);

uprs.updateString(2,"许召日");

uprs.insertRow;

更新数据

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery("select * from test");

uprs.last();

uprs.updateString("name","xuzhaori");

uprs.updateRow;

删除数据

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery("select * from test");

uprs.absolute(4);

uprs.deleteRow();

批处理

con.setAutoCommit(false); 关闭自动认可模式

Statement stmt=con.createStatement();

int[] rows;

stmt.addBatch("insert into test values(1001,xuzhaori)");

stmt.addBatch("insert into test values(1002,xuyalin)");

rows=stmt.executeBatch();

con.commit(); 没有任何错误,执行批处理stmt.executeBatch();

JNDI-数据源(Data Source)与连接池(Connection Pool)

Tomcat的JDBC数据源设置 技术手册P439

连接池工具-Proxool Var 0.8.3 技术手册P446

设置web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!--<?xml version="1.0" encoding="GB2312"?>-->

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

….

<servlet>

<servlet-name>ServletConfigurator</servlet-name>

<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>

<init-param>

<param-name>propertyFile</param-name>

<param-value>WEB-INF/classes/Proxool.properties</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

后端统计端口添加下列

<servlet>

<servlet-name>Admin</servlet-name>

<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Admin</servlet-name>

<url-pattern>/Admin</url-pattern>

</servlet-mapping>

….

</web-app>

配置Proxool.properties

jdbc-0.proxool.alias=JSPBook

jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver

jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/sample_db?user=root&password=browser&useUnicode=true&characterEncoding=UTF-8

jdbc-0.proxool.maximum-connection-count=10

jdbc-0.proxool.prototype-count=4

jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE

jdbc-0.proxool.verbose=true

jdbc-0.proxool.statistics=10s,1m,1d 后端统计接口添加此行

jdbc-0.proxool.statistics-log-level=DEBUG

使用Proxool连接池

Connection con = DriverManager.getConnection("proxool.JSPBook");

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

String query = "SELECT * FROM employee";

ResultSet rs = stmt.executeQuery(query);

㈦ 数据库问题:嵌入式sql语句与主语言之间的通信机制是怎样的

首先用SQL通信区(SQL Communication Area,简称SQLCA)向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程;在程序运行中,主语言向SQL语句提供参数,使用主变量(host variable)输入数据;同时,程序把SQL语句查询数据库的结果交主语言进一步处理,其中使用主变量和游标(cursor)向主语言输出数据,从而实现了SQL语言的过程化工作。

SQL语句执行后,系统要反馈给应用程序若干信息,主要包括描述系统当前工作状态和运行环境的各种数据,这些信息将送到SQL通信区SQLCA中。应用程序从SQLCA中取出这些状态信息,据此决定接下来执行的语句。

㈧ 链接传值到SQL语句中

小小的加点东西就行了。

<%
dim nid '这里重复用nid没关系,其实也可以不用DIM
nid=request('nid')
set GetName=server.createobject("adodb.recordset")
sql="select name,ip,equipment,port,links,vlan from Map_equipment
然后把?换成nid
where id =" & nid
'注意这里问号去掉后的样子。。
GetName.open sql,conn,1,1
%>

㈨ 如何通过HTTP访问SQL Server 2000数据库

http://wenku..com/link?url=_O3nXAeE7yaiIcgiNoFSq2-xYzjWVeUyi2KZwxRfTXK4iSbRNpc-ibjcRZwIu
有详细介绍

㈩ 用http访问 sql sever

没有见过这样的连接形式,不过我想就算有,那么服务器名字那里也应该是IP才对,因为如果是外网连接的话不可能用服务器名字的吧,互联网上只认IP