自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (11)
  • 收藏
  • 关注

原创 hibernate——继承关系以及三个subclass标签的区别

Java类中有继承关系,相应的在hibernate中,也有继承关系,子类反应到数据库中,就有多种实现形式了,子类和父类可以映射到同一张表中,子类也可以单独映射成一张表,但是用不同的标签实现,子类表和父类表的关系也不同。在映射文件中,有三个标签可以实现继承关系,分别是:subclass、joined-subclass、union-subclass,先陈述一下这三个标签的区别:subclass标签

2011-11-30 01:53:46 11278

原创 hibernate——一对一、多对一和多对多关系的比较

现在学习完了这几种映射关系,但是有点乱,这里来小结一下。关键是表之间如何产生映射关系,以及产生的表的结构。1、一对一映射:一对一是通过one-to-one标签来产生映射关系的,其实,如果单单说是建立两个表之间的关联,只要在一个映射文件中配置one-to-one标签就可以了,在另一个映射文件中,也做类似的配置,只会起到关联的作用,建立起双向的关联。这里举Person和IdCard的例子,Id

2011-11-28 18:33:57 4989 1

原创 hibernate——多对多映射

其实不管是什么映射,很关键的一点就是表之间是如何产生映射的。映射关系的产生,关键是在映射文件中配置的,用特定的标签产生特定的映射关系,多对多也不例外。多对多的映射关系,都是转换成多对一的关系,即新增了一个表,来存储两个表之间的关系。此处,我们举一个老师和学生的关系,关键来分析一下,两者是如何产生多对多的映射关系的。先建立两个类:Teacher和Studentpublic class Tea

2011-11-28 15:36:02 1541

原创 hibernate——一对一映射(1)

一对一映射本来以为挺简单的,但是一接触发现还是有些琢磨头的,但是理解之后,才会发现原来是挺简单的。一对一映射关系,也有一个主表和从表的概念,例如人和身份证就是一对一的关系,如果将IdCard的主键设为Person的主键,那么Person为主表,而IdCard为从表,这样的映射关系决定了从表不能单独存在,必须依赖于一个主表。但是主表却可以单独存在,因为它不受从表的限制。并且得先有主表中的记录,才

2011-11-28 00:47:06 1242

原创 hibernate——多对一和一对多映射浅析

首先应该清楚多对一和一对多只是站在不同的角度看待问题,其本质是一样的。在思考这个问题的时候,不要把这两个概念混在一起,这样不容易理解,而要分开,站在不同的角度去解决同一个问题。就拿员工和部门的例子来说,我们站在不同的角度,可能会遇到如下的几种情况:站在员工的角度看,是多对一的关系: 1、来了新员工,但是还不知道该分配到哪个部门,只有先把员工保存到员工表中,部门那一列设为空,待以后再更新

2011-11-27 18:56:52 10468 1

原创 hibernate——两种查询方式

一种是hql语句查询,用Query接口去实现;一种是条件查询,用Criteria接口去实现。这两种方式作用差不多,只是后者更符合面向对象一些。用hql语句查询,如下例:public static void query(String name){ Session session=null; try{ session=HibernateUtil.getSession();

2011-11-26 16:55:26 2683

原创 hibernate——简单的增删改查

增删改比较简单,查稍微复杂一点。查询有两种方式,一种是通过hql语句和Query接口来实现,一种是条件查询,通过Ctiteria接口来实现,下面举例说明:UserDao接口:package com.suo.hibernate.dao;import java.util.List;import com.suo.domain.User;public interface UserD

2011-11-26 16:46:12 6548 1

原创 hibernate——Session接口中定义的saveOrUpdate()方法浅析

Session接口中定义的saveOrUpdate方法,集合了save和update方法,根据对象的状态来选择是进行保存还是更新,那它是怎么判断当前对象的状态的呢?API中对这个方法是这样说的,它是根据一个unsaved-value来决定的。这个值是在映射文件中的标签中的一个属性。标签表示的是表的主键,若主键是字符串,那么这个值默认的是空,如果主键是int型,那么这个值默认的是0。然而我们可以改变

2011-11-26 01:47:18 11585 3

原创 hibernate——和数据库关联的对象的三种状态

和数据库关联的对象有三种状态:瞬时,持久,脱管。瞬时:在数据库中还没有与该对象关联的记录,仅仅是一个普通的对象而已,超过作用域,就会被回收。一般都是new出来的对象,并且还没有与session建立联系。持久:与session建立了联系,并且在数据库中已经有了和该对象关联的记录,并且session没有关闭,事务没有提交,处于持久状态的对象,其状态改变,hibernate会检测到,在进行提交时

2011-11-26 00:46:19 1660

原创 hibernate——初步认识

开始学习hibernate了,跟着网上的教学视频边看边学。现在有些迷茫,不知道学这些东西,以后能不能用得上,也不知道未来会发展成什么样子,也不知道我的基础算是打好了没有,总觉得学这些框架,有点浮沙筑高台的感觉,心里很不踏实。知道的都是些表面的东西,框架底层是什么样的,看看那些源代码,想看懂很有难度啊。另外,虽说设计很有魅力,但是基石打不牢,设计也往往是空中楼阁。希望,我在学习的时候和之余,能够多多

2011-11-25 15:29:42 893 1

原创 struts2文件下载

下载相对上传来说就要简单一点了,主要是使客户端获得服务器端的文件输入流,但是在配置Action时,还是有一些要注意的:1)result的type必须为stream类型 2)attachment表示不管什么类型的文件,都要弹出下载对话框,若不指定,则默认为内联形式,即inline,即浏览器能打开的就直接打开,不能打开的就提示保存。3)filename指定的是在保存对话框中,显示的文件的名

