《MS SQL Server 2000管理员手册》系列——23. 从因特网存取 Microsoft SQL Server

23. 从因特网存取 Microsoft SQL Server
因特网程序设计概念
使用 ISAPI 存取 SQL Server
使用 ASP 存取 SQL Server
使用 XML 存取 SQL Server
本章总结
在 Microsoft Windows 2000 操作系统平台上使用 Microsoft SQL Server 2000,可以让我们轻易把 SQL Server 数据库「出版(publish)」到因特网上。Windows 2000 与 Microsoft Internet Information Server(IIS)5的组合提供了包罗万象的组件与接口,这些工具与 SQL Server 2000 数据库连接与互动。本章将介绍从因特网上存取 Microsoft SQL Server 的基本观念。由于本书并非讨论程序发展的专书,因此仅提供数种不同存取方式的概观。相关程序设计的细节部分,市面上有许多不错的书籍可供参考。
本章将从因特网程序设计的概念开始,并介绍 Windows 2000 中预设的因特网程序设计界面。接着会介绍 ODBC 程序设计与 ADO 的基础观念,以及存取 SQL Server 的几种方法,包括 ISAPI 与 ASP。最后我们会讨论 XML,了解何谓 XML 以及使用方式。本章涵盖许多主题,相信应有助于了解因特网程序设计的基本工具。
因特网程序设计概念
 
本节将学到 SQL Server 与因特网应用程序连接的基本观念。这些应用程序必须包含两个不同的接口,以执行不同的任务:一个接口用于使用者,另一个则用于 SQL Server。本节将介绍应用程序与 SQL Server 之间的连接方式,包括 IIS 与 ODBC。
以 Windows 2000 与 IIS 5 作为因特网平台
 
利用 Windows 2000 与 IIS 5 作为因特网应用程序的平台,可让程序开发人员淋漓尽致地存取 SQL Server 的各种功能。程序开发人员可以利用的功能包括整合数据库存取的服务器端 script 语言、开放式数据库连接(Open Database Connectivity,ODBC)数据来源、OLE DB(一套用来存取普遍性数据的强大组件对象模型(Component Object Model,COM)接口)、以及一种被称为Internet Server API(ISAPI)的 Web 应用程序架构,最后一种架构为传统 CGI(Common Gateway Interface,共同网关接口)应用程序的强大竞争对手。
使用 ODBC 数据来源
 
就 Microsoft Windows 平台来说,ODBC 无疑是数据库接口的最佳选择。透过 ODBC,程序开发人员可以存取的资料来源类型相当广泛,从最单纯的纯文本文件到 Microsoft Excel 数据表,甚至 Microsoft Access 及 SQL Server 数据库均可存取。ODBC 提供数据库程序设计师一个通用且功能强大的抽象层级。
发展使用 SQL Server 的因特网应用程序并不需要什么特殊的手段。要透过 Web 服务器来存取 SQL Server,ODBC 数据来源已经提供了主要的一些方法。它们可以透过被称作 ActiveX Data Objects(ADO) 的一个 OLE DB COM 对象集合来完成这类工作。ADO 提供一个对象导向接口(object-oriented-interface)来存取 ODBC 数据来源,这种方法比用 ODBC C API 来得简单。利用 ADO,程序开发人员可以初始化一些简单的对象来代表数据库联机、命令(例如 SQL 陈述式或预存程序)、以及数据录集(recordsets),其类似于客户端数据指针并且具有近乎服务器端数据库数据指针的功能性。所有的这些数据库对象与界面让我们在因特网上发展使用 SQL Server 的程序变得简单,尤其是 ODBC 中更提供了一些强大的功能,例如 联机共享(connection pooling) 。
一个以 ODBC 为基础的 Web 应用程序,如何适当地利用联机共享是最要紧的问题之一。联机共享允许一个中阶的应用程序可以维护并分享与 SQL Server 数据库的联机。共享的联机在指定的时间周期内将保持开放的状态,并可分享给数个使用者。建立联机通常是一个资源密集的作业并且造成数据库服务器的负担。由于 Web 服务器与关联的因特网应用程序操纵着绝大多数的流量,透过数据库联机共享便可将建立联机以及(尤其是)重建联机的情况降至最低。如此一来,使用者联机时间可以更快,也降低了数据库服务器的资源消耗。在预设的状况下,IIS 5.0 会动态地分配数据库联机共享。
________________________________________
说明
当使用 ODBC 数据来源与 ADO 时,应以每一分页为基础使用 ADO 联机对象。相较于使用整个工作阶段对象,若在分页需要时才建立联机对象,并在不需要时立即释放它,数据库联机可更快地释放回共享状态以便其它联机使用。如此可大大地降低因特网应用程序使用者等待联机的时间。
________________________________________
选择网络链接库
 
虽然 SQL Server 可以支持命名管道及 Banyan Vines 等数种不同的网络链接库,但当您在因特网上部署一个 SQL Server 数据库时仍应使用 TCP/IP 网络链接库。在 SQL Server 网络链接库的众多选择中,TCP/IP 能提供绝佳的网络适应性,联机速度与效能。(网络链接库已在 第 11 章 解释。)
若使用 TCP/IP 作为网络链接库,SQL Server 安全性模式会被限制在只能使用标准安全性。这种模式使用 SQL Server 登入来验证。TCP/IP 并不支持整合式安全性,其使用 Windows 2000 账户来加以验证,能提供较佳的安全性以及较有效率的方法来维护 SQL Server 系统主控台里账户的集中管理。不过,使用整合式安全性相对在某些层面上也会恶化系统的效能。
首先,若使用整合式安全性,ODBC联机共享的效力就会严重受限。采取整合式安全性时,每个透过Web服务器验证进入数据库服务器的使用者必须使用唯一的登入。如此一来,联机共享所能提供的益处全然无效,因为共享的联机会被拒绝,要联机就必须使用与现存联机相同的登入与密码。
其次,以命名管道网络链接库为基础的联机多半与整合式安全性一起使用,这种联机一般说来会较为缓慢。使用命名管道还会造成联机共享的一些问题。您可以将匿名账户对应到一个有效的 SQL Server 登入,借着这个方法在命名管道连接中使用联机共享,不过多数 Web 服务器会采取挑战与响应验证模式或基本验证模式以强制单独联机至 SQL Server。结果就是否定了联机共享可提供的任何效能改善。
如果 SQL Server 与 Web 服务器是分装在不同的机器上,使用整合式安全性也会对验证模式的选择有所限制。挑战与响应验证模式将无法使用,能选择的只有基本验证模式与匿名验证模式。在因特网上让一个安全系统允许匿名验证绝不是明智的做法,而基本验证,一如刚刚所说的,则会让联机共享无法发挥。
使用 ISAPI 存取 SQL Server
 
