MVC个人总计大全

项目:bookStores

 

utils工具类知识请求和响应

参考文档:http://blog.csdn.net/u013817349/article/details/50847904

C3p0: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目hibernatespring等。

 

 

entity实体类知识,序列化

 

1.是什么:

序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。

序列化分为两大部分:序列化和反序列化。

(1)序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。

(2)反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例。

 

2.特点

如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象的临时数据。

 

3.什么时候使用序列化:

一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。

二:对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。

三:如果一个对象要放到HttpSession对象中,其类型必须实现Serializable,应该具有序列化的能力

         我没打HttpSession对象是放在服务器中的,不可能在不同的电脑上传递。那为什么需要序列化。猜测可能需要保存到文件中。为什么要保存到文件中呢?

         客户端访问了某个能开启会话功能的资源,WEB服务器就会创建一个与该客户端浏览器对应的HttpSession对象,这个对象要占用服务器的内存空间,需要消耗大量的服务器内容。即使用户已经离开或者关闭了浏览器,web服务器仍然会保留与之对应的HttpSessioin对象,消耗大量的服务器资源。为了避免这种无效的消耗,服务器将对象保存到文件系统或者数据库,在适当的时机在反序列化。

 

ObjectOutputStream---加工流,可以 帮助进行序列化

ObjectInputStream ---加工流,可以帮助进行反序列化

 

 

dao层servicece层知识,单例模式和dbutils

参考文档:http://blog.csdn.net/tolcf/article/details/49312191单例

参考文档:http://www.cnblogs.com/xdp-gacl/p/4007225.htmldbutilsdbutils

 

1特点:

  1、单例类只能有一个实例。

  2、单例类必须自己创建自己的唯一实例。

  3、单例类必须给所有其他对象提供这一实例。

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。

 

//懒汉式单例类.在第一次调用的时候实例化自己   

public class Singleton {  

    private Singleton() {}  

    private static Singleton single=null;  

    //静态工厂方法   

    public static Singleton getInstance() {  

         if (single == null) {    

             single = new Singleton();  

         }    

        return single;  

    }  

}  

Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。

(事实上,通过Java反射机制是能够实例化构造方法为private的类的,那基本上会使所有的Java单例实现失效。

 

//饿汉式单例类.在类初始化时,已经自行实例化   

public class Singleton1 {  

    private Singleton1() {}  

    private static final Singleton1 single = new Singleton1();  

    //静态工厂方法   

    public static Singleton1 getInstance() {  

        return single;  

    }  

}  

饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。

---------------------------------------------------------------------------------

commons-dbutils简介 

commons-dbutils 是 Apache 组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。

  commons-dbutilsAPI介绍:

org.apache.commons.dbutils.QueryRunner

org.apache.commons.dbutils.ResultSetHandler

  工具类:

org.apache.commons.dbutils.DbUtils

 

QueryRunner类使用讲解

  该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。

  QueryRunner类提供了两个构造方法:

默认的构造方法

需要一个 javax.sql.DataSource 来作参数的构造方法。

ResultSetHandler接口的实现类

ArrayHandler:把结果集中的第一行数据转成对象数组。

ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。

BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。

BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

ColumnListHandler:将结果集中某一列的数据存放到List中。

KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。

MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List

 

Servlet层知识,请求和响应,会话,BeanUtils

请求和响应,会话看老师文档

 

BeanUtils:BeanUtils工具由Apache软件基金组织编写,提供给我们使用,主要解决的问题是:把对象的属性数据封装到对象中Beanutils工具在使用时几乎只用到以下几个方法,其中一个方法通常情况下都是使用匿名内部类。

BeanUtils.setProperty(bean,name, value);其中bean是指你将要设置的对象,name指的是将要设置的属性(写成”属性名”),value(从配置文件中读取到到的字符串值)

BeanUtils。copyProperties(bean, name, value),和上面的方法是完全一样的。使用哪个都可以

ConvertUtils.register(Converterconverter , ..),当需要将String数据转换成引用数据类型(自定义数据类型时),需要使用此方法实现转换。

BeanUtils.populate(bean,Map),其中Map中的key必须与目标对象中的属性名相同,否则不能实现拷贝。

BeanUtils.copyProperties(newObject,oldObject),实现对象的拷贝

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值