2011-11-23 20:01:17 741

原创 struts2文件上传

上传文件其实分为两个步骤:首先,将客户端传递过来的文件保存到struts.multipart.saveDir键所指定的目录下,如果没有指定,那么就保存到javax.servlet.context.tempdir环境变量所指定的目录下,然后,Action中所定义的成员变量file,实际指向的是临时目录中的临时文件,在服务器通过IO的方式,将临时文件写入到指定的服务器的目录中。在写表单时,

2011-11-23 19:47:55 944

原创 用拦截器实现session登录

这个功能是这样的,用户在访问网站时,先要进行登录,即要访问处理登录的Action,若没有登录,即访问除了登录的Action之外的Action,则会被拦截器拦截,跳转到错误页面,提示用户还没有进行登录。所以这个拦截器的作用是如果是登录,即请求的是LoginAction,那么就不拦截这个请求,让其通过拦截器,进行登录如果请求的是别的Action,若在没有进行登录的情况下,那么拦截器就会起作用,跳转

2011-11-21 00:26:37 13750 1

原创 实现拦截器的三种方法

说是三种方法,实际上是一种方法,其实只要这个类实现了Interceptor接口,即可成为一个拦截器类。第一种方法就是直接实现Interceptor接口,这样的话,就要实现这个接口中的三个方法。第二种方法是继承自AbstractInterceptor类,这是个抽象类,实现了Interceptor接口,并且对里面的init()和destroy()方法进行空实现,而把intercept()方法设

2011-11-20 23:55:54 16836 3

原创 Action的监听器——PreResultListener

这个监听器的作用是在执行完成Action后,在转发到其他Action或是显示结果之前,会调用这个类中的beforeResult()方法,以实现一些功能。通过invocation的addPreResultListener方法对监听器进行注册。示例:监听器类:package com.suo.listeners;import com.opensymphony.xwork2.Actio

2011-11-20 23:17:35 1953

原创 Struts2 中拦截器和Action的调用关系

所谓的拦截器就是指实现了Interceptor接口的类,该接口中定义了三个方法:init(),destroy(),intercept()。init()用于在服务器启动的时候,初始化这个拦截器。destroy()用于清理分配给拦截器的资源,intercept()是用来起拦截作用的,这个方法还有一个ActionInvocation类型的参数invocation,并且返回一个字符串。ActionInvo

2011-11-19 16:31:52 10108 2

原创 Struts2中防止表单重复提交的两种方式

防止表单重复提交,这是个很重要的知识点,而且很有用。当用户提交了一个表单,此时,地址栏显示的是处理这个表单的Action的地址,若此时刷新,则会重新发送一次表单数据,即又进行了一次提交,若这个Action是用来处理用户注册的,那么重复提交会再一次向数据库中插入之前已经插入的数据,这显然不是我们想要的。有两种方法,可以防止表单重复提交,一种是用Action的重定向,一种是用Session Token

2011-11-19 00:54:41 8948

原创 struts2中的参数传递

这个问题其实一直很困惑我的,在写平常的jsp程序时,传递参数很容易,通过表单,request,链接等都可以传递,但是到了struts2中,在写的各个地方,都看不到任何的request或是response,不知道该怎么传递参数了,到了今天学习了struts2中的参数传递这一节,终于解开了疑惑,但是还不是很清楚,有待以后探索。在这里说一下,struts2中,Action之间如何传递参数。Actio