ISAPI 是一组函式呼叫的集合,这些函式呼叫是设计来提供给因特网应用程序开发人员一个可以延伸 IIS 机能的强大工具。ISAPI 应用程序能提供卓越的效能与低阶的控制。事实上,ISAPI 应用程序在 IIS 上会比其它的 Web 应用程序来得更有效率。此外,透过 ISAPI,程序开发人员可以应用 Win32 API 的所有功能。
ISAPI 应用程序的动态链接库(DLL)有两种类别:扩充程序(extension)和筛选器(filter)。由于 DDL 是典型的编译过的程序代码,执行的速度比直译的程序代码或 script 语言要快很多。如果您的因特网应用程序在执行速度与延展性上要求很高,那么即使在程序设计与修改上会花点功夫,ISAPI 扩充程序与筛选器仍是最佳的选择。接下来的几节里我们会详细介绍 ISAPI 扩充程序与筛选器,然后解释一下 ISAPI 应用程序的设计与使用上的限制。
ISAPI 扩充程序
 
ISAPI 扩充程序的执行方式与 DLL 相同,它们会被加载到 IIS 处理空间或是与其分开的另外一个处理空间。当您在 Web 服务器上安装 ISAPI 扩充程序时可以选择加载的方式。如果应用程序不太稳定,扩充程序应该被加载到分开的处理空间,以避免一个错误的 ISAPI 扩充程序毁了整个 Web 服务器。如果 ISAPI 扩充程序还在试验阶段或是尚未完整测试,这种事是有可能发生的。
要呼叫一个 ISAPI 扩充程序,可利用 URL 中.dll的虚拟路径,例如: http://www.mydomain.com/SampleISAPI.dll 。
当我们利用这种方式呼叫 ISAPI 扩充程序后,如果它尚未被加载,则此 ISAPI 扩充程序会被加载到内存中,并掌控整个要求,而 IIS 就变成服务器与客户端浏览器之间一个单纯传送数据的媒介。这种应用的一个例子是因特网站台上的自订搜寻引擎。
ISAPI 筛选器
 
ISAPI 筛选器的执行方式也与 DLL 相同,不过它们在 Web 服务器启动时便加载到 IIS 处理空间,并且保留在内存中直到服务器停止。ISAPI 筛选器可以设定来接收任何数量的筛选器事件通知,这些通知讯息在 IIS 处理每个 HTTP 要求及产生 HTTP 响应时都会出现。当一个 ISAPI 筛选器被加载后,筛选器会与 IIS 通讯,应该要通知筛选器的事件便会透过一种特殊的结构来传输。每当有类似的事件发生时,对该事件注册(registered)为应通知的筛选器便会收到一个事件通知讯息。
ISAPI 是一个功能相当强大的工具,可用来执行压缩或加密,自订的验证,Web 流量日志与分析,甚至服务器端 scripting engine。您可以建立一个 ISAPI 筛选器检查每个传送至客户端的 Web 网页设定,搜寻特殊的标签,并修改它们使其拥有一致的外观,就如同一个 ASP 网页所做的一样。
ISAPI 筛选器能够检查每个进来与出去的数据流,这种能力使它成为一个好用且很有弹性的工具。不过,如果使用太多的 ISAPI 筛选器,整个网站的效能与延展性就会彻底降低。举例来说,如果每个单一的输入与输出网页都需要筛选,就有可能因筛选器的过度活动而造成系统严重的负担。当您在决定筛选器要执行的工作时,应特别注意的是如何将其工作最小化。例如,在一个自订的加密结构里,筛选器应该只有在 IIS 需要从客户端读取数据或将数据写入到客户端时才执行加密。如此便可减少 ISAPI 筛选器应完成的工作数量。
ISAPI 的限制
 
ISAPI 技术虽然可以提供最佳的有效效能,但它也有一些缺点。由于写作 ISAPI 扩充程序与筛选器大多利用 C 或 C++,因此开发 ISAPI 扩充程序与筛选器会比开发 script 网页来得耗时,维护也会比较困难。当 ISAPI 扩充程序与筛选器需要修改时,整个应用程序都需要重新编译,而不只是替换档案。再者,即使 ISAPI 扩充程序与筛选器的执行速度一般说来会比与其功用类似的服务器端 script 程序来得快,但它们无法保证能提供最理想的延展性。最后,某些程序设计抽象过程(大部分服务器端 script 程序开发人员都认为该有的),特别是 session 对象,令人惊讶的是在 ISAPI 程序设计中竟然没有。比起服务器端 script 的程序设计,ISAPI 程序设计可说是相当低阶。
使用 ASP 存取 SQL Server
 
ASP 是一个服务器端 script 环境,程序开发人员可以利用它来建立互动的、动态的网页,进而发展出功能强大的 Web 应用程序。一个 ASP 档案是一个扩展名为 .asp 的纯文本文件,里面可包含任何文字组合、HTML 卷标、以及服务器端 script。虽然 ASP 纯粹执行于服务器端,程序开发人员仍然可以在他们的 HTML 码中包含客户端 script,并且透过用户的浏览器来执行而不是透过 Web 服务器来处理。
当 Web 服务器接收到一个对 ASP 档案的要求,Web 服务器会执行档案中包含在特殊标签内的服务器端 sript 并建立一个网页。产出的结果是纯粹的 HTML 档案,其中可包含刚刚提到的客户端 sript 组件。这个档案接着被传送到客户端的浏览器,浏览器再将这些组件执行或表现在屏幕上。不会有任何 ASP 原始码被传送到客户端。它们的分析与执行全都在服务器上完成。使用者并不会见到建立网页的 script 命令,他们看到的是这些命令建立出来的东西。
除了包含服务器端 script,ASP 档案也可以包含对 COM 组件的呼叫,以执行许多不同的任务,包括数据库存取。此外,也可执行横跨数种不同发展环境的商业逻辑对象。
ASP 在语言采用上相当中立。程序开发人员可以利用他们熟悉的 script 语言,如 Microsoft Visual Basic Scripting Edition(VBScript)、Microsoft JScript 或 Perl,来开发 ASP 档案,而发现到开发过程并不困难。ASP 网页可以使用已安装在 Web 服务器中并与 COM 兼容的 scripting engine 支持的 script 语言。 scripting engine 是一种程序,可用来处理以特定语言写成的命令。IIS 包括的 scripting engine 支持常用的 VBScript(以 Visual Basic 为基础)及 JScript(欧洲计算机制造商协会(European Computer Manufacturers Association,ECMA)262 语言规格的 Microsoft 版本)语言。从协力厂商那里可以取得像是 Perl 这类语言的 scripting engine。
ASP 具有一些超越传统 CGI 应用程序的优点。之前已经提到,对 VBScript 或 JScript 已经相当熟悉的程序开发人员将不需要学习新的程序语言,像是 C 或 Perl。ASP 提供了一些针对使用者工作阶段,要求及响应处理的对象,这使得 ASP 的功能更为强大,并且让个人化的内容开发更为容易。此外,比起利用 C 语言开发并编译的 CGI 应用程序,ASP 仅需极少的时间与程序代码便可处理与收集 HTML 窗体信息,并将其储存在数据库里。由于所有的 ASP 程序代码都是内嵌于 HTML 文件中,因此 ASP 的维护也相当容易。
使用 XML 存取 SQL Server
 
