|
|
2008年8月29日
Posted by unbug on Oct 9, 2012 in Web App | 0 comments Chrome全平台已经更新版版本 22.0.1229.79,给前端调试带了几个另人兴奋的功能: 1.Elements面板,右键元素节点选择“Scroll Into View”,可以快速在页面视图中快速定位到当前节点 
2.Elements面板,右键元素节点选择“Break on…”则可以监听元素子元素变化,属性变化,节点被移除时触发断点debug 
3.Elements面板,右键元素节点选择“Force Element State”则可以应用元素的“:active,:hover,:focus,:vistied”状态,同时这些状态是可以组合使用而且保持着的 
4.Elements面板,选中元素节点,在右则的样式版本中点击“+”号,就可以依元素的选择器生成对应的样式,生成优先级“ID选择器>类别选择器>标记选择器” 
同是在上图中,我们也可以看到“鼠标”形状的按钮,就是在样式列表中显示当前元素对应的鼠标四个状态样式的,这个功能早期版本一直有的。
http://www.iunbug.com/archives/2012/10/09/455.html
升级了iOS6后测试了一下给应用推广来的新特性SMART APP BANNERS .首先要在head标签添加如下meta 要注意的是content属性:app-id即是你的应用id,app-argument则用作打开应用时的URL,比如打开网易新闻对应的新闻VIEW。 
测试结果是: 升级了iOS6的iOS设备,不过有点小BUG,比如new ipad中整条内容部分是居左而没居中显示,itouch4只有在对应的应用成功安装了才显示。希望这些BUG是个别机子,因为测试条件有限没有全面测试。 你想你会问,如果动态添加这条meta会是什么结果呢?先来看看: http://www.iunbug.com/archives/2012/09/21/431.html
已经有不少前端同行抱怨iScroll4的各种问题,我个人并不赞同将这些问题归咎于iScroll4,因为iScroll4进无论是touch事件的捕获,还是使用transform来处理滚动,以及将cubic-bezier应用到transition上实现高效的平滑滚动,这些原理我们都是已知的。更多原理细节可以参看[译]手把手教你编写iOS上Mobile Web App实现Fixed Position和模拟滚动 一文。此文则来解释另一个被很多人误解为iScroll4 造成的问题,那就是内容多的页面闪动的问题。现象表现为:
1.滑动过程中,滚动区内的元素在释放手指时出现细微闪动
2.图片缩放过程中释放手指时明显闪动
3.iOS上从mobile safari打开或第三方应用内打开后,切回主屏幕再切回页面时明显闪动
4.页面初始时闪动
大致这些情况下会有闪动,在ipad2,new ipad上会明显看得出。
下面就来分析产生的原因和解决办法:
http://www.iunbug.com/archives/2012/09/19/411.html
iOS6的Mobile Safari给前端开发者带来了什么 里已经提到iOS6的mobile safari将有智能应用通知标题(Smart App Banners)的功能,意在解决mobile safari里无法检测第三方应用安装状态的,通过这个功能,可以在页面中实现应用推荐类的需求。但目前来看,要实现这个需求只能在第三方应用中实现。思路也简单,第三方应用可以通过iOS的SDK提供的接口检测到对应的应用是否已经安装,然后在内嵌的UIWebView中打开的连接时追加参数如“?isinstalled=1”之类的参数供web页面获取来判断。web获知状态后可以提示给用户觖发的对应的应用的方案,如“打开应用”,“安装应用”等。
不过我们今天来说一种不借助第三方应用在mobile safari里就能实现跟上述类似的功能。
先来看看实现代码:
http://www.iunbug.com/archives/2012/09/18/401.html
http://www.iunbug.com/archives/2012/09/18/398.html
iScroll4启用snap时原生滚动会被阻止,具体表现是拖动snap作用的元素往非snap路径时将无法拖动页面。
官方的解决办法是追加onBeforeScrollStart事件:
|
1
|
onBeforeScrollStart: function (e) { return true; }
|
这种办法在测试中iOS和原生android设备是没有问题的,但第三方定制系统的设备(如小米,魅族)以及将页面在android应用中打开都会造成滑动非常的卡的现象。这时只要改改iScoll4的源码即可。具体参看
http://www.iunbug.com/archives/2012/09/18/398.html
Facebook在Mobile Web APP方面一直是担当榜样的大哥形像.近日出的新版在iOS上多了个“摇一摇”(Friendshake)寻找附近友邻功能。与这个功能相关的事件早在iOS4.2的时候就被mobile safari支持了,很早就听到做mobile游戏的朋友用上这个事件了,即是DeviceMotionEvent,下面我们就来讲讲这个事件: DeviceMotionEvent 会在设备发生有意义的摆动(或运动)时产生.事件对象封装有产生的间距值,旋转率,和设备加速度.
加速度的计算方式是重力和用户产生的两个加速度矢量之和.设备是通过 陀螺仪和加速计来区别这两者的. 使用方法如下:http://www.iunbug.com/archives/2012/07/18/387.html
阅读全文
http://www.iunbug.com/archives/2012/06/14/360.html
你可能听说了这个新MVC框架: CanJS。还有什么比用它来创建一个联系人Web App更能深入了解它的办法呢?当看完这三篇教程,你将全面了解用它的什么工具来创建你自己的Web App。
选择正确的库
创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。
CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。
CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 它提供有MVC (Model-View-Control) 模式的基本框架,模板动态绑定, route的支持且 内存安全。同时支持 jQuery, Zepto, Mootools, YUI, Dojo,有丰富的扩展和插件。
第一部分你将学到:
阅读全文
http://www.iunbug.com/archives/2012/06/14/360.html
PageSpeed Insights早在2年前google就推荐了这个工具的预览版,现在他们推荐一个功能全面的2.0版本。作为Chrome开发者工具的扩展。可以对你的网站进行全面的分析,包括静态资源文件,网络,DOM和timeline等。下载安装之后打开发者工具就到下图的按钮,点击分析即可得到一份全面的报告。
阅读全文
http://www.iunbug.com/archives/2012/06/14/353.html
这是我们目前所知iOS6的Mobile Safari给前端开发者所带来的,我期望在接下来的Beta版中惊喜更多用户体验更好。
阅读全文http://www.iunbug.com/?p=339
阅读全文
http://www.iunbug.com/2012/06/07/%E7%94%A8yuidoc%E6%96%87%E6%A1%A3%E5%8C%96javascript%E4%BB%A3%E7%A0%81/
文档化你的JS代码有点类似于测试; 我们都意识到要这么做,但我们都不确定怎么做,大多数人都没有做,但其实我们非常支持这么做。YUIDoc正是应付这个问题的最佳方案,那么,本教程将使你快速掌握它。
http://www.iunbug.com/2012/06/07/%E7%94%A8yuidoc%E6%96%87%E6%A1%A3%E5%8C%96javascript%E4%BB%A3%E7%A0%81/
背景:http://www.travelog.me/ 上的背景图片是高斯模糊的效果,而他们用的库就是Pixastic。
Pixastic 是一个强大的图片处理JavaScript库,可以让你轻易的对图片执行各种处理,无论是滤镜还是各神奇的效果只需要几行JS代码即可以做到。 仅需要浏览器支持Canvas。
阅读全文
http://www.iunbug.com/2012/06/07/pixastic%E5%BC%BA%E5%A4%A7%E7%9A%84%E5%9B%BE%E7%89%87%E5%A4%84%E7%90%86js%E5%BA%93%EF%BC%8C%E6%94%AF%E6%8C%81%E6%BB%A4%E9%95%9C%E7%AD%89%E8%B6%85%E8%BF%8728%E7%A7%8D%E5%A4%84%E7%90%86%E6%95%88/
到目前,本系列文章集中讲了File对象能在用户参与下对操作文件的产生的积极效果。事实上File对象是Blob的特殊类型。即大块的二进制数据,File对象的大水的类型等属性都继承自Blob。
大多时候, Blob 的 File是可以同时使用的。例如,可以用FileReader从Blob中读取数据,可以通过URL.createObjectURL()来创建一个URL对象。
阅读全文
http://www.iunbug.com/2012/06/06/%E8%AF%91javascript%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C5-bolb%E7%B1%BB%E5%9E%8B%EF%BC%88%E4%BA%8C%E8%BF%9B%E5%88%B6%E5%A4%A7%E5%AF%B9%E8%B1%A1%EF%BC%89/
从这系列的以上文章中,你已经学到以传统的方式使用文件。你可以上传文件到服务器,可以从硬盘中读取文件。这些都是最普遍的操作文件的方式。然而,还有一个全新的方式让你能简化任务,就是使用 URL 对象。
何为 URL对象?
URL对象是硬盘上指向文件的URL。例如,你想在页面上显示用户系统里的一张图片,服务器不必知道对应文件,当然也不用上传它。你只需在页面中加载它即可。是的,前面的文章中提到,获取文件的引用,读取 data URI,然后赋值给一个 ![]() 元素。不过细想其中多浪费:图片原本就在硬盘上,还要转换成另一个格式再用之?如果你创建一个URL对象,你可以直接赋值给 ![]() 元素而后直接加载文件。
阅读全文
http://www.iunbug.com/2012/06/05/%E8%AF%91file-api%E4%B9%8Bjavascript%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C4-url%E5%AF%B9%E8%B1%A1/
在上篇文章中,我介绍了在JavaScript操作文件,重点讲了如何取得File对象。 这些对象包含的文件的元数据在上传或者拖放到浏览器中时可以获取到。有了文件当然接下来就是读取文件了。
FileReader
FileReader 功能很简单: 从文件中读取数据和保存到JS变量中。此API特意设计成跟XMLHttpRequest 一样因为都是从外部读取数据。读取过程都是异步的不会造成浏览器阻塞。
FileReader 可以返回几种格式来文件数据的格式, 而且这些格式在读取文件时是必须的。通过以下几个方法可以宣告读取完毕:
readAsText() – 返回文件内容的纯文本格式
readAsBinaryString() –返回文件内容的二进制格式 (不推荐– 推荐使用 readAsArrayBuffer())
readAsArrayBuffer() – 返回文件内容的 ArrayBuffer 格式(图片文件推荐使用)
readAsDataURL() – 返回文件内容的 data URL格式
阅读全文
http://www.iunbug.com/2012/06/04/%E8%AF%91javascript%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C2-filereader/
浏览器通过FileReader 对象从文件中读取数据比较好理解。在上篇文章中, 你学到如何轻松的使用 FileReader 的各种格式从文件中读取数据。FileReader 在很多方面与 XMLHttpRequest 非常相似。
进度事件
进度事件虽如此普遍事实上它们是在另外的规范中提出的[1]。 这些事件是专门为展示数据的传输过程而设计的。比如使用FileReader 从服务器或者硬盘中读数据的过程。
六个进度事件如下:
loadstart – 表明进度开始。这是第一个触发的事件。
progress – 数据加载过程中不停觖发.
error – 数据加载失败触发.
abort –当调用 abort()来取消数据加载时触发 (XMLHttpRequest和FileReader通用).
load – 全部数据成功加载完毕触发。
loadend – 加载结束时触发,无论是error, abort, 或者 load都触发。
阅读全文
http://www.iunbug.com/2012/06/05/%E8%AF%91html5%E4%B9%8Bjavascript%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C3-%E8%BF%9B%E5%BA%A6%E4%BA%8B%E4%BB%B6%E5%92%8C%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86/
背景概述
Google已经在Mobile Web App开发上取得了很大的突破. HTML5已经拉近了Mobile设备Native App与Web App的差距. mobile Gmail 正是Google的Fixed position的最佳实践之一. iPad上的基于两栏的Gmail也运用了这种实现机制.
桌面浏览器本身就支持 position: fixed. 但 mobile Safari在iOS5之前不支持, 我们只能定制一个模拟滚动的工具来替代原生的滚动.
本教程就是在Mobile Web App上如何实现position: fixed的,就以下几点来讲:
- 如何布局
- 通过transforms实现滚动的动画效果
- 通过 transitions实现滚动的惯性冲力
- 触摸屏幕时中止滚动,即在打断 transitions的执行
跳转看详情
http://www.iunbug.com/2012/06/03/%E7%BF%BB%E8%AF%91%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E7%BC%96%E5%86%99ios%E4%B8%8Amobile-web-app%E5%AE%9E%E7%8E%B0fixed-position%E5%92%8C%E6%A8%A1%E6%8B%9F%E6%BB%9A%E5%8A%A8/
sencha touch 跟Ext js一个提供了丰富且高级的组件让我们能快速的开发出一个跨手机平台而且很绚丽的产品,这听起来不错,但很快我们发现了一个严重的问题,手机上的效果根本没有在PC上用chrome打开的效果一样让人有刷刷的快感(#@#$$#@$#),甚至让人痛苦. sencha touch和ext一样,组件是类式继承的,大大降低了使用和学习的周期.但缺点也是很明显的,你每增加一个组件,内存消耗就增加很多,可能你已经使用minify/JSBuilder/YUI compressor等工具压缩过你的代码了,如果性能还不佳,那么可以看看以下是个人的一点建议
Node.js,socket.io是什么这里我就不再多说了,很多人一直想实现一个在线 聊天的项目,现在主要把自己的配置笔记分享给大家,让更多朋友不必为此走弯路了,跳转看详情Node.js,socket.io是什么这里我就不再多说了,很多人一直想实现一个在线 聊天的项目,现在主要把自己的配置笔记分享给大家,让更多朋友不必为此走弯路了,跳转看详情
sencha touch 的list,性能非常的低,官方论坛有人说超过200个项就已经是超标了!但事实上超过40个项就非常卡了,尤其是每个项里还有图图片的时候,在iphone中可能效果不错,但到了android,你可能会摔手机.卡的原因其实是元素太多,必需限制显示的数据,但又要解决上滚和下滚显示相应的项,有人会想到用分页,其实分页相当的麻烦,下面就说一个鄙人奋战了一天摸索出来的方法,仅仅三步,几行代码,你看了也会会心一笑.
Sencha同时发布了Ext JS的两个升级版本,4.0.2依旧提升性能和BUG修复.3.4版则提供了IE9的支持.跳转看详情.Sencha同时发布了Ext JS的两个升级版本,4.0.2依旧提升性能和BUG修复.3.4版则提供了IE9的支持.跳转看详情.
sencha touch带来了最新的风格定义方案, 使得自定义风格变得非常简单也非常有效果,比如你想你的应用换一个颜色仅仅需要一行代码就能够达到,想定义一个按钮,仅一个样式就得到圆形,向前,向后等各种样式的风格按钮,因为有一套工具来帮助我们更容易的达到目的.跳转看详情.sencha touch带来了最新的风格定义方案, 使得自定义风格变得非常简单也非常有效果,比如你想你的应用换一个颜色仅仅需要一行代码就能够达到,想定义一个按钮,仅一个样式就得到圆形,向前,向后等各种样式的风格按钮,因为有一套工具来帮助我们更容易的达到目的.跳转看详情.
4.0正式版还没出到一个月,第一个小版本的更新4.01就发布了,别看版号小,但性能竟然提高达300%,比如4.0中,追加大批量的列很快,但是追加大批量的行却很慢的会导致最终执行慢.非常值得更新.跳转看 详情.
作者通过一个HTML5小游戏实例解说开发sencha touch应用如何实现离线存储,跳转看 详情!
所属分类:面包屑 最后编辑:2011-05-14 17:42
为何facebook可以挖这么多优秀的工程师去?是什么原因让facebook成为工程师的天堂?看看facebook如何管理代码或许会明白.
跳转看详情!
Ext js 4中最大的特性就是Data可以懒载入了,Grid中使用Data是最非见的,一个最佳的实践就是通过Grid做个类似Twitter的无限翻页,跳转看详情!
Sencha Animator 是目前最图形化的 CSS3动画设计的图形设计器,这次更新不仅带来三个新的编辑器( Color Picker, a Gradient Editor and a Easing Curve Editor)而且意外的发现,无论是linux上还是MAC上当然window上都有一相应的版本,如果学学习最精练的CSS3那么这是个不错的帮手,跳转看详情!
2011年4月26日,这是一个曾经值得期待如今值得庆贺的日子!是sencha的里程碑,也是Ext js 的里程碑,经过5个预览版和3个Beta版本
后,Ext js 4.0 正式发布!
一.学习门槛变低了,更加实用的实例,更加清楚详细的文档.(不用再对着Ext js的强大流口水却只是去用jQuery了)
二.更加剽悍的内核
1.一个完善的测试框架.(终于可以像JAVA一样来个单元测试,或者高级点来个TDD开发吧,再进一步点直接XP编程吧!)
2.更加清晰灵活的系统类库.组件动态加载,混合组件,可活用的依赖库.
3.沙箱模式.(不必每次要给项目新增组件时都为一点资源开销而讨论得面红耳赤了)
4.MVC模式的开发.(想改点皮肤?美工不懂JS就算了!不!Ext js 4.0满足了男女搭配干活不累的愿望)
5.SKD Tools.(又是一个惊喜,不过目前还是Beta,想想toou版是不是...???YY吧)
三.最新特性
1.强大的图表类库包.不时用得不多,估计是慢慢展现HTML5的高级动画特性吧.
2.震撼的Grid!!在3.x版本中使用Grid实现太多,但Bug也实现太多了.4.0给了我们的不仅仅是稳定,还有丰富多样的表现.
3.智能的布局.如果说3.x中布局做得很合理了,那么4.0中则是更加可塑造了!因为连Form panel都给我们乱搞了!
4.Data!!data!!必用到的东西!同时处理百万数据已经成为可能!因为可以动态懒载入了!!
5.易定制的主题框架!什么东东?3.X中变个颜色就算主题了?太扯了!4.0想啥整啥整去.因为有MVC啊!
6.更加浏览器的支持.IE9和Firefxo4也支持了.必需的!
更加详细内容,跳转看详情!
http://www.iunbug.com/article.html?objNews.id=230001
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-03-31 01:21
今天是sencha的里程碑,也是Ext js 的里程碑,Ext js 4 Beta1发布!同时处理百万数据的Grid,不再依赖第三方插件的图表组件,更多的惊喜下载来试试吧...跳转看详情.
http://iunbug.appspot.com/article.html?objNews.id=228001
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-02-21 11:42
Ext js 4很快要与我们见面了,我相信众多正在使用目前3.X版本的Ext js 的前端开发程序员们肯定很期待,3.X版本中太多的杯具和吃力的开发会因为4.0的发布而成为历史.
本预览版尽管并没有提供一个完整的EXT JS 4,但实例中我们已经收获太多的惊喜,一起下载好好享用享用吧,跳转下载..
http://iunbug.appspot.com/article.html?objNews.id=226001
彻底研究jQuery 1.5的重头戏之延迟特性
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-02-13 07:36
jQuery 1.5已经如期而至了,相信多人已经部署到项目当中,jQuery 1.5中80多个BUG的修正,.sub()方法的方便,重写的AJAX,当然还有本文中提到的延迟对象,跳转看详情...
http://iunbug.appspot.com/article.html?objNews.id=222002
Ext JS 4 倒计时之图表工具抢先详解
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-02-13 07:18
Ext js 4很快要与我们见面了,我相信众多正在使用目前3.X版本的Ext js 的前端开发程序员们肯定很期待,3.X版本中太多的杯具和吃力的开发会因为4.0的发布而成为历史.
Ext js 4的图表从IE6到IOS都是通吃的哦,跳转看详情..
http://iunbug.appspot.com/article.html?objNews.id=223001
Ext JS 4 倒计时之Model抢先深入详解
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-02-13 07:23
Ext js 4很快要与我们见面了,我相信众多正在使用目前3.X版本的Ext js 的前端开发程序员们肯定很期待,3.X版本中太多的杯具和吃力的开发会因为4.0的发布而成为历史.
前面的文章里提到Ext js 4给我们带来的变化和改善之一的Data 库包,这里再次深入详解Ext js 4的Model流程吧,跳转看详情..
http://iunbug.appspot.com/article.html?objNews.id=221003
Ext JS 4 倒计时之Data库包抢先详解
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-02-13 07:27
Ext js 4很快要与我们见面了,我相信众多正在使用目前3.X版本的Ext js 的前端开发程序员们肯定很期待,3.X版本中太多的杯具和吃力的开发会因为4.0的发布而成为历史.
那么就让我们先看看Ext js 4给我们带来的变化和改善之一的Data 库包吧.
http://iunbug.appspot.com/article.html?objNews.id=221002
彻底研究jQuery 的.bind(),.live() 和 .delegate()的使用和区别
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-02-14 00:48
很多人对jQuery 的.bind(),.live() 和 .delegate()方法使用起来很迷惑,不知道其中的区别和何时使用才算适当,那么我们就来彻底研究这三个方法的不同和使用例子吧,跳转看详情...
http://iunbug.appspot.com/article.html?objNews.id=221001
http://iunbug.appspot.com/article.html?objNews.id=217001
JQUERY 1.5 RC1发布,31号出正式版本.
所属分类:RIA(jQuery,Ext js) 最后编辑:2011-01-25 14:05
jQuery一如既往的速度,新年就给我们带来jQuery1.5版本,现在想知道新特性的可以下载jQuery 1.5 RC 来看看源码..跳转看详情...
http://iunbug.appspot.com/article.html?objNews.id=217001
李开复再出新书--《微博:改变一切》
最后编辑:2011-01-14 02:24
李开复老师最近勤更新自己的twitter,果然是有动静,最新的一条帖子里表明春节新书《微博:改变一切》将与大家见面.跳转看详情...
阅读全文 »
http://iunbug.appspot.com/article.html?objNews.id=212001
在Google app engine 上开发Java版的GAE真是太难了, 不过终于过去了,现在我的GAE也上线了,我的blog终于获得了新生啊, 这个GAE是struts2+JAP开发的,没用JDO也没用Spring.Ajax用的是jQuery. 如果想做GAE开发的希望能互相交流.http://iunbug.appspot.com/index.html
一直对myeclipse6.6总觉得有什么遗憾,后来安装了7.1突然觉得好多了..
可是,一个很让人无法忍受的问题又摆在眼前,响应太慢了,在目录里右键或者点个一个树总会卡卡的,打开什么文件都是响应太慢,这个问题在用了一段时间后变得更加突出,
能配置的我都配置了,一点起色也没有,实在想放弃,后来我想了想问题在哪里呢?我3GB的内存啊...
终于,终于被我发现了,我因学习建立了很多测试项目,我把除当前编辑的项目外其他会关了,发现奇迹出现啦,运行非常快,打开什么文件几乎是像记事本的感觉,原来打开properties文件会卡假死的问题也没有了,右键也是即时呼出..哈哈哈..
我欣喜啊...
My SQL 学习笔记
2008 09 29
首先:MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。
(1)系统管理
1.运行CMD后用CD命令到Mysql的BIN目录下(如:E:\Program File\MySQL\MySQL Server 5.0\bin)[以下几步的操作都在此目录下执行]
2.启动MySQL服务: net start mysql
3.连接MySQL: mysql -h localhost(主机) -u userName(用户) -p databaseName(可选) (然后输入密码)
4.修改root密码:
1)新密码不为空
mysqladmin -u root -p password 新密码 (然后输入:旧密码)
2)新密码为空
mysql -u root -p (然后输入:旧密码)
use mysql;
update user set password=password('') where user='root';
flush privileges; (刷新权限.)
quit (退出)
3)原密码为空
mysql -u root -p (然后回车)
use mysql;
update user set password=password('新密码') where user='root';
flush privileges; (刷新权限.)
quit (退出)
(2)基本命令(注意:执行语句以";"号或"\g"结束!)
1.列出My SQL的有多少个数据库: show databases;
2.选择某个数据库: use databaseName;
3.列出当前数据库中的所有表: show tables;
4.列出某个表的结构: desc tableName;
5.显示当前数据库: select database();
6.显示当前用户: select user();
7.显示时间: select now(); [按格式显示时间:select date_format(now(),'%Y-%m-%d %H:%i:%s');]
8.显示MySQL版本: select version();
(3)MySQL实现分页的思路
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:
每页多少条记录(PageSize)?
当前是第几页(CurrentPageID)?
现在只要给一个结果集,就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页(PreviousPageID)、下一页(NextPageID)、总页数(numPages)等等,都可以根据前边这几个东西得到。
以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。
(offset是起始行(第一行从0开始),row是要显示的行个数)
看看下面一组sql语句,尝试一下发现其中的规率。
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,10
第21至30条记录:select * from table limit 20,10
……
这一组sql语句其实就是当PageSize=10的时候取表内每一页数据的sql语句,我们可以总结出这样一个模板:
select * from table limit (CurrentPageID - 1) * PageSize, PageSize
拿这个模板代入对应的值和上边那一组sql语句对照一下看看是不是那么回事。
这些天都在学习,上J道突然发现了这篇文章,当时心里咯噔一下.......
现代软件和以往传统软件主要区别在于:现代软件基于internet互联网技术,运行于开放的网络环境,不象传统软件只是运行在封闭的局域网,运行环境的区别就决定了软件操作用户的多少,在一个开放互联网环境, 你的软件系统用户是不断增长,特别是那些对所有人群开放的社区网站系统,更是承受前所未有的访问负载。那么,这些软件系统承受的压力主要会集中在软件的哪个环节呢?如果你使用传统软件的设计思路,那么无疑压力都集中在数据库上。
随着用户的爆发量增长,在某个凌晨醒来时,你发现:数据库已死。
传统软件系统实则应该叫数据库软件系统,是一个数据库系统,开发这样的系统非常简单,成本 也非常低廉,只要根据需求先设计好数据表结构,然后,就找一些大学毕业生写大量SQL语句,虽然还使用 JAVA/PHP/.NET等语言,但实际上这些语言只是将SQL送往数据库执行的运输工,没有什么价值和地位。
所以,这样的系统运行在互联网环境下以后,主要负载就集中在数据库的SQL运行上,也就是说:整个软件系统性能关键点就集中在数据库上了,数据库是性能主角,是王者;虽然你购置了昂贵的Websphere/weblogic等应用服务器,但是由于Java只是运输工,根本起不到性能上负载分担的作用。
著名的社区网站MySpace就是因为一个好的idea,用户疯狂增长,但是系统却不能平滑承受增长的用户访问,这些用户访问网站缓慢、无法访问甚至丢失数据,他们经过几次伤筋动骨的架构升级,在微软SQLServer直接技术支持下, 好容易才勉强应付过去。看看他们痛苦经历,你是否也愿意再来一次呢?详细情况: http://www.jdon.com/jivejdon/thread/34601.html
从中可以看出,数据库性能微调和挖潜总是有限度的,对数据库性能优化提高性能的步伐永远赶不上用户增长量, 有人也提出数据库集群的概念,其实数据库集群是一个骗人概念,一般只是备份,在集群数量和failover上有制约, 否则,数据库巨头Oracle不会跑到JavaEE阵营摇旗呐喊,还最早推出EJB3服务器,并扬言要收购JavaEE过去老大 Bea Weblogic。
很显然,数据库成已经为软件系统的主要性能瓶颈了,单纯依靠数据库自救的方式已经行不通,是宣布数据库退出主角时候了,那么由谁来宣布:教皇数据库已死?无疑是Java。
Java社区早在本世纪初就提出中间件概念,用以取代数据库地位,实则就是将软件系统主要负载从数据库上转移到中间件服务器上,分担负载。 也就是说:Java社区提出:既然数据库已经成为瓶颈,修修补补也无济于事,不如放弃它,不再依赖它。
也就是说:Java不再做SQL的运输工,不再是跑龙套的了,而是主角,那么如何让Java成为主角呢?那必须依赖对象这个概念,对象是生活在中间件服务器内存中,它又是数据库数据的业务封装,它和数据库有着 千丝万缕的关系,但是它又和关系数据库存在天然矛盾,两者水火不容。
过去,我们是将业务逻辑写成SQL送往数据库执行,导致数据库成为业务逻辑主要运行瓶颈,那么,如果我们将 业务逻辑用对象概念表达,而不是SQL,那么我们的业务逻辑就围绕内存中的对象反复计算,这样,负载不是集中在 对象运行的中间件服务器上(也就是应用服务器Weblogic/websphere/JBoss/Tomcat)?而对象/中间件都是用Java 语言表达的,无疑,这样的架构,Java才成为主角。
再进一步想想:如果我们从软件系统开始之初,就使用对象分析设计,不与数据库沾边,整个流程就完全OO,分析设计直至代码都摆脱了数据库影响,这个流程如下:
分析建模 细化设计(通过Evans DDD) 架构设计 代码实现 调试测试 部署运行。
那么数据库在什么时候建立呢?数据库表结构的创建可以延缓到部署运行时,由Hibernate/EJB CMP/JPA等ORM技术自动实现。这样, 整个上游环节就不涉及数据库技术,而是使用更符合自然的表达OO方式,软件质量就更高了。我在J道网站已经大量阐述了如何从OO分析 到OO实现的过程,包括我的Jdon框架也直接支持这样一个自然方式。
现在,很多人已经理解,分析设计要用OO,但是数据库是运行阶段缺少不了的,确实,这是正确观点,我们夺取数据库的王位,不是将它打倒,只是理性和平移交权力重心而已,数据库退出主角地位,让位于Java中间件,也预示着过去数据库为王的时代的结束, 但是数据库会和操作系统一样,成为我们现代软件系统一个不可缺少重要的基础环节。
正是基于这样事实,虽然我早在2005年喊出“数据库时代的终结一文,回帖长达几百贴, 大部分是怀疑论,不信论,由此可见,由于传统观点影响和不及时与国际新思想同步,国内数据库保皇派还是有相当人数的。我BanQ人微言轻,抛出这些观点被保皇派讥讽为所疯话,那么看看,著名ORM框架Hibernate和SEAM框架创始人Gavin King的一段观点:
In almost all enterprise applications, the database is the primary bottleneck, and the least scalable tier of the runtime environment. 数据库成为了大多数企业应用的主要瓶颈,也成为了运行环境中最不具伸缩性的层。... PHP/Ruby的用户会说什么都不共享(share nothing)的架构照样具有很好的伸缩性,.... 这些傻瓜真正想的是“除了数据库以外什么都不共享(Share nothing except for the database)”的架构。更多参看这里
所谓伸缩性,就是弹性,整个软件架构既支持小负载运行,也支持大负载支持,只要增加服务器即可; 由于软件系统负载已经从SQL转移到内存中的对象上,那么我们就可以通过增加这些应用服务器数量,通过分布式计算甚至云计算,达到业务对象在多台应用服务器之间传递共享,而不必通过数据库这个环节,既减轻数据库负载,又能轻松扩充性能,不必走 集中试大型主机之路,只要添置低廉PC服务器即可。经过权威测试:websphere/weblogic的20台PC服务器集群性能不亚于一台SUN/IBM的中型机,性价比已经一目了然了。
JavaEE的服务器的集群相对于Linux等操作系统集群的好处在于:JavaEE集群能够针对某个繁忙负载大的具体业务功能进行集群,换句话说: 就是做到精确制导,精确解决问题,而显然,Linux操作系统的集群则无法直至业务核心的。
从另外一个方面看:虽然现在PHP号称走上对象路线,Ruby的铁轨开始铺进企业,但是他们的运行环境实则依赖数据库的, 特别是Ruby On Rails还是最适合Evans DDD对象建模路线,但是目前来讲还是"披着羊皮的狼",批着DDD,实则是以数据库中心。当然相信 ROR等将来会提供分布式计算环境,但是JavaEE在2002年时就通过EJB以及分布式缓存成熟稳定地提供分布式计算的中间件,并且已经大量成熟应用。
本文结束以前,我相信大家明白,在众多语言平台竞争中,为什么Java能够击败过去拳王数据库,夺得新的拳王冠军,以及他的特点所在。有人可能会说:你忘记谈.NET了,这个不用我回答你,用微软中国董事长张亚勤的话回答:8年前.NET战略很天真, 你会将你的重要业务企业计算依赖一个很天真不成熟的技术吗?除非你自己也很天真:)。
进入原文:http://www.jdon.com/artichect/dbdead.htm
摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
准备:建表
用MySQL在名为STMS数据库中建表Titems
src/org.lxh.hibernate4.TItems.java
1package org.lxh.hibernate4;
2/**... 阅读全文
摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
准备:建表
用MySQL在名为STMS数据库中建表
Titem
Tbook
Tdvd
src/org.lxh.hibernate3.TItem.java
1package org.lxh.hiber... 阅读全文
摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
准备:建表
用MySQL在名为STMS数据库中建表personx
src/org.lxh.hibernate2.Personx.java
1package org.lxh.hibernate2;
2
... 阅读全文
摘要: 关于如何配置请参看:Hibernate学习笔记(一)--用MyEclipse 6.5+MySQL 5.0的环境跑起来
准备:建表
用MySQL在名为STMS数据库中建表persons
src/org.lxh.hibernate.Contact.java
1package org.lxh.hibernate;
2
3... 阅读全文
摘要: 准备:建表
用MySQL在名为STMS数据库中建表person
在MyEclipse中建连接数据库的连接名为MySQL_localhost,在Driver JARS中导入MySQL的驱动程序mysql-connector-java-5.1.6-bin.jar
一.新建名为MySQLHibernate的Web Project
File—new—project—MyEcli... 阅读全文
我不喜欢太个性的主题,就是因为伤眼睛,朋友问我每天对着电脑怎么不近视?我的桌面看起来整洁,颜色很让人舒服,自己电脑里有几十G的资料目录也很清晰,就像有人偶尔打开的我衣柜或抽屉会吃惊的发现衣服用具都整洁的叠放着(在大学里至少我认识的同学朋友没有一个是这样子的).这些都是为了自己,一个好习惯受益终生,深有体会.
好了,要想有如我Blog一样的效果只要选择KJC主题,然后在"通过CSS定制页面"里粘贴以下CSS代码就可以了.
1 #top
2 { }{
3 background-color: #20375f;
4 background-image: url( "http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_4HeaderBg.jpg" );
5 background-position: right;
6 height: 90px;
7 vertical-align: middle;
8 }
9 #sub
10 { }{
11 background-color: black;
12 background-image: url( "http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_12HeaderBg.jpg" );
13 color: #CCCCCC;
14 font-size: 12px;
15 padding: 4px;
16 }
17
18 .posthead
19 { }{
20 background-color: #eeeeee;
21 background-image: url( "http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_icon-titledoc.png" );
22 background-position: 5px center;
23 background-repeat: no-repeat;
24 border-bottom: 1px solid #CCCCCC;
25 padding: 4 4 4 25;
26 color: #444444;
27 font-size: 9px;
28 }
29
30
31 body
32 { }{
33 font-size: 13px;
34 font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
35 background-color: #D9D6CB;
36 padding-left:20px;
37 padding-right:20px;
38 padding-top:10px;
39 background-image: url("http://www.blogjava.net/images/blogjava_net/tidelgl/33863/o_7forbg.gif");
40
41 }
|