`
文章列表
看到一个关于人人架构中的问题,觉得很不错,分享给大家...     由开源软件组成的系统 与很多大型的网站一样,人人网的系统全部是由开源软件构建的。使用Nginx做前端接入,resin做容器,Memcached做通用cache,MySQL做数据 ...
  设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。下面我们举例介绍第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 ...
分享今天看到的一片文章:   本文首先讨论了基于第三范式的数据库表的基本设计,着重论述了建立主键和索引的策略和方案,然后从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化方案。 1 ...
  大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本 ...
 本文将通过一些实例来简单介绍NIO库提供的一些新特性:非阻塞I/O,字符转换,缓冲以及通道。 一. 介绍NIONIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。1. Buffer:它是包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。2. Charset:它提供Unicode字符串影射到字节序列以及逆影射的操作。3. Channels:包含socket,file和pipe三种管道,它实际上是双向交流的通道。4. Selector:它将多元异步I/O操作集中到一个或多个线程中(它可以被看成是Unix中s ...
  1:前言 我们在开发系统的过程中,缓存是个有用的模块。下面我就把我们的缓存模块给大家做个简单介绍。 2:类图 3:简单介绍 缓存分为两个部分。一个是缓存结构一个是存储结构。缓存结构主要解决对象什么时候过期而存储结构主要解决对象存储到什么地方。 3.1缓存结构 我们在处理缓存过期这个功能的时候提供了两种过期时间。一种是绝对过期一种是相对过期。所谓绝对过期指的是到了时间点该对象就从缓存中移除,而相对过期则指的是只要在一段时间内有访问对象则该对象永不过期(如果一段时间内没有访问对象则过期)。 对于如何确定缓存过期我们使用了个守护线程。通过后台线程在检测缓存的过期。 待改进 ...
Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长。通过在开发环境中实现Lombok,开发人 员可以节省构建诸如hashCode()和equals()这样的方法以及以往用来分类各种accessor和mutator的大量时 间。 先到http://projectlombok.org/下载lombok.jar. 在下载lombok.jar存放的目录中使用java -jar lombok.jar安装jar。默认你使用的是eclipse IDE。 然后重启eclipse就可以来鉴证lombok的强大啦…… 以user类为例,原来需要对所有的属性添加get ...
对于一般的java值对象或实体对象来说, 这三个方法总是应该覆盖的equals, hashCode, toString, 所以我总是把值对象从下面这个类继承 public abstract class BaseObject implements Serializable {    /**     * DOCUMENT ME!     *     * @return DOCUMENT ME!     */    public abstract String toString();     /**     * DOCUMENT ME!     *     * @param o DOCUMEN ...
struts.tag.altSyntax 该属性指定是否允许在Struts 2标签中使用表达式语法,因为通常都需要在标签中使用表达式语法,故此属性应该设置为true。该熟悉的默认值是true。   struts.devMode 该属性设置struts 2 应用是否使用开发模式,如果设置该属性为true,则可以在应用出错时显示更多,更友好的出错提示。该属性值接受true 和 false 两个值,该属性的默认值是false,通常,应用在开发阶段,将该属性设置为true。当进入产品发布阶段后,则该属性设置为false。   struts.i18n.reload 该属性设置是否每次HT ...
今天碰到一个问题,那就是数据库的空值处理问题;其实这个问题也是老生常谈了,如果是在命令行里面打命令的话估计不会有什么问题;关键是现在的开发中到少不了用orm进行持久层的处理的了,具体原因在这里不在赘述;现在的开发中,我用的是ibatis;今天的问题是这样的把 一个对象的各个属性保存到为一条记录的字段,这问题才普通不过了;问题是如果属性是空的话怎么办了,想过把一个默认值赋予对象的属性,但感觉这样的思路非常的别扭,一个方面是由于加大了不必要的工作量,二是数据库那端也比较难管理;为了健忘,整理如下:   <insert id="saveMpsOperatorAuthority ...
为什么使用ibatis而不用spring jdbcTemplate   1:ibatis仅仅是对jdbc薄薄的一层封装,完全不丧失sql的灵活性  2:ibatis所有的sql都可以放在配置文件中,这样有利于sql的集中管理,特别是在sql tuning是很容易把得到所有的sql,如果使用spring jdbctemplate,那么难免要在sql adv上调试好了sql,然后在粘贴到java代码中,会有一大堆的StringObj+=和 StringBufferObj.append() ,如果sql 很长,那么总是copy , paste 也很烦,ibatis没有这样的问题。  3: ...
对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择。即使在持久层框架层出不穷的今天,iBatis 凭借着易学易用、轻巧灵活等特点,也仍然拥有一席之地。尤其对于擅长 SQL 的开发人员来说,iBatis 对 SQL 和存储过程的直接支持能够让他们在获得 iBatis 封装优势的同时而不丧失 SQL 调优的手段,这是 Hibernate/JPA 所无法比拟的。具体而言,使用 iBatis 框架的主要优势主要 ...
 Lob类型          (1) 基本介绍          Oracle和plsql都支持lob(large object) 类型,用来存储大数量数据,如图像文件,声音文件等。Oracle 9i realse2支持存储最大为4g的数据,oracle 10g realse1支持最大8到128万亿字节的数据存储,依赖于你的db的block size。         在plsql中可以申明的lob类型的变量如下: 类型        描述 BFILE        二进制文件,存储在数据库外的操作系统文件,只读的。把此文件当二进制处理。 BLOB        二进制大对象。存储 ...
HTML5是HTML标准的下一个版本。越来越多的程序员开始HTML5来构建网站。如果你同时使用HTML4和HTML5的话,你会发现用HTML5从头构建,比从HTML4迁移到HTML5要方便很多。虽然HTML5没有完全颠覆HTML4,它们还是有很多相似之处,但是它们 ...
今天看到一片相关的文章,觉得不错,以供分享。尽管讲的不是很透彻,但是大概的技术点提到了,对我们门外之人还是很有启发的……其中缺少的图片在以后找到会一并附到里面。   目 录 1引言9 1.1互联网的发展9 1.2互联网网站建设的新趋势9 1.3新浪播客的简介11 2网络层架构12 2.1镜像网站技术12 2.2 CDN内容分发网络13 2.3应用层分布式设计16 2.4网络层架构小结17 3交换层架构17 3.1第四层交换简介17 3.2硬件实现18 3.3软件实现18 4服务器优化19 4.1服务器整体性能考虑19 4.2 Socket优 ...
Global site tag (gtag.js) - Google Analytics