XML 是 Extensible Markup Language (延伸标记语言)的缩写,但 XML 实际上并不是一种语言。它其实是一种系统,可用来定义其它的语言,以及表达数据结构的通用语法。不同于仅仅用来指明 Web 文件呈现方式的 HTML 标记语言,XML 指定了文件的内容与结构。所谓 结构化数据(structured data) ,指的是依其内容或使用方式标记起来的数据。
XML 天生具有可延伸的特性。程序开发人员利用 XML 来定义 Web 网页内的数据,并依其需求限定细节的层级。举例来说,程序开发人员可使用 标签来描述书籍与出版的相关信息。如果需要额外的定义,程序开发人员可以增加 <RETAILPRICE>、<PUBLISHER>,或甚至 <ISBN> 标签。使用 XML 类似于在数据库中建立一份数据表,它必须决定应用程序需要的数据元素,就彷佛决定需要哪些数据行才能完整地描述数据表中的数据列。 <br>由于 XML 并不描述呈现方式,因此一个 XML 文件只要写作一次便可使用不同的装置以各种方式来显示,包括 Web 浏览器、行动电话、汽车的车用显示器等等。这些装置可能有各自的显示需求:计算机屏幕也许是 800×600 像素,而一个无线的因特网装置却可能只支持 200×200 像素。由于 XML 仅定义了文件的结构与内容,这些装置只要利用各自整合的 XML 浏览器,便可将文件依其特定的显示需求呈现出来。不同于 HTML 文件,XML 文件在编写后可以用得更为长久,不会因为新的显示技术而很快被淘汰。 <br>XML 真正有用的地方在于它可以利用 文件对象模型(Document Object Model,DOM) 来产生互动的功能。DOM 是一个接口,用来定义存取文件中数据的机制。使用 DOM,程序开发人员可以利用标准化的方式撰写动态的内容。举例来说,程序开发人员可以使用 DOM 让内容某一特定部分在一些情况下产生行为。使用这种方法可以让文件增加一些效果,例如可以让文字的某一部份-比方说,一个在 XML 中已被称为 <TITLE> 的卷标标记起来的书名-在使用者的鼠标光标滑过时会改变颜色,表示说这是一个指向某一家在线书店的超级链接。要利用目前专门的 DOM 与样式表规格来达成这类效果并不容易,不过由 W3C 制定的新的 DOM 标准将可帮助 XML 程序开发人员维护真正的平台独立。 <br>XML 也很快地成为交换数据与文件的标准。XML 可用来在因特网上相异的数据库系统之间交换数据。举例来说,一家汽车零件供货商可利用 XML 与汽车制造商交换存货数据,即使这两家厂商可能是在两种不同的平台上使用两种完全不同的数据库系统。由于 XML 描述了数据结构的方式,因此它可以毫无问题地成为将两种既不相同也不兼容的系统之间的桥梁。 <br>本章总结 <br>  <br>在本章中,您已学习到在 Windows 2000 操作系统平台上利用 SQL Server 与 IIS 5 来开发因特网应用程序的相关基础。可用来开发应用程序的选择相当多,包括像是 ASP 这类 script 环境,或是如 ISAPI 扩充程序与筛选器这类编译程序代码,每种选择都有其各自的优点与缺点。当您在选择一个工具开发您的大型因特网应用程序,应特别注意每一种选择的交易限制以避免日后发生问题。 </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1287958641260933120"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(SQLServer2000概述)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1950232820773351424.htm" title="移动端城市区县二级联动选择功能实现包" target="_blank">移动端城市区县二级联动选择功能实现包</a> <span class="text-muted">good2know</span> <div>本文还有配套的精品资源,点击获取简介:本项目是一套为移动端设计的jQuery实现方案,用于简化用户在选择城市和区县时的流程。它包括所有必需文件:HTML、JavaScript、CSS及图片资源。通过动态更新下拉菜单选项,实现城市到区县的联动效果,支持数据异步加载。开发者可以轻松集成此功能到移动网站或应用,并可基于需求进行扩展和优化。1.jQuery移动端解决方案概述jQuery技术简介jQuery</div> </li> <li><a href="/article/1950228031117258752.htm" title="深入解析JVM工作原理:从字节码到机器指令的全过程" target="_blank">深入解析JVM工作原理:从字节码到机器指令的全过程</a> <span class="text-muted"></span> <div>一、JVM概述Java虚拟机(JVM)是Java平台的核心组件,它实现了Java"一次编写,到处运行"的理念。JVM是一个抽象的计算机器,它有自己的指令集和运行时内存管理机制。JVM的主要职责:加载:读取.class文件并验证其正确性存储:管理内存分配和垃圾回收执行:解释或编译字节码为机器指令安全:提供沙箱环境限制恶意代码二、JVM架构详解JVM由三个主要子系统组成:1.类加载子系统类加载过程分为</div> </li> <li><a href="/article/1950227023859347456.htm" title="Linux系统配置(应用程序)" target="_blank">Linux系统配置(应用程序)</a> <span class="text-muted">1风天云月</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F/1.htm">应用程序</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85/1.htm">编译安装</a><a class="tag" taget="_blank" href="/search/rpm/1.htm">rpm</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a> <div>目录前言一、应用程序概述1、命令与程序的关系2、程序的组成3、软件包封装类型二、RPM1、RPM概述2、RPM用法三、编译安装1、解包2、配置3、编译4、安装5、启用httpd服务结语前言在Linux中的应用程序被视为将软件包安装到系统中后产生的各种文档,其中包括可执行文件、配置文件、用户手册等内容,这些文档被组织为一个有机的整体,为用户提供特定的功能,因此对于“安装软件包”与“安装应用程序”这两</div> </li> <li><a href="/article/1950213272120651776.htm" title="Redis + Caffeine 实现高效的两级缓存架构" target="_blank">Redis + Caffeine 实现高效的两级缓存架构</a> <span class="text-muted">周童學</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>Redis+Caffeine实现高效的两级缓存架构引言在现代高并发系统中,缓存是提升系统性能的关键组件之一。传统的单一缓存方案往往难以同时满足高性能和高可用性的需求。本文将介绍如何结合Redis和Caffeine构建一个高效的两级缓存系统,并通过三个版本的演进展示如何逐步优化代码结构。项目源代码:github地址、gitee地址两级缓存架构概述两级缓存通常由本地缓存(如Caffeine)和分布式缓</div> </li> <li><a href="/article/1950201171369062400.htm" title="Zread.AI:一键将GitHub项目转化为结构化中文手册的AI代码维基工具" target="_blank">Zread.AI:一键将GitHub项目转化为结构化中文手册的AI代码维基工具</a> <span class="text-muted"></span> <div>Zread.AI:一键将GitHub项目转化为结构化中文手册的AI代码维基工具文章来源:PoixeAI文章目录Zread.AI工具概述核心功能优势亮点典型应用场景上手指南注意事项官网地址Zread.AI由智谱Z.ai推出,是一款面向开发者的AI代码维基工具,可在几秒内把任何公开GitHub仓库转化为结构化中文手册,并通过独家Buzz面板聚合commits、issues与相关新闻,让项目脉搏一目了然</div> </li> <li><a href="/article/1950199279641489408.htm" title="Android通知(Notification)全面解析:从基础到高级应用" target="_blank">Android通知(Notification)全面解析:从基础到高级应用</a> <span class="text-muted"></span> <div>一、Android通知概述通知(Notification)是Android系统中用于在应用之外向用户传递信息的重要机制。当应用需要告知用户某些事件或信息时,可以通过通知在状态栏显示图标,用户下拉通知栏即可查看详细信息。这种机制几乎被所有现代应用采用,用于推送新闻、消息、广告等内容3。与Toast相比,Notification的优势在于:可以长时间停留在通知栏,适合内容较多且需要持久展示的信息支持丰</div> </li> <li><a href="/article/1950194742100815872.htm" title="用代码生成艺术字:设计个性化海报的秘密" target="_blank">用代码生成艺术字:设计个性化海报的秘密</a> <span class="text-muted"></span> <div>本文围绕“用代码生成艺术字:设计个性化海报的秘密”展开,先概述代码生成艺术字在海报设计中的独特价值,接着介绍常用的代码工具(如HTML、CSS、JavaScript等),详细阐述从构思到实现的完整流程,包括字体样式设计、动态效果添加等,还分享了提升艺术字质感的技巧及实际案例。最后总结代码生成艺术字的优势,为设计师提供打造个性化海报的实用指南,助力提升海报设计的独特性与吸引力,符合搜索引擎SEO标准</div> </li> <li><a href="/article/1950190326673108992.htm" title="Spark SQL架构及高级用法" target="_blank">Spark SQL架构及高级用法</a> <span class="text-muted">Aurora_NeAr</span> <a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>SparkSQL架构概述架构核心组件API层(用户接口)输入方式:SQL查询;DataFrame/DatasetAPI。统一性:所有接口最终转换为逻辑计划树(LogicalPlan),进入优化流程。编译器层(Catalyst优化器)核心引擎:基于规则的优化器(Rule-BasedOptimizer,RBO)与成本优化器(Cost-BasedOptimizer,CBO)。处理流程:阶段输入输出关键动</div> </li> <li><a href="/article/1950179109170638848.htm" title="SVG 在线编辑器" target="_blank">SVG 在线编辑器</a> <span class="text-muted">lly202406</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>SVG在线编辑器引言随着互联网技术的发展,矢量图形在网页设计和数据可视化中扮演着越来越重要的角色。SVG(可缩放矢量图形)因其文件小、无限缩放不模糊的特性,成为了网页设计中常用的图形格式。SVG在线编辑器的出现,为设计师和开发者提供了极大的便利,使得图形的创建和修改变得更加高效。本文将详细介绍SVG在线编辑器的功能、应用场景以及发展趋势。SVG在线编辑器概述SVG在线编辑器是一种基于网页的图形编辑</div> </li> <li><a href="/article/1950178477592342528.htm" title="前端数据库:IndexedDB从基础到高级使用指南" target="_blank">前端数据库:IndexedDB从基础到高级使用指南</a> <span class="text-muted"></span> <div>文章目录前端数据库:IndexedDB从基础到高级使用指南引言一、IndexedDB概述1.1什么是IndexedDB1.2与其他存储方案的比较二、基础使用2.1打开/创建数据库2.2基本CRUD操作添加数据读取数据更新数据删除数据三、高级特性3.1复杂查询与游标3.2事务高级用法3.3性能优化技巧四、实战案例:构建离线优先的待办事项应用4.1数据库设计4.2同步策略实现五、常见问题与解决方案5.</div> </li> <li><a href="/article/1950165742594879488.htm" title="在Ubuntu24.04搭建VLLM, SGLang 和 LangChain环境" target="_blank">在Ubuntu24.04搭建VLLM, SGLang 和 LangChain环境</a> <span class="text-muted">小熊冲!冲!冲!</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1/1.htm">毕业设计</a> <div>在Ubuntu24.04搭建VLLM,SGLang和LangChain环境[!NOTE]概述整片文章是笔者的回忆(白天忙碌了一天,晚上进行的总结),所以有些地方的描述可能有误差,本文更多的是大体方向问题,细节步骤不是本文的重点,见谅!!!如何安装Ubuntu24.04制作启动U盘,作者使用的是rufus.exe工具下载Ubuntu24.04的ISO镜像使用rufus.exe工具刷入Ubuntu22</div> </li> <li><a href="/article/1950150865553780736.htm" title="【数据分析】抓包工具的定义常见类型分类使用场景及注意事项" target="_blank">【数据分析】抓包工具的定义常见类型分类使用场景及注意事项</a> <span class="text-muted"></span> <div>抓包工具的定义常见类型分类使用场景及注意事项-CSDN直播抓包工具的定义常见类型分类使用场景及注意事项抓包工具的定义常见类型分类使用场景及注意事项抓包工具概述抓包工具顾名思义是一种用于捕获并分析网络数据包的软件或硬件工具它能够在数据传输过程中截取并记录网络流量让用户能够深入理解并排查网络问题这类工具的用途广泛从网络安全测试到应用程序调试都离不开抓包工具的帮助在众多的抓包工具中WiresharkFi</div> </li> <li><a href="/article/1950149229095743488.htm" title="推客小程序系统开发全解析:从概念到落地的完整指南" target="_blank">推客小程序系统开发全解析:从概念到落地的完整指南</a> <span class="text-muted">ywyy6798</span> <a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E7%B3%BB%E7%BB%9F/1.htm">推客系统</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/1.htm">推客系统开发</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">推客小程序</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E5%B0%8F%E7%A8%8B%E5%BA%8F%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/1.htm">推客小程序系统开发</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E5%88%86%E9%94%80/1.htm">推客分销</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2%E5%88%86%E9%94%80%E7%B3%BB%E7%BB%9F/1.htm">推客分销系统</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E5%AE%A2/1.htm">推客</a> <div>一、推客小程序系统概述在当今移动互联网时代,社交电商已成为商业领域的重要增长点。推客小程序系统作为一种创新的社交分销工具,正逐渐改变传统电商的营销模式。推客(社交推广客)小程序本质上是一种基于微信生态的社交电商解决方案,它通过用户裂变和社交分享机制,实现产品的高效推广与销售转化。推客小程序系统的核心价值在于其"三级分销"机制,这种机制允许用户通过分享商品链接获取佣金,同时发展下级推广员形成分销网络</div> </li> <li><a href="/article/1950143305194991616.htm" title="小架构step系列25:错误码" target="_blank">小架构step系列25:错误码</a> <span class="text-muted">秋千码途</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1概述一个系统中,可能产生各种各样的错误,对这些错误进行编码。当错误发生时,通过这个错误码就有可能快速判断是什么错误,不一定需要查看代码就可以进行处理,提高问题处理效率。有了统一的错误码,还可以标准化错误信息,方便把错误信息纳入文档管理和对错误信息进行国际化等。没有错误码的管理,开发人员就会按自己的理解处理这些错误。有些直接把堆栈直接反馈到前端页面上,使用看不懂这些信息体验很差,也暴露了堆栈信息有</div> </li> <li><a href="/article/1950141537937584128.htm" title="USRP X440" target="_blank">USRP X440</a> <span class="text-muted">东枫科技</span> <a class="tag" taget="_blank" href="/search/fpga%E5%BC%80%E5%8F%91/1.htm">fpga开发</a> <div>产品概述USRPX440是EttusResearch推出的高性能、多通道、宽带软件定义无线电(SDR)系统。基于XilinxZynqUltraScale+RFSoC架构,它提供高密度、相干性的信号收发能力,帮助您快速构建雷达、电子战(EW)、卫星通信(SATCOM)及毫米波原型系统。核心特性8路独立可调谐Tx/Rx通道支持高达8路发射和8路接收,通道间时钟共享实现相位相干(同设备内< 1° RMS</div> </li> <li><a href="/article/1950131322404007936.htm" title="【计算机网络】细说IP" target="_blank">【计算机网络】细说IP</a> <span class="text-muted">问道飞鱼</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>文章目录概述IP地址的组成IP地址的分类IP地址的作用分类一、A类IP地址二、B类IP地址三、C类IP地址四、D类IP地址五、E类IP地址协议报文子网掩码一、定义与功能二、表示方法三、子网掩码与IP地址的关系四、子网掩码的设置与配置五、实例说明IPv6一、定义与背景二、地址格式与特点三、优势与功能四、过渡与部署五、应用与发展IPv6协议报文有了IPv6还需要子网掩码吗概述IP,全称Internet</div> </li> <li><a href="/article/1950112039502409728.htm" title="H5UI微信小程序前端框架实战指南" target="_blank">H5UI微信小程序前端框架实战指南</a> <span class="text-muted">ai</span> <div>本文还有配套的精品资源,点击获取简介:H5UI是一个为微信小程序开发设计的前端框架,基于H5技术,提供简洁高效的组件库。框架集成了丰富的UI元素,如按钮、表格、导航栏等,简化了界面布局和交互的实现。通过安装、引入、使用组件和事件绑定四个步骤,开发者可以轻松构建功能齐全的应用。了解性能优化等注意事项对于高效开发同样重要。1.微信小程序前端开发框架介绍微信小程序概述微信小程序是微信官方推出的一种无需下</div> </li> <li><a href="/article/1950090479861297152.htm" title="Gradient-Adaptive Policy Optimization:Towards Multi-Objective Alignment of Large Language Models" target="_blank">Gradient-Adaptive Policy Optimization:Towards Multi-Objective Alignment of Large Language Models</a> <span class="text-muted">樱花的浪漫</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/1.htm">大模型与智能体</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E6%8A%97%E7%94%9F%E6%88%90%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%8A%A8%E4%BD%9C%E8%AF%86%E5%88%AB/1.htm">对抗生成网络与动作识别</a><a class="tag" taget="_blank" href="/search/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/1.htm">强化学习</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>2025.acl-long.549.pdfhttps://aclanthology.org/2025.acl-long.549.pdf1.概述大型语言模型(LLMs)(Anthropic,2023;OpenAI,2024)已经在广泛的实际应用中展示了显著的能力(Bubecketal.,2023),包括内容创作(Yuanetal.,2022)、编程辅助(Chenetal.,2021;Gaoetal.</div> </li> <li><a href="/article/1950086067768061952.htm" title="人工智能概念之九:深度学习概述" target="_blank">人工智能概念之九:深度学习概述</a> <span class="text-muted"></span> <div>文章目录相关文章一、深度学习的定位:AI时代的基石技术1.1技术生态全景图1.2技术革命的催化剂二、深度学习的双面性:性能优势与技术挑战2.1技术优势全景扫描2.2技术挑战深度剖析三、技术演进时间轴:70年的厚积薄发四、主流框架生态对比五、未来演进方向相关文章人工智能概念之二:人工智能核心概念:网页链接一、深度学习的定位:AI时代的基石技术1.1技术生态全景图深度学习处于人工智能(AI)技术金字塔</div> </li> <li><a href="/article/1950082036777676800.htm" title="Uncovering Bias in Large Vision-Language Models at Scale with Counterfactuals" target="_blank">Uncovering Bias in Large Vision-Language Models at Scale with Counterfactuals</a> <span class="text-muted">樱花的浪漫</span> <a class="tag" taget="_blank" href="/search/%E5%9B%A0%E6%9E%9C%E6%8E%A8%E6%96%AD/1.htm">因果推断</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%B8%8E%E6%99%BA%E8%83%BD%E4%BD%93/1.htm">大模型与智能体</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a> <div>UncoveringBiasinLargeVision-LanguageModelsatScalewithCounterfactuals-ACLAnthologyhttps://aclanthology.org/2025.naacl-long.305/1.概述最近,大型视觉-语言模型(LVLMs)因其能够将语言模型(LLMs)的对话能力扩展到多模态领域而受到欢迎。具体来说,LVLMs可以根据文本提</div> </li> <li><a href="/article/1950060581377601536.htm" title="周一 2021-05-17 06:29 - 22:00 雨 08h20m" target="_blank">周一 2021-05-17 06:29 - 22:00 雨 08h20m</a> <span class="text-muted">么得感情的日更机器</span> <div>一时间记录二概述早上醒来,看小说,洗漱,吃饭上午论文,吃饭下午小说,午休,总结,打疫苗,吃饭晚上日常任务,小说,洗漱,睡觉三总结(Summary)今天是论文和打疫苗的一天,总体感觉良好,学习感觉没咋学四反思今天收获了什么?哪里做的不好?做得不好的原因是什么?以后怎样避免或改进?4.1今日收获论文4.2今日不足编程学习醒了因为实验室没开门,就不愿意去,这可怎么办</div> </li> <li><a href="/article/1950059849949704192.htm" title="Halcon试用与许可指南:2022年7月版" target="_blank">Halcon试用与许可指南:2022年7月版</a> <span class="text-muted">我就是夏迎春</span> <div>本文还有配套的精品资源,点击获取简介:本文件提供了Halcon软件的试用证书和许可证相关资料的集合,为潜在用户提供免费体验Halcon各项功能的途径,包括图像处理、形状匹配、OCR和条形码读取等。用户可以通过试用版全面了解软件功能,评估是否符合项目需求,并指导如何正确管理和优化许可证使用,以符合预算和需求。1.Halcon软件概述在当今高度自动化的工业时代,机器视觉系统发挥着至关重要的作用。Hal</div> </li> <li><a href="/article/1950047365528350720.htm" title="百旺金赋航天金税发票清单接口软件使用指南" target="_blank">百旺金赋航天金税发票清单接口软件使用指南</a> <span class="text-muted"></span> <div>本文还有配套的精品资源,点击获取简介:《百旺金赋航天金税发票清单接口软件详解与核心组件解析》详细介绍了该软件的便捷性和功能,它能将Excel销售清单转换成XML格式,简化发票开具流程。该软件通过动态链接库(DLL)文件实现高效数据转换,并支持与金税系统的对接,提升企业财务效率并确保数据安全性。1.百旺金赋航天金税发票清单接口软件概述软件应用背景百旺金赋航天金税发票清单接口软件作为一种财务信息化工具</div> </li> <li><a href="/article/1950044287261536256.htm" title="Java CAS 分析" target="_blank">Java CAS 分析</a> <span class="text-muted">向梦而来</span> <div>1概述CAS,CompareAndSwap,即比较并交换。DougLea大神在实现同步组件时,大量使用CAS技术,鬼斧神工地实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是基CAS实现的,甚至ConcurrentHashMap在JDK1.8的版本中,也调整为CAS+synchronized。可以说,CAS是整个J.U.C的基石。2017030900012CAS分析</div> </li> <li><a href="/article/1950041064710664192.htm" title="LEADTOOLS 将一维和条形码读取图像 - Windows C DLL" target="_blank">LEADTOOLS 将一维和条形码读取图像 - Windows C DLL</a> <span class="text-muted">sdk大全</span> <a class="tag" taget="_blank" href="/search/LEADTOOLS/1.htm">LEADTOOLS</a><a class="tag" taget="_blank" href="/search/23/1.htm">23</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>将一维和条形码读取图像-WindowsCDLL本教程介绍如何使用WindowsCDLL应用程序中的LEADTOOLSSDK在加载的图像上写入一维和二维条形码信息。概述概括本教程介绍如何L_BarCodeWrite在WindowsCDLL应用程序中使用该函数。完成时间30分钟VisualStudio项目下载教程项目(19KB)平台WindowsCDLL应用程序集成开发环境VisualStudio20</div> </li> <li><a href="/article/1950040559506747392.htm" title="Java 基本数据类型" target="_blank">Java 基本数据类型</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Java基本数据类型引言Java作为一种广泛使用的编程语言,其数据类型是构成程序的基础。Java的基本数据类型是编程语言的核心组成部分,它们定义了变量可以存储的数据类型。在本文中,我们将深入探讨Java的基本数据类型,包括它们的用途、特点以及在实际编程中的应用。Java基本数据类型概述Java语言提供了以下8种基本数据类型:byte:字节型,用于表示整数,范围从-128到127。short:短整型</div> </li> <li><a href="/article/1950031354561359872.htm" title="Linux系统之lvremove 命令详解" target="_blank">Linux系统之lvremove 命令详解</a> <span class="text-muted">门前灯</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/lvremove/1.htm">lvremove</a> <div>lvremove命令详解一、命令概述lvremove是LVM(逻辑卷管理)工具集中用于删除逻辑卷(LV)的核心命令,可移除一个或多个逻辑卷,将其占用的逻辑扩展(LE)归还给卷组(VG),供其他逻辑卷复用。其核心功能是彻底删除逻辑卷及其关联数据,操作前需确保LV未被使用(如未挂载文件系统),且删除源LV会同时移除其所有依赖的快照卷。适用于清理废弃存储资源、释放卷组空间的场景。二、语法格式lvremo</div> </li> <li><a href="/article/1950029141986308096.htm" title="TCP概述\三次握手四次挥手\报文首部,常用熟知端口号" target="_blank">TCP概述\三次握手四次挥手\报文首部,常用熟知端口号</a> <span class="text-muted">25岁学Python</span> <div>1.TCP概述TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16而端口号为80,那么得到的套接字为192.3.4.16:80。2.常用熟知端口号应用程序FTPTFTPTELNETSMTPDNSHTTPSSHMYSQL熟知端口21,206923255380223306</div> </li> <li><a href="/article/1950005631146586112.htm" title="PyTorch 使用指南" target="_blank">PyTorch 使用指南</a> <span class="text-muted"></span> <div>PyTorch是一个功能强大且灵活的Python开源机器学习库,以其动态计算图和直观的Pythonic接口而闻名。本指南将带您了解PyTorch的基础操作,包括张量创建、自动求导,以及如何构建、训练和优化神经网络模型。我们还将深入探讨其在图像分类(以CIFAR-10为例)和自然语言处理(以灾难推文分类为例)等特定领域的应用,并概述其在图像分割和强化学习等其他领域的应用。PyTorch使用指南1.P</div> </li> <li><a href="/article/1950000839221374976.htm" title="23种设计模式之中介者模式" target="_blank">23种设计模式之中介者模式</a> <span class="text-muted">heimeiyingwang</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E4%BB%8B%E8%80%85%E6%A8%A1%E5%BC%8F/1.htm">中介者模式</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>中介者模式(MediatorPattern)详细介绍一、模式概述英文名称:Mediator核心目标:定义一个中介对象来封装一组对象之间的交互,减少对象间直接通信的复杂性,促进松耦合。设计思想:通过集中控制交互逻辑,将网状的多对多通信转化为星型的一对多结构,简化系统维护。二、优缺点优点缺点1.减少对象间依赖:对象仅与中介交互,降低耦合。1.中介类复杂度高:可能成为“上帝类”。2.简化对象间协作:交互</div> </li> <li><a href="/article/75.htm" title="knob UI插件使用" target="_blank">knob UI插件使用</a> <span class="text-muted">换个号韩国红果果</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/knob/1.htm">knob</a> <div>图形是用canvas绘制的 js代码 var paras = { max:800, min:100, skin:'tron',//button type thickness:.3,//button width width:'200',//define canvas width.,canvas height displayInput:'tr</div> </li> <li><a href="/article/202.htm" title="Android+Jquery Mobile学习系列(5)-SQLite数据库" target="_blank">Android+Jquery Mobile学习系列(5)-SQLite数据库</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/JQuery+Mobile/1.htm">JQuery Mobile</a> <div>目录导航   SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠。   因为Android已经集成了SQLite,所以开发人员无需引入任何JAR包,而且Android也针对SQLite封装了专属的API,调用起来非常快捷方便。   我也是第一次接触S</div> </li> <li><a href="/article/329.htm" title="impala-2.1.2-CDH5.3.2" target="_blank">impala-2.1.2-CDH5.3.2</a> <span class="text-muted">dayutianfei</span> <a class="tag" taget="_blank" href="/search/impala/1.htm">impala</a> <div>最近在整理impala编译的东西,简单记录几个要点: 根据官网的信息(https://github.com/cloudera/Impala/wiki/How-to-build-Impala): 1. 首次编译impala,推荐使用命令: ${IMPALA_HOME}/buildall.sh -skiptests -build_shared_libs -format 2.仅编译BE ${I</div> </li> <li><a href="/article/456.htm" title="求二进制数中1的个数" target="_blank">求二进制数中1的个数</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E8%BF%9B%E5%88%B6/1.htm">二进制</a> <div>解法一: 对于一个正整数如果是偶数,该数的二进制数的最后一位是 0 ,反之若是奇数,则该数的二进制数的最后一位是 1 。因此,可以考虑利用位移、判断奇偶来实现。   public int bitCount(int x){ int count = 0; while(x!=0){ if(x%2!=0){ /</div> </li> <li><a href="/article/583.htm" title="spring中hibernate及事务配置" target="_blank">spring中hibernate及事务配置</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>hibernate的sessionFactory配置: <!-- hibernate sessionFactory配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <</div> </li> <li><a href="/article/710.htm" title="log4j.properties 使用" target="_blank">log4j.properties 使用</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a> <div>log4j.properties 使用 一.参数意义说明 输出级别的种类 ERROR、WARN、INFO、DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息 配置日志信息输出目的地 log4j.appender.appenderName = fully.qua</div> </li> <li><a href="/article/837.htm" title="Spring mvc-jfreeChart柱图(2)" target="_blank">Spring mvc-jfreeChart柱图(2)</a> <span class="text-muted">布衣凌宇</span> <a class="tag" taget="_blank" href="/search/jfreechart/1.htm">jfreechart</a> <div>上一篇中生成的图是静态的,这篇将按条件进行搜索,并统计成图表,左面为统计图,右面显示搜索出的结果。 第一步:导包 第二步;配置web.xml(上一篇有代码) 建BarRenderer类用于柱子颜色 import java.awt.Color; import java.awt.Paint; import org.jfree.chart.renderer.category.BarR</div> </li> <li><a href="/article/964.htm" title="我的spring学习笔记14-容器扩展点之PropertyPlaceholderConfigurer" target="_blank">我的spring学习笔记14-容器扩展点之PropertyPlaceholderConfigurer</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/Spring3/1.htm">Spring3</a> <div>PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。关于BeanFactoryPostProcessor和BeanPostProcessor类似。我会在其他地方介绍。 PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准java</div> </li> <li><a href="/article/1091.htm" title="maven 之 cobertura 简单使用" target="_blank">maven 之 cobertura 简单使用</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/test/1.htm">test</a><a class="tag" taget="_blank" href="/search/unit/1.htm">unit</a><a class="tag" taget="_blank" href="/search/cobertura/1.htm">cobertura</a><a class="tag" taget="_blank" href="/search/report/1.htm">report</a> <div>1. 创建一个maven项目 2. 创建com.CoberturaStart.java package com; public class CoberturaStart { public void helloEveryone(){ System.out.println("=================================================</div> </li> <li><a href="/article/1218.htm" title="程序的执行顺序" target="_blank">程序的执行顺序</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JAVA%E6%89%A7%E8%A1%8C%E9%A1%BA%E5%BA%8F/1.htm">JAVA执行顺序</a> <div>      刚在看java核心技术时发现对java的执行顺序不是很明白了,百度一下也没有找到适合自己的资料,所以就简单的回顾一下吧   代码如下;     经典的程序执行面试题 //关于程序执行的顺序 //例如: //定义一个基类 public class A(){ public A(</div> </li> <li><a href="/article/1345.htm" title="设置session失效的几种方法" target="_blank">设置session失效的几种方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/session%E5%A4%B1%E6%95%88/1.htm">session失效</a><a class="tag" taget="_blank" href="/search/%E7%9B%91%E5%90%AC%E5%99%A8/1.htm">监听器</a> <div>在系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session。具体设置很简单,方法有三种:(1)在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);参数900单位是秒,即在没有活动15分钟后,session将失效。这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所</div> </li> <li><a href="/article/1472.htm" title="java jvm常用命令工具" target="_blank">java jvm常用命令工具</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a> <div>一.概述         程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统日志、堆dump文件、线程dump文件、GC日志等。通过虚拟机监控和诊断工具可以帮忙我们快速获取、分析需要的数据,进而提高问题解决速度。 本文将介绍虚拟机常用监控和问题诊断命令工具的使用方法,主要包含以下工具:       &nbs</div> </li> <li><a href="/article/1599.htm" title="【Spring框架一】Spring常用注解之Autowired和Resource注解" target="_blank">【Spring框架一】Spring常用注解之Autowired和Resource注解</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Spring%E5%B8%B8%E7%94%A8%E6%B3%A8%E8%A7%A3/1.htm">Spring常用注解</a> <div>Spring自从2.0引入注解的方式取代XML配置的方式来做IOC之后,对Spring一些常用注解的含义行为一直处于比较模糊的状态,写几篇总结下Spring常用的注解。本篇包含的注解有如下几个: Autowired Resource Component Service Controller Transactional 根据它们的功能、目的,可以分为三组,Autow</div> </li> <li><a href="/article/1726.htm" title="mysql 操作遇到safe update mode问题" target="_blank">mysql 操作遇到safe update mode问题</a> <span class="text-muted">bitray</span> <a class="tag" taget="_blank" href="/search/update/1.htm">update</a> <div>    我并不知道出现这个问题的实际原理,只是通过其他朋友的博客,文章得知的一个解决方案,目前先记录一个解决方法,未来要是真了解以后,还会继续补全.     在mysql5中有一个safe update mode,这个模式让sql操作更加安全,据说要求有where条件,防止全表更新操作.如果必须要进行全表操作,我们可以执行 SET</div> </li> <li><a href="/article/1853.htm" title="nginx_perl试用" target="_blank">nginx_perl试用</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx_perl%E8%AF%95%E7%94%A8/1.htm">nginx_perl试用</a> <div>因为空闲时间比较多,所以在CPAN上乱翻,看到了nginx_perl这个项目(原名Nginx::Engine),现在托管在github.com上。地址见:https://github.com/zzzcpan/nginx-perl 这个模块的目的,是在nginx内置官方perl模块的基础上,实现一系列异步非阻塞的api。用connector/writer/reader完成类似proxy的功能(这里</div> </li> <li><a href="/article/1980.htm" title="java-63-在字符串中删除特定的字符" target="_blank">java-63-在字符串中删除特定的字符</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class DeleteSpecificChars { /** * Q 63 在字符串中删除特定的字符 * 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 * 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” */ public static voi</div> </li> <li><a href="/article/2107.htm" title="EffectiveJava--创建和销毁对象" target="_blank">EffectiveJava--创建和销毁对象</a> <span class="text-muted">ccii</span> <a class="tag" taget="_blank" href="/search/%E5%88%9B%E5%BB%BA%E5%92%8C%E9%94%80%E6%AF%81%E5%AF%B9%E8%B1%A1/1.htm">创建和销毁对象</a> <div>本章内容: 1. 考虑用静态工厂方法代替构造器 2. 遇到多个构造器参数时要考虑用构建器(Builder模式) 3. 用私有构造器或者枚举类型强化Singleton属性 4. 通过私有构造器强化不可实例化的能力 5. 避免创建不必要的对象 6. 消除过期的对象引用 7. 避免使用终结方法 1. 考虑用静态工厂方法代替构造器     类可以通过</div> </li> <li><a href="/article/2234.htm" title="[宇宙时代]四边形理论与光速飞行" target="_blank">[宇宙时代]四边形理论与光速飞行</a> <span class="text-muted">comsci</span> <div>   从四边形理论来推论 为什么光子飞船必须获得星光信号才能够进行光速飞行?    一组星体组成星座  向空间辐射一组由复杂星光信号组成的辐射频带,按照四边形-频率假说  一组频率就代表一个时空的入口    那么这种由星光信号组成的辐射频带就代表由这些星体所控制的时空通道,该时空通道在三维空间的投影是一</div> </li> <li><a href="/article/2361.htm" title="ubuntu server下python脚本迁移数据" target="_blank">ubuntu server下python脚本迁移数据</a> <span class="text-muted">cywhoyi</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/Kettle/1.htm">Kettle</a><a class="tag" taget="_blank" href="/search/pymysql/1.htm">pymysql</a><a class="tag" taget="_blank" href="/search/cx_Oracle/1.htm">cx_Oracle</a><a class="tag" taget="_blank" href="/search/ubuntu+server/1.htm">ubuntu server</a> <div>因为是在Ubuntu下,所以安装python、pip、pymysql等都极其方便,sudo apt-get install pymysql, 但是在安装cx_Oracle(连接oracle的模块)出现许多问题,查阅相关资料,发现这边文章能够帮我解决,希望大家少走点弯路。http://www.tbdazhe.com/archives/602 1.安装python 2.安装pip、pymysql</div> </li> <li><a href="/article/2488.htm" title="Ajax正确但是请求不到值解决方案" target="_blank">Ajax正确但是请求不到值解决方案</a> <span class="text-muted">dashuaifu</span> <a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/async/1.htm">async</a> <div>Ajax正确但是请求不到值解决方案   解决方案:1 .     async: false ,    2.     设置延时执行js里的ajax或者延时后台java方法!!!!!!!   例如:   $.ajax({     &</div> </li> <li><a href="/article/2615.htm" title="windows安装配置php+memcached" target="_blank">windows安装配置php+memcached</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/Install/1.htm">Install</a><a class="tag" taget="_blank" href="/search/memcache/1.htm">memcache</a> <div>Windows下Memcached的安装配置方法 1、将第一个包解压放某个盘下面,比如在c:\memcached。 2、在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装。 3、再输入: 'c:\memcached\memcached.exe -d start' 启动。(需要注意的: 以后memcached将作为windo</div> </li> <li><a href="/article/2742.htm" title="iOS开发学习路径的一些建议" target="_blank">iOS开发学习路径的一些建议</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a> <div>iOS论坛里有朋友要求回答帖子,帖子的标题是: 想学IOS开发高阶一点的东西,从何开始,然后我吧啦吧啦回答写了很多。既然敲了那么多字,我就把我写的回复也贴到博客里来分享,希望能对大家有帮助。欢迎大家也到帖子里讨论和分享,地址:http://bbs.csdn.net/topics/390920759   下面是我回复的内容:   结合自己情况聊下iOS学习建议,</div> </li> <li><a href="/article/2869.htm" title="Javascript闭包概念" target="_blank">Javascript闭包概念</a> <span class="text-muted">fanfanlovey</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E9%97%AD%E5%8C%85/1.htm">闭包</a> <div>1.参考资料 http://www.jb51.net/article/24101.htm http://blog.csdn.net/yn49782026/article/details/8549462 2.内容概述 要理解闭包,首先需要理解变量作用域问题 内部函数可以饮用外面全局变量 var n=999;   functio</div> </li> <li><a href="/article/2996.htm" title="yum安装mysql5.6" target="_blank">yum安装mysql5.6</a> <span class="text-muted">haisheng</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>1、安装http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm   2、yum install mysql   3、yum install mysql-server   4、vi /etc/my.cnf   添加character_set_server=utf8</div> </li> <li><a href="/article/3123.htm" title="po/bo/vo/dao/pojo的详介" target="_blank">po/bo/vo/dao/pojo的详介</a> <span class="text-muted">IT_zhlp80</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a><a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/po/1.htm">po</a> <div>    JAVA几种对象的解释 PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作. VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可</div> </li> <li><a href="/article/3250.htm" title="java设计模式" target="_blank">java设计模式</a> <span class="text-muted">kerryg</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>设计模式的分类:    一、 设计模式总体分为三大类: 1、创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 2、结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 3、行为型模式(11种):策略模式,模版方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者</div> </li> <li><a href="/article/3377.htm" title="[1]CXF3.1整合Spring开发webservice——helloworld篇" target="_blank">[1]CXF3.1整合Spring开发webservice——helloworld篇</a> <span class="text-muted">木头.java</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a><a class="tag" taget="_blank" href="/search/CXF/1.htm">CXF</a> <div>Spring 版本3.2.10 CXF 版本3.1.1 项目采用MAVEN组织依赖jar 我这里是有parent的pom,为了简洁明了,我直接把所有的依赖都列一起了,所以都没version,反正上面已经写了版本 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht</div> </li> <li><a href="/article/3504.htm" title="Google 工程师亲授:菜鸟开发者一定要投资的十大目标" target="_blank">Google 工程师亲授:菜鸟开发者一定要投资的十大目标</a> <span class="text-muted">qindongliang1922</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%82%9F/1.htm">感悟</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E7%94%9F/1.htm">人生</a> <div>身为软件开发者,有什么是一定得投资的? Google 软件工程师 Emanuel Saringan 整理了十项他认为必要的投资,第一项就是身体健康,英文与数学也都是必备能力吗?来看看他怎么说。(以下文字以作者第一人称撰写)) 你的健康 无疑地,软件开发者是世界上最久坐不动的职业之一。 每天连坐八到十六小时,休息时间只有一点点,绝对会让你的鲔鱼肚肆无忌惮的生长。肥胖容易扩大罹患其他疾病的风险,</div> </li> <li><a href="/article/3631.htm" title="linux打开最大文件数量1,048,576" target="_blank">linux打开最大文件数量1,048,576</a> <span class="text-muted">tianzhihehe</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>File descriptors are represented by the C int type. Not using a special type is often  considered odd, but is, historically, the Unix way. Each Linux process has a maximum number of files th</div> </li> <li><a href="/article/3758.htm" title="java语言中PO、VO、DAO、BO、POJO几种对象的解释" target="_blank">java语言中PO、VO、DAO、BO、POJO几种对象的解释</a> <span class="text-muted">衞酆夼</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/po/1.htm">po</a> <div>PO:persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。 BO:business object业务对象 封装业务逻辑的java对象</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>