Hibernate和Mybatis应该如何选择

介绍 Hibernate和Mybatis都是J2EE领域优秀的ORM框架。不同于纯JDBC方式在数据操作时的繁琐,他们很好的隐藏了前者的一些操作细节,提供给调用方更为友好简洁的API。 Hibernate Hibernate更自动化,抽象层次更高,更面向对象。开发者在Hibernate中配置好Java Bean同数据库表的映射关系以及Java Bean之间的关联关系后,就可以专注于业务代码编写,仅通过Hibernate的API进行数据库操作,最终提交给数据库执行的SQL由Hibernate自动生成,在正确使用的情况下,其生成的SQL都是高效妥帖的。值得一提的是,这些配置都是一次性的,不需要反复修改。 MyBatis 比起Hibernate来说,Mybatis的工作方式显得不那么自动,所以也有人称其为半自动化框架。使用Mybatis,开发者不光要关注业务代码怎么写, »

为什么自测很重要

一,故事 做为一个开发人员,对自己交付的成果可靠性负责,这很重要。保证可靠性最重要的手段之一就是充分的自测。 我刚入职场所供职的公司,虽然母公司是一家美国五百强,但我所在的部门比较小,主要负责中国国内中小型企业的供应链管理系统的开发和实施。加之国内中小型企业普遍信息化水平并不高,并发量也不大,所以他们对软件的质量和性能往往没有什么要求,只要能满足其业务需求即可,对于细节不太在意。这些客观原因导致我们团队在交付产品时较为随意,往往没有专业测试团队对产品进行质量把控,大多数时候开发在大概自测后即部署客户测试环境,由客户和现场实施人员测试发现问题,然后再反馈修改,这导致很多项目的交付周期较长,交付软件也并不完美。而这种随意本身,对于一个刚入职场,职业素养还处在塑造期的我来说也是一种伤害。 后来我进入了一家国内领先的电商企业。 »

读《奇点临近》

经过长长的时间,我终于读完了《奇点临近》,总得来说,这是一本好书。书中有很多观点同《失控》相同,不同的是《奇点临近》基于人类或则智能的进化阶段叙事,层级清晰。 由于个人原因,本书阅读跨度时间过长,读完后很多细节已记不太清了,独留几个感触较深的点。 1、人类或者整个智能进化和扩散的速度并不是线性的,而是指数的。由于人类掌握的知识总量越来越多,在此基础上所生发的技术进步的速度相比之前更快。这条指数曲线存在一个拐点,在其之前,我们感觉不到技术进步有多快,但当知识积累到一定量之后,过了这个拐点, »

跨域请求之CORS

浏览器同源政策 浏览器为了防止跨站恶意脚本攻击,而对脚本跨站请求所做的一种限制,称为浏览器同源策略(Same-origin policy)。 该策略虽然能够防止跨站脚本的攻击,但同时也限制了跨站信息的沟通。而对于大型网站系统来说,基于脚本跨站通信场景(基于javascript的ajax请求)实实在在存在的。 为了绕过或放松同源策略的限制,出现了一些列技术,如:JSONP、WebSockets、Cross-origin Resource Sharing(Cors),Cross-document-messaging等等。 什么是cors Cors全称跨域资源共享(Cross-origin resource »

Java泛型有什么卵用?

一,什么是java泛型 java泛型是指,在类和方法调用时,指定具体的类型参数(type Parameter),从而实现编译时类型检测,保证运行时类型安全的机制。 支持类型参数调用的类和方法定义方式如下: 类 将泛型参数声明放在类名后的尖括号中,多个类型参数以逗号分隔。调用时在类名后传具体的类型 声明 public class TestClass<K,V> { K key; V value; »

Java序列化(Serializable)

什么是序列化 在java中,将一个对象变成字节称为序列化。反之称为反序列。 为什么需要序列化 方便网络传输 方便存储 方便跨平台 不可能直接存储并还原一个对象,在计算机世界,存储通信都是以字节流形式进行的。 Java对象序列化生成的字节流并不一定要通过java来进行反序列,它完全可以跨平台使用.net甚或其他程序处理。 序列化后的字节流由于更精简,所以其通信成本更小,优于xml,所以许多RPC框架会使用字节流通信。 如何序列化 java原生方式 hessian Kryo java原生方式:通过java的ObjectInputStream和ObjectOutputStream,可以将实现了Serializable接口的对象进行反序列化和序列化。 由于序列化的过程本身需要耗时, »