??xml version="1.0" encoding="utf-8" standalone="yes"?>国产视频久久久久,精品国产一区二区三区小蝌蚪,精品推荐蜜桃传媒http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111118.htmlshadeclipseshadeclipseMon, 16 Apr 2007 15:59:00 GMThttp://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111118.htmlhttp://www.aygfsteel.com/yiyan2002/comments/111118.htmlhttp://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111118.html#Feedback0http://www.aygfsteel.com/yiyan2002/comments/commentRss/111118.htmlhttp://www.aygfsteel.com/yiyan2002/services/trackbacks/111118.html JDK 1.5
  Tomcat 5.0.30
  SQLServer2000

---------------------------------------------------------------------------------------

%TOMCAT_HOME%\conf\Server.xmll构分析

<Server>

<Service>

      <Connector></Connector>

      <Engine>

         <Host>

            <Context></Context>

</Host>

</Engine>

</Service>

</Server>

 

<Server><!--层元素,?/span>Tomcat实例的顶层元素,可包含一个或多个Service-->
<Service><!--
q接器元素,包含一?/span>Engine元素Q以及一个或多个Connector元素Q这?/span>            Connector׃n同一?/span>Engine-->
< Connector>< !--
实际和客户交互的lg-->
< Engine>< !--
容器cd素,可以包含多个Host元素-->
< Host>< !--
定义一个虚拟主机,它可以包含一个或多个Web应用-->
< Context>< !--
使用最频繁的元素,每个Context代表q行在虚拟主Z的应?/span>-->
嵌套cd素可以加到容器组件中如:< Logger>< Value>< Realm>元素

Context元素功能分析

?/span> [installdir]\webapps 目录下创Z个名?/span> blog 的子目录。然后在 blog 子目录下Q创建标准的 Web 应用E序目录l构Q?/span>

[installdir]\webapps\blog

[installdir]\webapps\blog\WEB-INF

[installdir]\webapps\blog\WEB-INF\classes

[installdir]\webapps\blog\WEB-INF\lib

接下来,d指向 Web 应用E序?/span> context?/span>context 只是一个别名,它告?/span> Tomcat 在哪里可以访?/span> Web 应用E序。我们的 context 路径是 /blogQ它指向我们刚刚创建的 blog 子目录。在用户输入 http://localhost:8080/blog 后,{?/span> webapps 下的 banner 目录。如果他惌行我们的 BlogServletQ将存在?/span> WEB-INF/classes 目录中)Q他可以使用 http://localhost:8080/blog/servlet/BlogServlet?/span>

要添?/span> /blog contextQ首先,我们需要编?/span> Tomcat conf 目录中的 server.xml 文g。在接近该文件底部的位置Q您会看到几?/span> context 标记。那里应该有一个用?/span> /admin ?/span> context 和一个用?/span> /examples ?/span> context。请d以下 context 标记Q?/span>

<!-- BannerAd Context -->

<Context path="/blog" docBase="blog"

debug="0" reloadable="true" crossContext="true"/>

--------------------------------------------------------------------------------------

开始数据池配置

1Q配|环?/span>

需要的jar包打入全局目录Q即%TOMCAT_HOME%\common\lib下,?/span>SQLServer的数据驱动等?/span>

2Q配|?/span>TOMCATQ?/span>POOLMAN的数据池Q?/span>

·服务器端Q配|?/span>Server.xml文档(%TOMCAT_HOME%\conf\Server.xml)

<Context path="/blog" docBase="blog" debug="0" reloadable="true">
<Resource name="jdbc/blog" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/blog">
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name> <value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=blog</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
·.客户端:配置web.xml文档(\webapps\banner\WEB-INF\web.xml)

<resource-ref>
<description>SqlServer Datasource example</description>
<res-ref-name>jdbc/blog</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>

</resource-ref>

