08 2013 档案

摘要:GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上。更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。 下面,就让我们一起来看看,在GitHub平台上,究竟有哪些Android开源项目最火,也最受开发者欢迎。 阅读全文
posted @ 2013-08-28 18:24 huidaoli 阅读(448) 评论(0) 推荐(0) 编辑
摘要:如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务。 软件开发同样如此。你可以从软件开发者如何使用工具中看出他水准如何。有经验的开发者精于使用工具。对你目前所使用的工具不断研究,同时了解一些替代品的使用,当你目前所用的工具无法满足你的需要时可以填补空缺。 记住了这些,我将向你展示一份关于各种工具的长长的列表。其中一些我每天都用,其他的我看情况使用。如果你还有更多的工具想展示在这个列表里,可以跟我留言哦亲。 阅读全文
posted @ 2013-08-28 15:57 huidaoli 阅读(281) 评论(0) 推荐(0) 编辑
摘要:canvas的一些小知识,清单 1. 绘制 canvas 矩形 清单 2. 绘制 canvas 路径清单 3. 使用平移 / 旋转变形方法绘制复杂位图清单 4. 实现简单滤镜效果 阅读全文
posted @ 2013-08-23 15:43 huidaoli 阅读(266) 评论(0) 推荐(0) 编辑
摘要:第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行; 第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件。 首先,在手机上安装两个apk包。 一个是SL4A(Scripting Layer for Android),这个是Android的脚本环境,前身是ASE(Android Scripting Environment),Android系统上的所有脚本都将在这个环境下执行,下载地址:sl4a_r3,下载后将扩展名改为.akp即可,也可以到谷歌官方下载http://code.google.com/p/android-scripting/downloads/list。(注:如果你只关注第二部分可跳过这里) 另一个是PFA(PHP for Android),这个是为Android系统提供PHP脚本支持的安装包,下载地址:PhpForAndroid_r1,同样地下载后将扩展名改为akp即可,官方下载http://phpforandroid.net/start。 运行SL4A,界面如下: 阅读全文
posted @ 2013-08-23 13:34 huidaoli 阅读(563) 评论(0) 推荐(0) 编辑
摘要:Android系统在超级终端下必会的命令大全(adb shell命令大全) 阅读全文
posted @ 2013-08-23 13:19 huidaoli 阅读(10772) 评论(0) 推荐(1) 编辑
摘要:合理的使用开源代码能够大大降低开发的难度和工作量,随着Android开发的火热,其开源项目也越来越多,这里分享了74个Android开源项目代码,供读者学习和取用。 阅读全文
posted @ 2013-08-20 18:34 huidaoli 阅读(1880) 评论(0) 推荐(0) 编辑
摘要:本文为各位网友朋友们介绍了29种adb shell的命令,喜欢的需要的可以收藏下,希望对大家有所帮助。废话不多讲,开始阅读吧。 阅读全文
posted @ 2013-08-20 18:28 huidaoli 阅读(762) 评论(0) 推荐(0) 编辑
摘要:作为Android开发者,最头疼是什么?相信大家会异口同声的说Bug!的确,这些是避免不了的同时也是最烦人,调Bug,改Bug,一个项目做完,剩下的几乎全是Bug的调试,有的公司很可能在项目上线前还有改不完的Bug,针对这些困扰Android开发者的种种难题,整理出了这些难题或是Bug的解决方案,希望能给大家带来帮助。 阅读全文
posted @ 2013-08-20 18:14 huidaoli 阅读(490) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2013-08-17 17:06 huidaoli 阅读(1) 评论(0) 推荐(0) 编辑
摘要:通常的网站,很多是以war包形式发布的 下边介绍如何自行制作war包 首先要求制作war包的环境安装j2sdk-1.4.2以上版本 比如,安装了Plesk的服务器,就都已经具有了j2sdk 切换到j2sdk的bin目录,找到jar命令 在linux上,jar命令位于:/usr/java/j2sdk1.4.2/bin 在win上,jar命令位于:C:\Program Files\SWsoft\Plesk\Additional\JDK\bin 阅读全文
posted @ 2013-08-17 11:59 huidaoli 阅读(667) 评论(0) 推荐(0) 编辑
摘要:android实战项目演练视频。 阅读全文
posted @ 2013-08-15 10:11 huidaoli 阅读(1810) 评论(11) 推荐(0) 编辑
摘要:在说明s:iterator标签的使用前,先了解下struts2中的Value Stack。这里参考了webwork中对Value Stack的描述,由于struts2是在webwork的基础上进行升级的,因此webwork对于Value Stack的表述同样适用于struts2。在这里不描述Value Stack具体做什么,但有两点需要注意: 阅读全文
posted @ 2013-08-13 16:22 huidaoli 阅读(2610) 评论(0) 推荐(0) 编辑
摘要:本部分主要介绍struts.xml的常用配置。 1.1. 包配置: Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。 在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置。它的常用属性有: l name:必填属性,用来指定包的名字。 l extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action定义、拦截器定义等。 l namespace:可选属性,用来指定该包的命名空间。 阅读全文
posted @ 2013-08-13 14:11 huidaoli 阅读(268) 评论(0) 推荐(0) 编辑
摘要:服务端: import java.io.*; import java.net.*; import java.util.*; public class ChatServer { boolean stat = false; ServerSocket ss = null; List clients = new ArrayList();//用于存客户端 阅读全文
posted @ 2013-08-12 14:53 huidaoli 阅读(256) 评论(0) 推荐(0) 编辑
摘要:myeclipse 8.5最新注册码(过期时间到2016年)这几天myeclipse弹出注册码过期,去网上一搜,要么已过期,要么就剩一两个月。倒腾了半天,自己申请了几个注册码,给大家分享一下Subscriber:huazai Subscription Code:uLR8ZC-855550-61565856301609203Subscriber:feifei Subscription Code:sLR8ZC-855550-61565856701742177Subscriber:kobe Subscription Code:xLR8ZC-855550-615658598517277 阅读全文
posted @ 2013-08-12 14:34 huidaoli 阅读(273) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2013-08-12 11:00 huidaoli 阅读(16) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2013-08-12 10:45 huidaoli 阅读(3) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2013-08-12 10:00 huidaoli 阅读(1) 评论(0) 推荐(0) 编辑
摘要:史玉柱几年前回顾自己企业成长经历时说的这句话,现在又引起广泛的讨论。更有不少职场人士希望老板们见到这句话、实行这句话。史玉柱说:“我过去下海到现在已经十好几年了,总结下来,给员工高工资的时候,实际上成本是最低的,公司的利润是最高的时候。如果用高工资,在你和他(员工)的这种关系上面,你是主动的。如果你比前面两个竞争对手工资就这么高一截,我坚信,一年之后你回过头来看,你的利润是最高的,你的成本是最低的。” 阅读全文
posted @ 2013-08-11 11:10 huidaoli 阅读(306) 评论(0) 推荐(0) 编辑
摘要:让你少走10年的弯路的19点忠告: 从来没有想写点东西的想法,今天改变一下、因为都是在变化的,而思来想去,因为没有启发和给予他人的价值,就写下了上面的题目和下面的我的见解: 1、朋友请管住自己的嘴,有一句话说的好,培养一个人要千句话,而毁人就一句话。积德吧! 2、没有永远的朋友也没有永远的敌人,这话真的很耐用。 3、朋友们不要听别人当面对你的话,背后的话,才是真的!所以,古有“狡兔三窟”,而今天的你需要至少要有三方面的消息渠道,归结为你的最终判断! 阅读全文
posted @ 2013-08-11 10:51 huidaoli 阅读(191) 评论(0) 推荐(0) 编辑
摘要:android中sqlite3常用命令 阅读全文
posted @ 2013-08-09 11:29 huidaoli 阅读(323) 评论(0) 推荐(0) 编辑
摘要:andeoid学习笔记七-Android中Broadcast的Intent大全 阅读全文
posted @ 2013-08-09 11:24 huidaoli 阅读(609) 评论(0) 推荐(0) 编辑
摘要:android学习笔记六-Android中Activity的Intent大全 阅读全文
posted @ 2013-08-09 11:23 huidaoli 阅读(798) 评论(0) 推荐(0) 编辑
摘要:android学习笔记五-Android中的category大全 阅读全文
posted @ 2013-08-09 11:15 huidaoli 阅读(345) 评论(0) 推荐(0) 编辑
摘要:android学习笔记四-Android中自定义属性的使用 阅读全文
posted @ 2013-08-08 15:06 huidaoli 阅读(187) 评论(0) 推荐(0) 编辑
摘要:android学习笔记三-Android中Theme和Style的应用 阅读全文
posted @ 2013-08-08 15:05 huidaoli 阅读(212) 评论(0) 推荐(0) 编辑
摘要:学习笔记二-在AndroidManifest.xml文件中,可以对每一个Activity设置android:theme 阅读全文
posted @ 2013-08-08 14:48 huidaoli 阅读(183) 评论(0) 推荐(0) 编辑
摘要:学习笔记-eclipse中的十大快捷键 阅读全文
posted @ 2013-08-08 14:41 huidaoli 阅读(241) 评论(0) 推荐(0) 编辑
摘要:Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。 阅读全文
posted @ 2013-08-08 14:08 huidaoli 阅读(257) 评论(0) 推荐(0) 编辑
摘要:公司运营当中,不管是传统行业还是IT行业,都有各种各样的问题,其中最主要的就是人员的流失,特别是初创公司,在薪资以及其他福利和条件不如别人的情况下,如何避免人员流失?如何聚集人心是很重要的,以下是一些公司运营中的几点建议,不奢求能吸引多少人才,但至少可以帮助那些初创公司减少人才流失。 阅读全文
posted @ 2013-08-05 14:54 huidaoli 阅读(253) 评论(0) 推荐(0) 编辑
摘要:经常看到各种介绍办公环境的文章,我还是想知道他们的员工每周六天的工作都是什么样的?每天都做些什么? 阅读全文
posted @ 2013-08-05 14:51 huidaoli 阅读(251) 评论(0) 推荐(0) 编辑
摘要:在工作中难免会遇到一些这个问题那个问题,当然在mysql中也不例外。今天就让我们来学学mysql中一些比较常用的东西 。 1.有时我们想去查某张表中的字段,但是表中的数据多,字段也很多,如果用select的语句的话,我想你可能看不到你想看到的字段,而且显示的也很乱。那我们应该怎么办呢。 我们可 以用语句:show columns from 表名来查看。结果很清晰的。 阅读全文
posted @ 2013-08-05 11:42 huidaoli 阅读(537) 评论(0) 推荐(0) 编辑
摘要:struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置文件。以下介绍几个struts.xml中常用到的标签: 1、 利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用标签引入其他配置文件。 比如一个网上购物程序,可以把用户配置、商品配置、订单配置分别放在3个配置文件user.xml、goods.xml和order.xml中,然后在struts.xml中将这3个配置文件引入: 阅读全文
posted @ 2013-08-05 11:01 huidaoli 阅读(191) 评论(0) 推荐(0) 编辑
摘要:客户端发出一个请求,服务器端 StrutsPreparedAndExceuteFilter接收请求,如果该请求是一个以 .action 结尾请求,则Struts2将请求转发至相应的Action,进行数据类型转换,如果数据类型转换出错,则返回到 input 指定的结果页面,如果数据类型转换没有出错,则调用setXX 方法进行设值,如果使用了validate()验证方法(或者是使用了验证框架),则进行相应的验证,如果验证出错,回到 input 指定的结果页面,如果没有使用验证,或者验证没有出错,则执行 execute() 方法,返回到相应的页面 阅读全文
posted @ 2013-08-05 10:00 huidaoli 阅读(382) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2013-08-02 18:28 huidaoli 阅读(1) 评论(0) 推荐(0) 编辑
摘要:改进你的系统的最好的方法是先避免做蠢事。 我并不是说你或你开发的东西蠢,只是有些决定很容易被人们忽略掉其暗含的牵连, 认识不到这样做对系统维护尤其是系统升级带来多大的麻烦。作为一个顾问,像这样的事... 阅读全文
posted @ 2013-08-02 12:00 huidaoli 阅读(142) 评论(0) 推荐(0) 编辑
摘要:优点:  v 提高安全性  v 简化mysql查询  v 减轻带宽负担  缺点:  v 增加服务器负担  v 对我们开发者来说,难度大一点  PHP中的函数  Function funname(参数){  //函数体  Retur... 阅读全文
posted @ 2013-08-02 11:59 huidaoli 阅读(375) 评论(0) 推荐(0) 编辑
摘要:触发器  1. mysql触发器 情景说明  情景设置,如图,当我们点击了购买,将会发生什么?    现有如下两张表  商品表  编号(id)名称(name)价格(price)库存(stock)  1F2战斗机10000100  2法拉... 阅读全文
posted @ 2013-08-02 11:58 huidaoli 阅读(561) 评论(0) 推荐(1) 编辑
摘要:事务概念及存储引擎  1.0 为何要事务?  先来看一个场景,银行转账汇款:  李彦宏和周鸿祎天天打架,现在让李彦宏给周鸿祎转款1000 元  设计如下表  account表  编号(id)用户名(user)金额(cash... 阅读全文
posted @ 2013-08-02 11:56 huidaoli 阅读(221) 评论(0) 推荐(0) 编辑
摘要:快速入门:使用ecshop 的goods表,查询平均价格前三高的栏目。  传统方式:  select cat_id,avg(shop_price) as aprice from goods  group by cat_id  order by aprice desc limit 3; ... 阅读全文
posted @ 2013-08-02 11:55 huidaoli 阅读(771) 评论(0) 推荐(0) 编辑
摘要:登陆到mysqlmysql -u 用户名 -p [数据库]显示数据库show databases;使用一个数据库use 数据库名;显示表show tables;纠正数据库编码set names '编码';创建一个数据库create database '库名... 阅读全文
posted @ 2013-08-02 11:54 huidaoli 阅读(192) 评论(0) 推荐(0) 编辑
摘要:全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性。它为维护特定的复制拓扑结构下服务器的DBA们大幅度改善他们的工作状况提供了多种可能性。然而,你还应该明白当前实现的一些局... 阅读全文
posted @ 2013-08-02 11:53 huidaoli 阅读(597) 评论(0) 推荐(0) 编辑
摘要:地球人都知道,更新mysql配置my.cnf需要重启mysql才能生效,但是有些时候mysql在线上,不一定允许你重启,这时候应该怎么办呢?看一个例子:12345678910mysql> show variables like 'log_slave_updates&.. 阅读全文
posted @ 2013-08-02 11:52 huidaoli 阅读(1489) 评论(1) 推荐(0) 编辑
摘要:本文针对MySQL数据库服务器查询逐渐变慢的问题, 进行分析,并提出相应的解决办法,具体的分析解决办法如下:会经常发现开发人员查一下没用索引的语句或者没有limit n的语句,这些没语句会对数据库造成很大的影... 阅读全文
posted @ 2013-08-02 11:51 huidaoli 阅读(932) 评论(0) 推荐(0) 编辑
摘要:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结:话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小... 阅读全文
posted @ 2013-08-02 11:50 huidaoli 阅读(369) 评论(2) 推荐(0) 编辑
摘要:如今GitHub已成为全球最流行的开源项目托管平台,但也有质疑声音——Github中的大多数项目并不算是开源项目。这是因为Github中大多数项目并没有明确声明所使用的许可证。根据版权法规定,如果开源项目中没有包含... 阅读全文
posted @ 2013-08-02 11:49 huidaoli 阅读(1634) 评论(0) 推荐(1) 编辑
摘要:内连接: 只连接匹配的行左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边... 阅读全文
posted @ 2013-08-02 11:47 huidaoli 阅读(427) 评论(0) 推荐(0) 编辑
摘要:事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息... 阅读全文
posted @ 2013-08-02 11:46 huidaoli 阅读(166) 评论(0) 推荐(0) 编辑
摘要:本文介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。索引是一种特殊的文件(InnoDB数据表上... 阅读全文
posted @ 2013-08-02 11:45 huidaoli 阅读(164) 评论(0) 推荐(0) 编辑
摘要:对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库设计、sql语句优化、数据库参数配置、恰当的硬件资源.. 阅读全文
posted @ 2013-08-02 11:44 huidaoli 阅读(258) 评论(0) 推荐(0) 编辑
摘要:呵呵,毫不客气地说,Delphi 2010 这个版本可以算是 Delphi 的一个“里程碑”,为什么这么说?因为这个版本实现了几个 Delphi 应该有却一直没有的功能Delphi 2010 的新功能其实并不是很多,并没有那么“惊艳”,主要都集中在“细节”改进。首先来张 About,版本号是:Delphi 2010 version 14.0.3391.20582:目前发现有以下 5 点改进:1、Object Inspector 中的 Boolean 属性显示了 Checkbox这个改进比较明显,看下图就明白了,直接点击 Checkbox 即可改变 Boolean 的值;2、可以用 Tab 键和 阅读全文
posted @ 2013-08-02 11:40 huidaoli 阅读(1030) 评论(0) 推荐(0) 编辑
摘要:Delphi 2010已早由Embarcadero公司发布。作者Kim Madsen作为一名资深的Delphi开发者,在他的博客中谈到了Delphi 2010的新性能、它的使用感受以及对Delphi语言未来的期望。博文如下:Delphi 2010使用的第一感觉是:是时候为它抛弃Delphi 7了。Delphi 2010比以往的Delphi版本都要快,而且它保留了一些Delphi 7的特性,比如可以将旧的条形控件(componentbar)找回。但这同时也带了相关的问题(比如在重启Delphi 2010之后componentbar的位置看起来挪动了),不过这只是细节问题,相信在之后的修补中会解决 阅读全文
posted @ 2013-08-02 11:39 huidaoli 阅读(764) 评论(0) 推荐(0) 编辑
摘要:PostgreSQL 是一种对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大、特性最丰富和最复杂的自由软件数据库系统.它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产品开发项目之一, 有着非常广泛的用户.PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.能在多平台下---包括Linux、 FreeBSD和Windows等---运行,并且支持多语言的开发. 阅读全文
posted @ 2013-08-02 11:35 huidaoli 阅读(412) 评论(0) 推荐(0) 编辑
摘要:1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数 阅读全文
posted @ 2013-08-02 11:32 huidaoli 阅读(226) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2013-08-02 11:13 huidaoli 阅读(1) 评论(0) 推荐(0) 编辑
摘要:今年(2003年)是我大学毕业满10年的日子,也是我投身IT技术的第10年。一直想能对过去的经历做些回顾与反思,以更好地走向未来,但总没有下笔。刚好CSDN举办“讲述程序员的故事”征文,这件事成了一个引子,我终于趁着暑期有时间,敲了一天键盘,便有了这篇人生自述。   10年对于一个人来说是比较长的一个阶段,10年之后,同期大学毕业的同学情况差异之大,让人叹息命运之变幻莫测。   我在此记录下了我的生活足迹,由于时间较长,有些事记得不太清了,但我是尽量真实的记录当时的情况,有兴趣看我这篇长文的人请把我看成是一个在你我中间一块生活,一起喜怒哀乐,一起努力的平凡人,相信我们之间会有很多跨越时空的情感交流。 阅读全文
posted @ 2013-08-01 23:50 huidaoli 阅读(1283) 评论(2) 推荐(0) 编辑
摘要:IT 技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点。   众所周知,现在是一个知识爆炸的时代,知识更新非常快。据测算,一个大学毕业生所学到的知识,在毕业之后 2 年内,有效的不过剩下5%。对于软件行业而言,这种形势更为明显,我们赖以立足的,不在于我们现在掌握了多少知识,而是我们有多强的学习能力。   学习人人都会,但不同的人学习效果却千差万别。一个善于学习的人,首先应该是一个善于读书的人,懂得如何高效地学习,并且拥有良好的心态。唯有如此,才能成为一个卓有成效的学习者,成就卓越的程序人生。 阅读全文
posted @ 2013-08-01 23:47 huidaoli 阅读(307) 评论(0) 推荐(0) 编辑
摘要:职业的选择,总的来说,无非就是销售、市场、客服、物流、行政、人事、财务、技术、管理几个大类,有个有趣的现象就是,500强的CEO当中最多的是销售出身,第二多的人是财务出身,这两者加起来大概超过95%。现代IT行业也有技术出身成为老板的,但实际上,后来他们还是从事了很多销售和市场的工作,并且表现出色,公司才获得了成功,完全靠技术能力成为公司老板的,几乎没有。这是有原因的,因为销售就是一门跟人打交道的学问,而管理其实也是跟人打交道的学问,这两者之中有很多相通的东西,他们的共同目标就是“让别人去做某件特定的事情。”而财务则是从数字的层面了解生意的本质,从宏观上看待生意的本质,对于一个生意是否挣钱,是否可以正常运作有着最深刻的认识。 阅读全文
posted @ 2013-08-01 23:45 huidaoli 阅读(194) 评论(0) 推荐(0) 编辑
摘要:在一般情况下,Hibernate需要将执行转换为SQL语句从而性能低于JDBC。但是在经过比较好的性能优化之后,性能还是让人相当满意的,特别是应用二级缓存之后,甚至可以获得比较不使用缓存的JDBC更好的性能。 阅读全文
posted @ 2013-08-01 23:44 huidaoli 阅读(383) 评论(0) 推荐(0) 编辑
摘要:一共4层,com.demonstration.hibernate.basedao是我加的用来进一步解耦hibernate和spring的耦合。 原来的官方解释如下: SpringSide对Hibernate做了三层封装: 第一层:HibernateGenericDao,基于spring的HibernateDaoSupport,但加入了分页函数与各种Finder函数,并使用泛型避免了返回值强制类型转换。 第二层:HibernateEntityDao,基于HibernateGenericDao,用泛型声明Dao所管理的Entity类,默认拥有该entity的CRUD方法。 第三层:HibernateExtendDao,基于HibernateEntityDao,主要扩展各种选择性的功能。 关于三个类的详细注解请看JavaDoc,大致描述如下: 阅读全文
posted @ 2013-08-01 23:43 huidaoli 阅读(3372) 评论(0) 推荐(0) 编辑
摘要:MyBatis的mapper接口不需要自己实现,框架会自动帮我们实现,到时候直接调用就可以了。定义的mapper接口中的方法可以有多个参数吗?答案是肯定。在Ibatis时代是自己通过代码实现如何调用xml中定义的statement,接受的参数只能是一个,所以处理的办法通常是用Map的方式。当然这个也能使用在MyBatis上,不过MyBatis提供更加简单的方法。下面就通过例子来说明。 阅读全文
posted @ 2013-08-01 23:40 huidaoli 阅读(1152) 评论(0) 推荐(0) 编辑
摘要:模糊查询: 工作中用到,写三种用法吧,第四种为大小写匹配查询 1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 2. 使用 ${...} 代替 #{...} SELECT * FROM tableName WHERE name LIKE '%${text}%'; 3. 程序中拼接 阅读全文
posted @ 2013-08-01 23:39 huidaoli 阅读(418) 评论(0) 推荐(0) 编辑
摘要:工具类可以生成Springmvc+mybatis的相关类和配置文件,并具有增删查改的功能, 因为初期这工具只打算给内部使用,所以代码有些地方不是那么整洁,注释也不是很完善,不过工具也没什么技术含量,并没有很复杂的逻辑,一般人都能看懂,所以大家也就将就点吧。 工具目前存在bug和不完善的地方,如果发现有bug或者好的建议告诉我一起交流下,有兴趣大家可以自己动手修改和完善,改的更适合自己,框架不仅仅生成SM的代码,只要调整下就可以生成其他框架的代码,如SSI,SSH都可以的。 阅读全文
posted @ 2013-08-01 23:36 huidaoli 阅读(968) 评论(2) 推荐(1) 编辑
摘要:SpringMVC完成初始化流程之后,就进入Servlet标准生命周期的第二个阶段,即“service”阶段。在“service”阶段中,每一次Http请求到来,容器都会启动一个请求线程,通过service()方法,委派到doGet()或者doPost()这些方法,完成Http请求的处理。 在初始化流程中,SpringMVC巧妙的运用依赖注入读取参数,并最终建立一个与容器上下文相关联的Spring子上下文。这个子上下文,就像Struts2中xwork容器一样,为接下来的Http处理流程中各种编程元素提供了容身之所。如果说将Spring上下文关联到Servlet容器中,是SpringMVC框架的第一个亮点,那么在请求转发流程中,SpringMVC对各种处理环节编程元素的抽象,就是另外一个独具匠心的亮点。 阅读全文
posted @ 2013-08-01 23:34 huidaoli 阅读(799) 评论(0) 推荐(0) 编辑
摘要:在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Servlet类。 除此之外,没有其他了。我们启动web服务器,在浏览器中输入地址,就可以看到浏览器上输出我们写好的页面。为了更好的理解上面这个过程,你需要学习关于Servlet生命周期的三个阶段,就是所谓的“init-service-destroy”。 以上的知识,我觉得对于你理解SpringMVC的设计思想,已经足够了。SpringMVC当然可以称得上是一个复杂的框架,但是同时它又遵循Servlet世界里最简单的法则,那就是“init-service-destroy”。我们要分析SpringMVC的初始化流程,其实就是分析DispatcherServlet类的init()方法,让我们带着这种单纯的观点,打开DispatcherServlet的源码一窥究竟吧。 阅读全文
posted @ 2013-08-01 23:33 huidaoli 阅读(505) 评论(0) 推荐(0) 编辑
摘要:上一篇文章《SpringMVC源码剖析(一)- 从抽象和接口说起》中,我介绍了一次典型的SpringMVC请求处理过程中,相继粉墨登场的各种核心类和接口。我刻意忽略了源码中的处理细节,只列出最简单的类甚至是接口类,目的就是让大家先从最高层次的抽象意义上来审视SpringMVC这个框架;我也刻意将SpringMVC和Struts2做对比,目的是让大家看到,SpringMVC究竟吸取了Sturts2设计思想中的哪些精华,又弥补了它的哪些遗憾。 DispatcherServlet作为SpringMVC的核心之中的核心类,再怎么强调它的重要性也不为过。SpringMVC所有的核心类和接口,都密集地出现在DispatcherServlet的源码中,SpringMVC源码剖析,很大程度上可以说也是在剖析DispatcherServlet这一个类。这一篇文章里,我先说几点关于DispatcherServlet的前世今生,希望能帮助你更好的理解它。 阅读全文
posted @ 2013-08-01 23:32 huidaoli 阅读(335) 评论(0) 推荐(0) 编辑
摘要:SpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的面纱,本文的代码,都是基于Spring的 3.1.3RELEASE版本。 任何一个框架,都有自己特定的适用领域,框架的设计和实现,必定是为了应付该领域内许多通用的,烦琐的、基础的工作而生。SpringMVC作为一个表现层框架,也必须直面Web开发领域中表现层中的几大课题,并给出自己的回答: 阅读全文
posted @ 2013-08-01 23:31 huidaoli 阅读(752) 评论(0) 推荐(0) 编辑
摘要:spring3.0.5开始支持jpa2.0了,但是最近笔者在使用他的的时候发现了3.0.5的包与2.5.5相比,有所精简.其他外部的包,我们需要自己下载. AOP必须的spring包 org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE.jar org.springframework.context-3.0.5.RELEASE.jar org.springframework.core-3.0.5.RELEASE.jar org.springframework.expression-3.0.5.RELEASE.jar AOP使用的时候需要的外部包. 阅读全文
posted @ 2013-08-01 23:30 huidaoli 阅读(231) 评论(0) 推荐(0) 编辑
摘要:Spring有两大核心,IOC和AOP。IOC在java web项目中无时无刻不在使用。然而AOP用的比较少,的确也是一般的项目用的场所不多。事务控制基本都用,但却是Spring封装的不需要我们再去实现,但Spring的AOP远不止这些,不能因为项目中没有使用,而不去学习及理解。我觉得这是作为一个java web软件开发人员必须具备的技能。业内很多将AOP应用在日志记录上,可惜我们项目没这么做,后面需要学习下。在这先把Spring AOP的基本用法,在脑子里理一边,做一次积累。 阅读全文
posted @ 2013-08-01 23:29 huidaoli 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 在上面的代码中 execution 是方法运行 public 是指定public的方法,也可以不写直接:execution(* cn.dao.IUserDAO.*(..) * 是任意返回值,可以有返回值,也可以是void没有返回值的方法 cn.dao.IUserDAO.* 是指定目录下的指定类任意方法 cn.dao.IUserDAO.insert* 是指定目录下的指定类insert开头的任意方法 cn.dao.IUserDAO.*.* 是指定 阅读全文
posted @ 2013-08-01 23:27 huidaoli 阅读(338) 评论(0) 推荐(0) 编辑
摘要:此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习SpringAOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。 1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用情况 2.监控部分重要函数,若抛出指定的异常,需要以短信或邮件方式通知相关人员 3.金控部分重要函数的执行时间 阅读全文
posted @ 2013-08-01 23:26 huidaoli 阅读(295) 评论(0) 推荐(0) 编辑
摘要:AOP是Spring的核心,Spring不但自身对多种框架的集成是基于AOP,并且以非常方便的形式暴露给普通使用者。以前用AOP不多,主要是因为它以横截面的方式插入到主流程中,担心导致主流程代码不够清晰,定位问题不够方便,而在计费二期的项目里需要一个很适合用AOP来做的功能,就是要把对外接口和所调用的外部接口的耗时时间给记录下来,这个需求主要来自于计费一期的联调,常常发生系统间交互不够顺畅的情况,这就需要看每个接口调用时间来判定是谁的问题。 计费中心是整个后台系统的中间环节,与其他系统交互很多,这样的接口也很多,如果在每个接口的调用前后加时间记录比较繁琐,也影响主流程代码的美观,因此比较优雅的方式是用AOP,在不侵入原有代码的情况下,加上对接口调用的监控,并且可以在不需要的时候很容易移除。今天尝试了一下,感觉还挺好用,下面讲述一下实施步骤: 1)引入包依赖 阅读全文
posted @ 2013-08-01 23:25 huidaoli 阅读(1464) 评论(0) 推荐(0) 编辑
摘要:SpringSide是以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,较佳实践的总结与演示。 经过漫长的7个月和6个RC版本后,SpringSide 4.0的稳定版终于赶在黄石公园爆发前上画了。《一代宗师》还是留给外星人看吧。 整个SpringSide 4.0版的主要修改记录: •DAO框架转用Spring Data JPA + Hibernate 4.x,同時增加MyBatis的演示。 阅读全文
posted @ 2013-08-01 23:24 huidaoli 阅读(231) 评论(0) 推荐(0) 编辑
摘要:目录(?)[-] 1.四MyBatis主配置文件 1.properties属性 2.settings设置 3.typeAliases类型别名 4.typeHandlers类型句柄 5.ObjectFactory对象工厂 6.plugins插件 7.environments环境 8.mappers映射器 阅读全文
posted @ 2013-08-01 23:23 huidaoli 阅读(598) 评论(0) 推荐(0) 编辑
摘要:目录(?)[-] 1.三动态SQL语句 1.selectKey 标签 2.if标签 3.if where 的条件判断 4.if set 的更新语句 5.if trim代替whereset标签 1.trim代替set 6.choose when otherwise 7.foreach 1.参数为array示例的写法 2. 3.参数为list示例的写法 阅读全文
posted @ 2013-08-01 23:22 huidaoli 阅读(389) 评论(0) 推荐(0) 编辑
摘要:1.二SQL语句映射文件2增删改查参数缓存 1.select 2.insert 3.updatedelete 4.sql 5.parameters 1.基本类型参数 2.Java实体类型参数 3.Map参数 4.多参数的实现 5.字符串代入法 6.cache缓存 阅读全文
posted @ 2013-08-01 23:20 huidaoli 阅读(247) 评论(0) 推荐(0) 编辑
摘要:目录(?)[-] 1.二SQL语句映射文件1resultMap 1.resultMap 1.idresult 2.constructor 3.association联合 1.使用select实现联合 2.使用resultMap实现联合 4.collection聚集 1.使用select实现聚集 2.使用resultMap实现聚集 5.discriminator鉴别器 阅读全文
posted @ 2013-08-01 23:18 huidaoli 阅读(463) 评论(0) 推荐(0) 编辑
摘要:一MyBatis简介与配置MyBatisSpringMySql MyBatis简介 MyBatisSpringMySql简单配置 搭建Spring环境 建立MySql数据库 搭建MyBatis环境 创建实体类 StudentEntity 创建数据访问接口 创建SQL映射语句文件 创建MyBatis的mapper配置文件 修改Spring 的配置文件 测试StudentMapper 阅读全文
posted @ 2013-08-01 23:10 huidaoli 阅读(379) 评论(0) 推荐(0) 编辑
摘要:本文的目标: 从实现的角度来认识SpringIoC容器。 观察的角度: 从外部接口,内部实现,组成部分,执行过程四个方面来认识SpringIoC容器。 本文的风格: 首先列出SpringIoC的外部接口及内部实现所涉及到的组件列表; 其次介绍组件之间的相互关系以对整个执行过程有所把握; 然后针对每一个组件的简单介绍,包括组件的类结构图,核心功能描述,重要接口的重要方法描述; 接下来看SpringIoC容器实现对面向对象基本设计原则的遵守; 最后是后记部分。 术语约定: 组件:本文中的组件是指在功能概念上具有相对独立性的功能单元,物理结构上的特征一般由一组接口、一组抽象类、一组具体实现类、异常类、工具类所组成; 这里的组件是一种相当狭义的描述,根据上下文的不同,组件可以有不同的表现形式,如:相对于Spring框架,SpringIoC容器就是Spring框架的一个组件, 相对于系统的整体框架设计,Spring框架就是整体框架的一个组件,这里组件与模块的概念基本等同。 接口方法:一般定义在接口中,提供给外部调用的方法,接 阅读全文
posted @ 2013-08-01 17:46 huidaoli 阅读(522) 评论(0) 推荐(0) 编辑
摘要:mybatis+spring+struts2框架整合 阅读全文
posted @ 2013-08-01 16:55 huidaoli 阅读(423) 评论(0) 推荐(0) 编辑