MVC个人总计大全

    xiaoxiao2021-04-16  29

    项目: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),实现对象的拷贝

     

    转载请注明原文地址: https://ju.6miu.com/read-673065.html

    最新回复(0)