2011-11-19 00:20:41 9492 1

原创 struts2模型驱动

和模型驱动的相对应的是属性驱动,虽然名字叫的挺牛的,其实很好理解。属性驱动就是在Action中,定义的是和表单中对应的一个个属性,然后有属性的get/set方法。而模型驱动就是事先定义了一个模型,即Model,将表单传递过来的数据封装成一个对象后,再传递给Action,这和Struts1的这种机制很相似。那么这两种方法,哪个好一些呢?还有待实践的检验。。。。。这里还是用登录的例子分析一下模型驱

2011-11-16 12:56:09 1733

原创 struts2异常处理

Struts2中的异常处理有两种形式:一种是局部异常处理,一种是全局异常处理在struts.xml中的package下有两个这样的标签:和,前者指定异常处理的类,后者是异常处理结果,通常指定一个显示异常信息的页面。而在action中,也有类似全局的异常处理,和。全局的异常处理可以被该包下所有的action使用,而局部异常处理只能被一个action使用。若在某一个action中抛出了

2011-11-16 12:32:29 879

原创 Struts2输入校验以及错误信息处理(2)——用Struts2定义好的校验框架进行校验

Struts2的输入校验有两种方式:一种是用Action中定义的validate()方法进行校验,一种是用Struts2定义好的校验框架进行校验。前者里面的逻辑判断要自己写,而后者只需要传递相应的参数即可。不管是哪种方式,程序执行的流程都是一样的,执行流程如下:1、对表单传递过来的数据,先进行类型转换2、执行校验3、若校验不合法,则跳转到以input命名的resul

2011-11-12 20:15:17 2596

原创 Struts2输入校验以及错误信息处理(1)——用Action中定义的validate()方法进行校验

Struts2的输入校验有两种方式:一种是用Action中定义的validate()方法进行校验,一种是用Struts2定义好的校验框架进行校验。前者里面的逻辑判断要自己写,而后者只需要传递相应的参数即可。不管是哪种方式,程序执行的流程都是一样的,执行流程如下:1、对表单传递过来的数据,先进行类型转换2、执行校验3、若校验不合法,则跳转到以input命名的result页面,若合法,

2011-11-12 19:02:51 2429

原创 Struts2的自定义类型转换和简单的输入校验

这里关键是对自定义类型的理解,它和8个基本数据类型的地位是一样的,只不过这个是你自己定义的类型。那么在Struts2中什么时候要用到数据类型转换呢?其实,我们一直在用,只是我们没有感觉到而已,Struts2对8个基本数据类型以及Date、String等常见类型,会自动的用内建的类型转换器进行转换,这个工作是Struts2做的,我们只是用到了它这样一种服务而已。比如说在登录页面,用户填写的用

2011-11-07 15:15:35 1635

openstack 服务重启/调试 脚本

openstack 服务重启/调试 脚本, 针对devstack环境

2012-12-22

数据重现+文件系统原理精解与数据恢复最佳实践.马林

数据重现+文件系统原理精解数据重现+文件系统原理精解与数据恢复最佳实践.

2012-09-30

汇编语言王爽

汇编语言王爽

2012-09-30

openstack nova cfg

openstack nova cfg

2012-08-11

Struts2.2.3.1帮助文档,免积分下载

Struts2.2.3.1帮助文档,chm格式,免积分下载

2011-11-05

Boson NetSim for CCNP v6.0.Beta2b以及注册机和帮助文档

里面有Boson NetSim for CCNP v6.0.Beta2b以及注册机和帮助文档,全都安装测试过,可以注册使用!

2011-10-13

数据结构全部程序打包下载

这是和数据结构相关的程序,每一章都有相关的源代码,适合刚学习数据结构的同学使用,好好学习哦!您也可以到这里免积分下载:http://bbs.quanlaila.com/thread-1947-1-1.html

2011-09-25

拓扑排序的C++源代码

拓扑排序的源代码,是用栈来实现的拓扑排序,是很基础的东西。

2010-12-01

哈夫曼树及哈夫曼编码

这个资源是哈夫曼树及哈夫曼编码的C++代码,我觉得哈夫曼编码很有用,这就是技术使之然!

2010-11-16

用线性表实现的通讯录,C++代码实现

用线性表写的通信录管理系统,资源只是把源代码写出来,并没有设计界面!代码写的也比较粗陋,适合刚学C++和数据结构的同学使用!

2010-11-13

单链表C++代码实现、插入、删除结点等

单链表C++代码实现、插入、删除结点等,还有有关单链表的练习作业题

2010-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除