00:00
下面的话呢,我们来说说这个session DAO。它有什么用啊,它可以把session写到数据库里边。然后呢,对那个session来进行增删改查操作,我们通过这样的一个UML图,我们来看一下。Zero为我们操作session提供了哪些API?最顶层呢?Session DAO,这是一个接口,Abstract session DAO,这是这个接口的一个简单实现,它有两个实现类,第一个实现类呢,开session DAO,看你名字就知道是吧?它提供了缓存的功能,不过它还是一个抽象类,这边memory session do。它可以在内存当中去操作session。那catching session DA有一个enterprise catch session DA,这是一个实现类,它对这个catching session提供了一个简单的实现,开发的时候呢,我们通常建议大家来直接继承这个enterprise cash session DA基本是基本的这个思路,这块也有,大家也可以来看一下。
01:05
CTRLC,我们来看一下这个。Enterprise。Catch session,那么这里边的话呢,主要有这样的几个方法,我们看哈do create创建的时候会来回调这个方法,看到了吧,这个方法题目的实现。后边的读更新写都是空方法,我们看这个时候我们在创建的时候的话呢,它需要干什么呀?它先需要获取这个session的ID,看到了吧,我点一下获取session的ID,它需要用什么呢?它需要用到一个属性叫session ID gen,所以说我们在配置文件里边配置这个enterprise catch session Du的时候,一定要为其设置。Session ID,我们点一下它。看它有哪些实训类呢,诶这里边有一个,我们可以来选这个Java ID session ID genator OK,那以上的话呢,就是基本配置的一些原则。
02:06
因为这个用的其实不是很多哈,所以说我把这配置文件呢,放在PPT里边了,我们看一下最上边我们可以来配一个session ID,这个类的话呢,就是我们刚才我们说这个是吧,就是这个什么呀,Javau ID session ID阵瑞配好了。这个备好之后,我们我们来配这个session DAO,那么我们这个session DA,我们通常情况下我们需要实现谁啊,我们需要继承不是实现啊,继承这个类这个enterprise。Session就可以了,那这里面我们需要注入。这样的一个属性叫这个session edit letter,如果要需要缓存的话,我们再指定一个缓存的名字,看到了吧,然后我们需要来配置一个session session manager叫session管理器,然后把我们这session DA搞到我们这个session manager里边,那session manager给谁呢?Manager我们需要配置给security manager,能想到吧,Set manager我们需要给他security manager过来。
03:12
看session manager看见了吧,把这session manager配置为manager所对应的属性就可以了。然后我们就可以来对。筛审来进行增删改查操作,哪个里边的方法呢,就是这块的这四个方法。那问题来了,如何来进行正常检查呀?我们实际上我们需要利用对象输入输出流来进行读写操作。注意听哈,对象输入输出流,这个对象输入输出流呢,我们需要去包装。字节数组输入输出流,OK,看一下它的基本实现,这是那个呃,Catch。那这是数据表,数据表的话呢,ID有一个session,对于这个session放的,实际上它是什么呀?它是一个呃,长的一个文本。
04:07
再过来我们来看,诶,我用的是JD bc termt,我们头两行代码是一样的,是一样的,说白了就是什么呢?我没动这两行吗?是吧,返回值实际上我也没动,那我在进行。插入的时候我们看哈in色的into,然后的话呢,插入我需要把这个session进行一个序列化,看一下方法,序列化的话就是利用了这个对象输出流。对象输出流,然后的话呢,它包装了这个BA stream,看到了吧,就利用利用这样的方式来进行写入的。再回来。就是进行写入,那查询的话呢,同样是用我们这个,呃,对象输入流来进行读取,再看一眼。
05:01
就这个嘛,进行读取,那进行更新跟删除,这个相对而言的话呢,就简单一点了啊,这个是最简单的,那我们在进行更新的时候,也需要用到序列化这样的一个效果,那这个代码的话呢,我们会在这个呃,视频里边,我们给大家上课的话呢,我们就不写了,这个思路明白是比较关键的。我们把这个思路的话,我们再来梳理一下哈。首先我需要。继承。Enterprise catch session DA,这里边可以实现四个方法,那我在进行读写更新的时候,我们需要把那个session审进行序列化跟反序列化操作,怎么做呢?利用对象输入输出进行读写,对象输入输出流需要包装。字节数组输入输出流,这个就是我们这个什么呀,就是我们这块这个工具类的写法。比如这样写吗?进行配置的时候的话呢,诶我们看到了。
06:03
我这个呃,Session DAO,我需要注入这个session ID,因为我需要用到它,对吧,兄弟有这个位置吗?我需要用到它。如果需要缓存的话,我们还需要指定缓存的名字,然后需要把这个session DAO给谁呢?给session manager,这个session manager,再给security manager,整个这个思路就可以顺来了,代码附送,大家可以看代码的话呢,进行一个实现。嗯,再说一个小东西。在这叫什么呀?叫绘画验证调度器,什么意思啊,用于定期验证那个绘画是不是过期。实际上的话呢,我们需要在底层开启一个线程,这个线程去验证那个session是不是过期了,所以说它一定会有性能的问题,开发的时候用的不多,大家知道有这个东西就可以了。外部环境下我们可以用session validation schedule,那C提供了一个的实现。
07:06
就那个定制调度器是吧,Co session validation schedule也可以用,OK。
我来说两句