《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/1946847341034139648.htm" title="Python中的分支结构" target="_blank">Python中的分支结构</a> <span class="text-muted">小羊苏八</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录前言一、Python分支结构概述二、if语句详解三、if-else语句详解四、if-elif-else语句详解五、嵌套分支结构六、分支结构的注意事项七、实际应用场景八、总结前言在Python编程的世界里,分支结构如同现实中的道路岔口,根据不同的条件引导程序流向不同的执行路径。它是构建复杂逻辑、实现智能决策的关键所在。本文将带你全面了解Python的分支结构,从基础语法到实际应用,让你轻松掌</div> </li> <li><a href="/article/1946834728023814144.htm" title="一文讲透HTML语义化标签" target="_blank">一文讲透HTML语义化标签</a> <span class="text-muted"></span> <div>文章目录语义化标签概述HTML标签及其含义常见HTML5语义化标签语义化标签对搜索引擎(SEO)的影响提升搜索引擎排名增强可访问性改善用户体验语义化标签案例各标签作用说明语义化标签概述HTML语义化是指使用恰当的标签来准确表达内容的结构和含义,使网页不仅对人类开发者可读,也能被搜索引擎、辅助技术等更好地理解和处理。例如,用表示页眉,表示独立内容区块,提升页面可访问性和SEO效果。HTML标签及其含</div> </li> <li><a href="/article/1946759957072375808.htm" title="39、设计模式的实现与示例:模板方法模式" target="_blank">39、设计模式的实现与示例:模板方法模式</a> <span class="text-muted">mac99</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/3.0%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%EF%BC%9A%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">3.0设计模式:从入门到精通</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/%E6%A8%A1%E6%9D%BF%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F/1.htm">模板方法模式</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a> <div>设计模式的实现与示例:模板方法模式1.模板方法模式概述模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,将某些步骤延迟到子类中实现。这样,子类可以在不改变算法结构的情况下重定义算法的某些步骤。这种模式非常适合那些有固定流程但某些步骤需要灵活调整的场景。1.1模板方法模式的特点固定的算法框架:模板方法模式定义了一个算法的框架,但在某些关键步骤上保持了灵活性。延迟实现:某些步骤被延迟到子类中实</div> </li> <li><a href="/article/1946753024475066368.htm" title="网络安全人士必知的35个安全框架及模型" target="_blank">网络安全人士必知的35个安全框架及模型</a> <span class="text-muted"></span> <div>一、概述网络安全专业机构制定的一套标准、准则和程序,旨在帮助组织了解和管理面临的网络安全风险。优秀的安全框架及模型应该为用户提供一种可靠方法,帮助其实现网络安全建设计划。对于那些希望按照行业最佳实践来设计或改进安全策略的组织或个人来说,网络安全框架及模型是不可或缺的指导工具。使用安全模型对业务安全进行总结和指导,避免思维被局限,出现安全短板。本文仅做简单介绍,做到穿针引线的作用,详细介绍等后续安排</div> </li> <li><a href="/article/1946751385986985984.htm" title="深入理解设计模式之模板模式:优雅地定义算法骨架" target="_blank">深入理解设计模式之模板模式:优雅地定义算法骨架</a> <span class="text-muted">vvilkin的学习备忘</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> <div>在软件开发中,我们经常会遇到这样的情况:多个类执行相似的操作流程,但每个类在流程的某些步骤上有自己特定的实现。如果为每个类都完整地编写整个流程,会导致大量重复代码,且难以维护。这时候,模板模式(TemplateMethodPattern)就派上用场了。一、模板模式概述1.1什么是模板模式模板模式是一种行为型设计模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以不</div> </li> <li><a href="/article/1946751386637103104.htm" title="全面解析ARMv8架构手册:2020年版要点总结" target="_blank">全面解析ARMv8架构手册:2020年版要点总结</a> <span class="text-muted">车英赫</span> <div>本文还有配套的精品资源,点击获取简介:ARMv8架构作为64位指令集的重要里程碑,提供了详尽的参考指南,包含处理器状态、内存模型、指令集、安全性与虚拟化、多核与并发、浮点与SIMD运算、调试与性能监控、中断与异常处理以及系统级设计等要点。本手册旨在帮助集成电路设计者、软件开发者以及系统架构师深入理解ARMv8架构,促进他们在相关领域的专业技能提升。1.ARMv8架构概述ARMv8架构,作为ARM技</div> </li> <li><a href="/article/1946738909757108224.htm" title="基于单片机宠物喂食器/智能宠物窝/智能饲养" target="_blank">基于单片机宠物喂食器/智能宠物窝/智能饲养</a> <span class="text-muted"></span> <div>传送门其他作品题目速选一览表其他作品题目功能速览概述深夜加班时,你是否担心家中宠物饿肚子?出差旅途中,是否焦虑宠物无人照看?这些养宠族的共同痛点,正被一枚小小的单片机悄然化解。作为智慧宠物家居的核心设备,智能喂食器已从“定时撒粮”的机械玩具,进化成融合嵌入式控制、物联网通信、健康管理的科技终端。本文将深入拆解基于单片机的喂食器设计:从STM32主控芯片的选型,到0.5g精度的闭环投喂算法;从ESP</div> </li> <li><a href="/article/1946738783542112256.htm" title="【鸿蒙实战开发】HarmonyOS应用开发性能优化入门引导" target="_blank">【鸿蒙实战开发】HarmonyOS应用开发性能优化入门引导</a> <span class="text-muted">代码改变世界996</span> <a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a> <div>概述在开发HarmonyOSNEXT应用时,优化应用性能是至关重要的。本文将介绍应用开发过程中常见的一些性能问题,并提供相应的解决方案,配合相关参考示例,帮助开发者解决大部分性能问题。我们把应用性能分析的方法划分为了性能分析四板斧,下面将介绍如何使用性能分析四板斧,解决应用开发过程中的性能问题。●第一板斧:合理使用并行化、预加载和缓存,我们需要合理地使用并行化、预加载和缓存等方法,例如使用多线程并</div> </li> <li><a href="/article/1946728835005345792.htm" title="Ceph存储阈值调整:优化nearfull_ratio参数" target="_blank">Ceph存储阈值调整:优化nearfull_ratio参数</a> <span class="text-muted">mixboot</span> <a class="tag" taget="_blank" href="/search/Ceph/1.htm">Ceph</a><a class="tag" taget="_blank" href="/search/ceph/1.htm">ceph</a> <div>Ceph存储阈值调整:优化nearfull_ratio参数前言在Ceph存储系统的管理中,合理设置存储阈值参数对于确保系统稳定运行至关重要。如何调整nearfull_ratio参数,以及这一参数对Ceph集群的影响。Ceph存储阈值概述Ceph存储系统主要有三个与容量相关的重要阈值参数:近满阈值(nearfull_ratio):默认为0.85或85%,当集群使用空间达到此比例时,Ceph会发出警告</div> </li> <li><a href="/article/1946718744780795904.htm" title="列车-轨道-桥梁交互仿真研究(Matlab代码实现)" target="_blank">列车-轨道-桥梁交互仿真研究(Matlab代码实现)</a> <span class="text-muted"></span> <div>欢迎来到本博客❤️❤️欢迎来到本博客❤️❤️博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。本文目录如下:目录1概述一、研究背景与核心概念二、系统建模方法与关键技术(1)子系统建模(2)耦合机制与算法(3)激励源建模三、仿真软件工具与验证(1)主流仿真平台(2)参数设置要点(3)实验验证方法四、工程应用与典型案例(1)安全评估与优化设计(2)极端工况分析</div> </li> <li><a href="/article/1946713825717841920.htm" title="MySQL高可用集群架构:主从复制、MGR与读写分离实战" target="_blank">MySQL高可用集群架构:主从复制、MGR与读写分离实战</a> <span class="text-muted">软考和人工智能学堂</span> <a class="tag" taget="_blank" href="/search/PHP%E5%92%8CMySQL/1.htm">PHP和MySQL</a><a class="tag" taget="_blank" href="/search/php%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">php程序设计</a><a class="tag" taget="_blank" href="/search/MySQL%E7%BB%8F%E9%AA%8C%E4%B8%8E%E6%8A%80%E5%B7%A7/1.htm">MySQL经验与技巧</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>1.MySQL高可用架构概述MySQL高可用性(HighAvailability)解决方案旨在确保数据库服务在硬件故障、网络问题等异常情况下仍能持续提供服务。以下是主流的高可用方案对比:方案原理优点缺点适用场景主从复制基于binlog的异步复制简单易用,对性能影响小数据一致性弱,故障切换复杂读写分离、备份MHA监控主库并自动故障转移自动切换,减少停机时间需要VIP管理,配置复杂中小规模业务系统MG</div> </li> <li><a href="/article/1946703870382108672.htm" title="pyQT学习笔记——Qt常用组件与绘图类的使用指南" target="_blank">pyQT学习笔记——Qt常用组件与绘图类的使用指南</a> <span class="text-muted">tt555555555555</span> <a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/pyqt/1.htm">pyqt</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>Qt常用组件与绘图类的使用指南一、大小策略(SizePolicy)1.1大小策略概述1.2具体参数1.3其他常见策略1.4伸展值的作用二、常用组件的使用2.1QSpinBox和QComboBox示例代码2.2QDialog示例代码2.3QTableView示例代码三、QPainter类介绍3.1QPainter的使用示例代码3.2QPainter的功能一、大小策略(SizePolicy)1.1大小</div> </li> <li><a href="/article/1946697695276101632.htm" title="【Mybatis】精妙运用动态SQL:精准解决条件判断难题" target="_blank">【Mybatis】精妙运用动态SQL:精准解决条件判断难题</a> <span class="text-muted">master_chenchengg</span> <a class="tag" taget="_blank" href="/search/sql%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">sql数据库</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>【Mybatis】精妙运用动态SQL:精准解决条件判断难题一、引言:MySQL与Mybatis在现代开发中的核心地位二、技术概述:Mybatis动态SQL的魔力示例代码:基本的条件判断三、技术细节:动态SQL的实现原理与挑战四、实战应用:复杂查询条件的处理应用场景问题与解决方案五、优化与改进潜在问题与性能瓶颈优化建议六、常见问题与解决方案问题1:动态SQL导致的N+1查询问题问题2:SQL注入风险</div> </li> <li><a href="/article/1946691646817103872.htm" title="Python爬虫实战:高效提取与解析JSON格式数据" target="_blank">Python爬虫实战:高效提取与解析JSON格式数据</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%AE%BD%E5%BA%A6%E4%BC%98%E5%85%88/1.htm">宽度优先</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88/1.htm">深度优先</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.JSON数据爬取概述在当今互联网时代,JSON(JavaScriptObjectNotation)已成为最流行的数据交换格式之一。相比传统的HTML页面,JSON格式数据具有结构清晰、体积小、解析方便等优势,使得它成为API接口的首选数据格式。1.1为什么选择JSON数据爬取数据结构化:JSON数据本身就是结构化的,不需要像HTML那样进行复杂的解析传输高效:JSON通常比HTML体积小,传输</div> </li> <li><a href="/article/1946686987826163712.htm" title="小架构step系列17:getter-setter-toString" target="_blank">小架构step系列17:getter-setter-toString</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><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1概述在写代码的时候,有两类bean:一类是专门承载数据而无业务逻辑的bean,如DTO;另外一类是业务模型bean,其既要承载数据也要提供业务逻辑,在DDD中它们就对应于领域模型对象和值对象。这些bean里面可能要提供getter、setter、equals、hashCode、toString,甚至构造方法,这些代码写起来比较无聊,基本都是根据字段来的,属于非常机械化而无技术含量的操作,而这些操</div> </li> <li><a href="/article/1946684844322910208.htm" title="大模型在2型糖尿病性酮症预测及临床方案制定中的应用研究" target="_blank">大模型在2型糖尿病性酮症预测及临床方案制定中的应用研究</a> <span class="text-muted">LCG元</span> <a class="tag" taget="_blank" href="/search/%E5%9B%B4%E6%9C%AF%E6%9C%9F%E5%8D%B1%E9%99%A9%E5%9B%A0%E5%AD%90/1.htm">围术期危险因子</a><a class="tag" taget="_blank" href="/search/%E9%A2%84%E6%B5%8B%E6%A8%A1%E5%9E%8B%E7%A0%94%E7%A9%B6/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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>目录一、引言1.1研究背景与意义1.2研究目的与创新点二、2型糖尿病性酮症相关理论基础2.12型糖尿病性酮症概述2.1.1定义与发病机制2.1.2临床表现与危害2.1.3诊断标准与鉴别诊断2.2大模型技术原理及在医疗领域的应用潜力2.2.1大模型的基本原理和特点2.2.2在医疗领域的应用现状和优势三、大模型在2型糖尿病性酮症术前风险预测的应用3.1数据收集与预处理3.1.1数据来源3.1.2数据清</div> </li> <li><a href="/article/1946680427985039360.htm" title="国产IP摄像头存在隐蔽后门,攻击者可获取Root权限" target="_blank">国产IP摄像头存在隐蔽后门,攻击者可获取Root权限</a> <span class="text-muted">FreeBuf-</span> <a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a> <div>漏洞概述ShenzhenLiandianCommunicationTechnologyLTD生产的某款IP摄像头被曝存在高危漏洞(CVE-2025-7503)。该漏洞获得CVSSv4满分10分评级,攻击者可通过未公开的Telnet服务获取设备root权限,对隐私安全构成严重威胁。技术细节漏洞存在于摄像头固件(AppFHE1_V1.0.6.0)及其配套内核(KerFHE1_PTZ_WIFI_V3.1</div> </li> <li><a href="/article/1946672744552787968.htm" title="Go语言Context详解:原理、使用场景与最佳实践" target="_blank">Go语言Context详解:原理、使用场景与最佳实践</a> <span class="text-muted"></span> <div>文章目录1.Context概述1.1什么是Context1.2为什么需要Context2.Context的核心接口3.Context的创建与派生3.1根Context3.2派生Context3.2.1WithCancel3.2.2WithDeadline3.2.3WithTimeout3.2.4WithValue4.Context的工作原理4.1Context的底层结构4.2取消传播机制4.3流程</div> </li> <li><a href="/article/1946672110478880768.htm" title="面试加分项:Android Framework PMS 全面概述和知识要点" target="_blank">面试加分项:Android Framework PMS 全面概述和知识要点</a> <span class="text-muted">大模型大数据攻城狮</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/framework/1.htm">framework</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93%E9%9D%A2%E8%AF%95/1.htm">安卓面试</a><a class="tag" taget="_blank" href="/search/PMS/1.htm">PMS</a><a class="tag" taget="_blank" href="/search/app%E5%AE%89%E8%A3%85/1.htm">app安装</a><a class="tag" taget="_blank" href="/search/app%E6%9D%83%E9%99%90/1.htm">app权限</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%8E%82android/1.htm">大厂android</a> <div>在Android面试时,懂得越多越深androidframework的知识,越为自己加分。目录第一章:PMS基础知识1.1PMS定义与工作原理1.2PMS的主要任务1.3PMS与相关组件的交互第二章:PMS的核心功能2.1应用安装与卸载机制2.2应用更新与版本管理2.3组件管理第三章:PMS的性能优化3.1优化策略与技术3.2优化实践案例分析第四章:PMS的安全性保障4.1安全机制与原理4.2应对</div> </li> <li><a href="/article/1946670962434961408.htm" title="DriverInstallerX64.exe应用程序错误" target="_blank">DriverInstallerX64.exe应用程序错误</a> <span class="text-muted">世道无情</span> <div>1.概述如果把jdk、AndroidStudio、android-sdk都安装好了、adb环境也配置好了、电脑和手机也都下载了豌豆荚了、并且手机的开发者选项也打开了、而且也已经调试到USB调试了、同时手机连接到电脑后吧选项也选到MPT模式了[就是下滑手机看状态栏数据线与手机连接时手机上边显示的状态],但是手机连接androidstudio就是没有反应,就是连接不上,可以参照下边方式。2.问题与解决</div> </li> <li><a href="/article/1946663273508171776.htm" title="模型上下文协议(MCP)详解" target="_blank">模型上下文协议(MCP)详解</a> <span class="text-muted">Edward.W</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80/1.htm">计算机基础</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7/1.htm">工具</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/go/1.htm">go</a> <div>MCP(ModelContextProtocol)是一种专门为AI模型交互设计的标准化协议,它定义了模型与客户端之间上下文管理的通用规范。以下是MCP的全面介绍:一、MCP协议概述MCP(ModelContextProtocol)是一种轻量级、语言无关的通信协议,旨在解决AI模型交互中的上下文管理问题。它提供了一套标准化的方法来创建、维护和销毁交互上下文,特别适合需要状态保持的AI应用场景。核心设</div> </li> <li><a href="/article/1946660751645143040.htm" title="会话技术Cookie和Session详解" target="_blank">会话技术Cookie和Session详解</a> <span class="text-muted">@Zeal</span> <a class="tag" taget="_blank" href="/search/JavaWeb/1.htm">JavaWeb</a><a class="tag" taget="_blank" href="/search/cookie/1.htm">cookie</a><a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>文章目录会话跟踪技术的概述会话会话跟踪思考CookieCookie的基本使用概念工作流程Cookie的基本使用Cookie的原理Cookie的使用细节存活时间关于cookie中存储特殊字符问题SessionSession的基本使用概念工作流程Session的基本使用Session的原理Session的使用细节浏览器关闭后,session持久化方案Session的钝化与活化(了解)Session销毁</div> </li> <li><a href="/article/1946658231233343488.htm" title="深入解析Zstandard压缩格式规范" target="_blank">深入解析Zstandard压缩格式规范</a> <span class="text-muted">石顺垒Dora</span> <div>深入解析Zstandard压缩格式规范前言Zstandard(简称zstd)是Facebook开发的一种高效无损压缩算法,在现代数据压缩领域占据重要地位。本文将从技术实现角度深入剖析Zstandard压缩格式规范,帮助开发者全面理解其设计原理和实现细节。格式概述Zstandard压缩数据由一或多个帧(frame)组成,每个帧都是独立的压缩单元。帧分为两种类型:标准帧:包含实际压缩数据可跳过帧:包含</div> </li> <li><a href="/article/1946655080434429952.htm" title="正则表达式概述" target="_blank">正则表达式概述</a> <span class="text-muted">出门撞大运</span> <a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div>在编程中,处理字符串是一项常见且重要的任务。而正则表达式,作为一种强大的字符串匹配工具,能帮助我们高效地完成各种复杂的字符串处理需求。无论是数据验证、文本搜索与替换,还是日志分析等场景,正则表达式都能大显身手。今天,我们就来全面了解一下正则表达式。一、什么是正则表达式正则表达式,又称正规表示法、常规表示法(英语:RegularExpression,在代码中常简写为regex、regexp或RE),</div> </li> <li><a href="/article/1946655080870637568.htm" title="AJAX概述" target="_blank">AJAX概述</a> <span class="text-muted">出门撞大运</span> <a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>在现代网页开发中,我们早已习惯了无需刷新页面就能获取新数据的流畅体验——浏览电商网站时的实时库存更新、社交平台的动态加载内容、表单提交后的即时验证反馈……这些都离不开一项核心技术——AJAX。今天,我们就来深入探索AJAX的奥秘,带你全面掌握这门改变网页交互方式的关键技术。一、什么是AJAX?AJAX,全称异步JavaScript和XML(AsynchronousJavaScriptandXML)</div> </li> <li><a href="/article/1946655078286946304.htm" title="Servlet概述" target="_blank">Servlet概述</a> <span class="text-muted">出门撞大运</span> <a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>在JavaWeb开发中,Servlet是核心组件之一,负责处理客户端请求并生成响应。本文将从Servlet的基本概念出发,逐步深入其生命周期、实现方式、路径映射等关键知识点,帮助你全面掌握Servlet技术。一、Servlet概述与JavaWeb三大组件Servlet(ServerLet)是运行在Web服务器中的小型Java程序,主要作用是处理用户请求。当客户端发出请求后,由Web服务器(如Tom</div> </li> <li><a href="/article/1946641708297023488.htm" title="Vue 3 路由传参使用指南" target="_blank">Vue 3 路由传参使用指南</a> <span class="text-muted">Franciz小测测</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>目录一、路由传参概述二、动态路由参数(params)2.1基础用法2.2传递参数2.3获取参数2.4可选参数2.5多个参数与正则约束2.6多params的详细用法多个可选参数的使用路由配置获取可选参数三、查询参数(Query)3.1特点与应用场景3.2传递参数3.3获取参数3.4保留当前查询参数四、命名视图传参五、props解耦(推荐方式)六、状态管理(Pinia/Vuex)6.1使用Pinia示</div> </li> <li><a href="/article/1946636914203357184.htm" title="SCP命令传输文件" target="_blank">SCP命令传输文件</a> <span class="text-muted">惟余惟余</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>SCP进行文件传输一、基本语法:二、具体用法1.从本地将文件传输到服务器2.从本地将文件夹传输到服务器3.将服务器上的文件传输到本地4.将服务器上的文件夹传输到本地一、基本语法:Linuxscp命令用于Linux之间复制文件和目录。scp概述:scp是securecopy的缩写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp与rcp的区别:scp是加密的,rcp是不加密的</div> </li> <li><a href="/article/1946636535851970560.htm" title="DAOS系统架构-JumpMap" target="_blank">DAOS系统架构-JumpMap</a> <span class="text-muted">付兄</span> <a class="tag" taget="_blank" href="/search/daos/1.htm">daos</a><a class="tag" taget="_blank" href="/search/DAOS/1.htm">DAOS</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E5%AD%98%E5%82%A8/1.htm">分布式存储</a> <div>1.概述JumpPlacementMap是使用跳跃一致性哈希算法,以便在不同的故障域之间伪随机地分布对象。这样做是为了尽可能将他们分散到相互距离较远地故障域中,从而避免在当某个故障影响了整个故障域的情况下造成数据丢失。2.跳跃一致性哈希算法(JumpConsistentHashing)跳跃一致性哈希算法是一种一致性哈希算法,它能将keys均匀的分布在一定数量的buckets中。即使buckets的</div> </li> <li><a href="/article/1946636535348654080.htm" title="DAOS系统架构-Placement" target="_blank">DAOS系统架构-Placement</a> <span class="text-muted"></span> <div>1.概述DAOS使用poolmap来创建一系列placementmaps,这些maps被用于计算对象布局的算法中。该算法是基于一致性哈希算法,使用对象的ID、对象的概要、以及其中一个placementmap来生成对象的布局。DAOS使用一种模块化方法,允许不同的对象使用不同的placementmap来获得应用程序所需的性能特征。2.PoolMap在DAOS中,poolmap被组织为一种树形结构,维</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>