·试Q?/span>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test of MySQL connection pool</title>
</head>
<body>
<%
out.print("Start<br/>");
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj = (Object) ctx.lookup("jdbc/blog ");
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
Connection conn = ds.getConnection();
out.print("connection pool runs perfectly!");
conn.close();
}
catch(Exception ex){
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>
-------------------------------------------------------------
5.0?.5的区?br>Tomcat5.5.X中,dbcplg需要自己额外下载的Q不像在Tomcat5.0.X中已l附带了Q配|格式不一P如下
<Resource name="jdbc/ExampleDB" auth="Container"
      type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
      url="jdbc:mysql://localhost/quickoa" username="root"
      password="" maxActive="100" maxIdle="30" maxWait="10000" />



shadeclipse 2007-04-16 23:59 发表评论
]]>
数据库分代码收?/title><link>http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111114.html</link><dc:creator>shadeclipse</dc:creator><author>shadeclipse</author><pubDate>Mon, 16 Apr 2007 15:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111114.html</guid><wfw:comment>http://www.aygfsteel.com/yiyan2002/comments/111114.html</wfw:comment><comments>http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111114.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yiyan2002/comments/commentRss/111114.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yiyan2002/services/trackbacks/111114.html</trackback:ping><description><![CDATA[<p>分页(Paging) / SQL Server / Oracle <br>虽然 DataGrid 控g自己带了一个分处理机Ӟ但它是将W合查询条g的所有记录读入内存,然后q行分页昄的。随着W合条g的记录数目增多,׃出现q行效率问题Q或者至是资源的利用率下降?/p> <p>下面的代码示例都以下面的表结构ؓ准:</p> <p>    Articles ?nbsp;    SQL Server cd      Oracle cd <br>PK    Id              int (自增)            number(9) (插入时在当前最大g?) <br>     Author          nvarchar(10)         nvarchar2(10) <br>     Title           nvarchar(50)         nvarchar2(50) <br>     PubTime         datetime date </p> <p><br>SQL Server / Access {微软品中Q我们通常的自定义分页有两U思\Q?/p> <p>一U是?ASP.NET Forum Z表的?#8220;临时?#8221;ҎQ即在存储过E中建立一个时表Q该临时表包含一个序号字D(1Q?Q?Q?...Q以及表的主键(其他能够唯一定一行记录的字段也是可以的)字段。存储过E可能如下:Q编?SS1Q?/p> <p>CREATE Procedure GetAllArticles_Paged<br>(<br>     @PageIndex int,<br>     @PageSize int,<br>     @TotalRecords out int,<br>     @TotalPages out int<br>)<br>AS</p> <p>DECLARE @PageLowerBound int<br>DECLARE @PageUpperBound int</p> <p>-- Set the page bounds<br>SET @PageLowerBound = @PageSize * @PageIndex<br>SET @PageUpperBound = @PageLowerBound + @PageSize + 1</p> <p>-- Create a temp table to store the select results<br>CREATE TABLE #tmp<br>(<br>     RecNo int IDENTITY (1, 1) NOT NULL,<br>     ArticleID int<br>)</p> <p>INSERT INTO #tmp<br>     SELECT [ID]<br>     FROM Articles<br>     ORDER BY PubTime DESC</p> <p>SELECT A.*<br>FROM Articles A (nolock), #tmp T<br>WHERE A.ID = T.ArticleID AND<br>     T.RecNo > @PageLowerBound AND<br>     T.RecNo < @PageUpperBound<br>ORDER BY T.RecNo</p> <p>GO <br>另一U可能更适合E序?#8220;拼凑” SQL 语句Q用两次 TOP 命o取得我们所要的分页数据Q例如:Q编?SS2Q?/p> <p>SELECT * FROM<br>     (<br>     SELECT TOP(PageSize) * FROM<br>     (<br>          SELECT TOP (PageSize * PageIndex) *<br>          FROM Articles<br>          ORDER BY PubTime DESC<br>     )<br>     ORDER BY PubTime ASC<br>)<br>ORDER BY PubTime DESC <br>q个的想法就?#8220;掐头d”Q还有不分늚ҎQ这里就不一一列出了?/p> <p>对于 Oracle 数据库,有几处不同严重妨了上面几个Ҏ的实施,比如QOracle 不支?TOP 关键字:不过q个好像q不十分严重Q因为它提供?rownum q个隐式游标Q可以实C TOP cM的功能,如:</p> <p>SELECT TOP 10 ... FROM WHERE ... <br>要写?/p> <p>SELECT ... FROM ... WHERE ... AND rownum <= 10 <br>rownum 是记录序P1Q?Q?...Q,但有一个比较麻烦的事情是:如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序!q样Q这个序号如果不加处理是不合乎用需求的?/p> <p>至于临时表,Oracle 的时表?SQL Server 的有很大不同Q我q没搞懂q个东西Q就不妄加揣了?/p> <p>国内|站中介l?Oracle 分页的资料很,我找C一个国外站点(<a >www.faqts.com</a>Q的一?FAQQ根据这文章的介绍Q可以如下分:Q编?Ora1Q?/p> <p>SELECT * FROM<br>     (<br>     SELECT A.*, rownum r<br>     FROM<br>          (<br>          SELECT *<br>          FROM Articles<br>          ORDER BY PubTime DESC<br>          ) A<br>     WHERE rownum <= PageUpperBound<br>     ) B<br>WHERE r > PageLowerBound; <br></p> <img src ="http://www.aygfsteel.com/yiyan2002/aggbug/111114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yiyan2002/" target="_blank">shadeclipse</a> 2007-04-16 23:46 <a href="http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sql-jdbc的数据{换规?/title><link>http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111113.html</link><dc:creator>shadeclipse</dc:creator><author>shadeclipse</author><pubDate>Mon, 16 Apr 2007 15:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111113.html</guid><wfw:comment>http://www.aygfsteel.com/yiyan2002/comments/111113.html</wfw:comment><comments>http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/yiyan2002/comments/commentRss/111113.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/yiyan2002/services/trackbacks/111113.html</trackback:ping><description><![CDATA[<img height=512 alt="" src="http://www.aygfsteel.com/images/blogjava_net/yiyan2002/sql_java.gif" width=630 border=0> <img src ="http://www.aygfsteel.com/yiyan2002/aggbug/111113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yiyan2002/" target="_blank">shadeclipse</a> 2007-04-16 23:43 <a href="http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>U符转换心得http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111105.htmlshadeclipseshadeclipseMon, 16 Apr 2007 15:21:00 GMThttp://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111105.htmlhttp://www.aygfsteel.com/yiyan2002/comments/111105.htmlhttp://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111105.html#Feedback0http://www.aygfsteel.com/yiyan2002/comments/commentRss/111105.htmlhttp://www.aygfsteel.com/yiyan2002/services/trackbacks/111105.html1 如何字?String 转换成整?int? 

A. 有两个方?

1). int i = Integer.parseInt([String]); ?nbsp;
i = Integer.parseInt([String],[int radix]);

2). int i = Integer.valueOf(my_str).intValue(); 

? 字串转成 Double, Float, Long 的方法大同小? 


2 如何整?int 转换成字?String ? 


A. 有叁U方?

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i); 

3.) String s = "" + i; 

? Double, Float, Long 转成字串的方法大同小?



shadeclipse 2007-04-16 23:21 发表评论
]]>
数据cd使用Q{Q?-http://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111028.htmlshadeclipseshadeclipseMon, 16 Apr 2007 09:36:00 GMThttp://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111028.htmlhttp://www.aygfsteel.com/yiyan2002/comments/111028.htmlhttp://www.aygfsteel.com/yiyan2002/archive/2007/04/16/111028.html#Feedback1http://www.aygfsteel.com/yiyan2002/comments/commentRss/111028.htmlhttp://www.aygfsteel.com/yiyan2002/services/trackbacks/111028.html无论是在得可怜的免费数据库空间或是大型电子商务网站,合理的设计表l构、充分利用空间是十分必要的。这p求我们对数据库系l的常用数据cd有充分的认识。下面我将我的一点心得写出来跟大家分享?/span>

一、数字类?/span>

数字cd按照我的分类Ҏ分ؓ三类Q整数类、小数类和数字类?/span>

我所谓的“数字c?#8221;Q就是指 DECIMAL ?NUMERICQ它们是同一U类型。它严格的说不是一U数字类型,因ؓ他们实际上是数字以字符串Ş式保存的Q他的值的每一?(包括数? 占一个字节的存储I间Q因此这U类型耗费I间比较大。但是它的一个突出的优点是小数的位数固定Q在q算中不?#8220;q”Q所以比较适合用于“h”?#8220;金额”q样对精度要求不高但准确度要求非帔R的字Dc?/span>

数c,xQҎcdQ根据精度的不同Q有 FLOAT ?DOUBLE 两种。它们的优势是精度QFLOAT 可以表示l对值非常小、小到约 1.17E-38 (0.000...0117Q小数点后面?37 个零) 的小敎ͼ?DOUBLE 更是可以表示l对值小到约 2.22E-308 (0.000...0222Q小数点后面?307 个零) 的小数。FLOAT cd?DOUBLE cd占用存储I间分别?4 字节?8 字节。如果需要用到小数的字段Q精度要求不高的Q当然用 FLOAT 了。可是说句实在话Q我?#8220;民用”的数据,哪有要求_ֺ那么高的呢?q两U类型至今我没有用过――我q没有遇到适合于用它们的事例?/span>

用的最多的Q最值得_打l算的,是整数类型。从只占一个字节存储空间的 TINYINT 到占 8 个字节的 BIGINTQ挑选一?#8220;够用”q且占用存储I间最的cd是设计数据库时应该考虑的。TINYINT、SMALLINT、MEDIUMINT、INT ?BIGINT 占用存储I间分别?1 字节? 字节? 字节? 字节?8 字节Q就无符L整数而言Q?span style="COLOR: rgb(255,0,0)">q些cd能表C的最大整数分别ؓ 255?5535?6777215?294967295 ?18446744073709551615。如果用来保存用Lq龄 (举例来说Q数据库中保存年龄是不可取的)Q用 TINYINT 够了;九城的《纵横》里Q各Ҏ能|?SMALLINT 也够了;如果要用作一个肯定不会超q?16000000 行的表的 AUTO_INCREMENT ?IDENTIFY 字段Q当然用 MEDIUMINT 不用 INTQ试惻I每行节约一个字节,16000000 行可以节U?10 兆多呢?/span>

二、日期时间类?/span>

日期和时间类型比较简单,无非?DATE、TIME、DATETIME、TIMESTAMP ?YEAR {几个类型。只Ҏ期敏感,而对旉没有要求的字D,q DATE 而不?DATETIME 是不用说的了Q单独用时间的情况也时有发生――?TIMEQ但最多用到的q是?DATETIME。在日期旉cd上没有什么文章可做,q里׃再详q?/span>

三、字W?(? cd

不要以ؓ字符cd是 CHARQCHAR ?VARCHAR 的区别在?CHAR 是固定长度,只要你定义一个字D| CHAR(10)Q那么不Z存储的数据是否达C 10 个字节,它都要占?10 个字节的I间Q?VARCHAR 则是可变长度的,如果一个字D可能的值是不固定长度的Q我们只知道它不可能过 10 个字W,把它定义?VARCHAR(10) 是最合算的,VARCHAR cd的占用空间是它的值的实际长度 +1。ؓ什么要 +1 呢?q一个字节用于保存实际用了多大的长度?/span>从这?+1 中也应该看到Q如果一个字D,它的可能值最长是 10 个字W,而多数情况下也就是用C 10 个字W时Q用 VARCHAR ׃合算了:因ؓ在多数情况下Q实际占用空间是 11 个字节,比用 CHAR(10) q多占用一个字节?/span>

举个例子Q就是一个存储股名U和代码的表Q股名U绝大部分是四个字的Q即 8 个字节;股票代码Q上L是六位数字,深圳的是四位数字。这些都是固定长度的Q股名U当然要?CHAR(8)Q股代码虽然是不固定长度,但如果?VARCHAR(6)Q一个深圳的股票代码实际占用I间?5 个字节,而一个上L股票代码要占?7 个字节!考虑CL股票数目比深圳的多,那么?VARCHAR(6) ׃?CHAR(6) 合算了?/span>
虽然一?CHAR ?VARCHAR 的最大长度可以到 255Q我认ؓ大于 20 ?CHAR 是几乎用不到的――很有大于 20 个字节长度的固定长度的东东吧Q不是固定长度的q VARCHAR。大?100 ?VARCHAR 也是几乎用不到的――比q更大的?TEXT 好了。TINYTEXTQ最大长度ؓ 255Q占用空间也是实际长?+1QTEXTQ最大长?65535Q占用空间是实际长度 +2QMEDIUMTEXTQ最大长?16777215Q占用空间是实际长度 +3QLONGTEXTQ最大长?4294967295Q占用空间是实际长度 +4。ؓ什?+1?2?3?4Q你要是q不知道p?PP 了。这些可以用在论坛啊、新dQ什么的Q用来保存文章的正文。根据实际情늚不同Q选择从小到大的不同类型?/span>

四、枚丑֒集合cd

枚D (ENUM) cdQ最多可以定?65535 U不同的字符串从中做出选择Q只能ƈ且必选择其中一U,占用存储I间是一个或两个字节Q由枚D值的数目军_Q集?(SET) cdQ最多可以有 64 个成员,可以选择其中的零个到不限定的多个Q占用存储空间是一个到八个字节Q由集合可能的成员数目决定?/span>

举个例子来说Q在 SQLServer 中,你可以节U到用一?BIT cd来表C性别 (??Q但 MySQL 没有 BITQ用 TINTINT 吗?不,可以?ENUM('帅哥','眉')Q只有两U选择Q所以只需一个字节――跟 TINYINT 一样大Q但却可以直接用字符?'帅哥' ?'眉' 来存取。真是太方便啦!

好了QMySQL 的数据类型介l得差不多,我的建库{略也随着介绍数据cd介绍l大家一些。但q只是其中一部分Q篇q有限,不能再细_其他的,靠各h在对数据cd理解的基上,多多实践、多多讨论?br>




shadeclipse 2007-04-16 17:36 发表评论
]]>
վ֩ģ壺 ƽ| ƽ½| | Ϫ| | ֶ| | | | | ͬ| Դ| | Ϫ| κ| | | ƺ| | ƽ| | Դ| ʦ| Զ| | ɿ| ɽ| | | | ̫| ԭ| | ƽ| ɽ| ӳ| п| ȷɽ| Ĵʡ| | |