摘要: servletContext编辑servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。ServletContext实例是通过 getServletContext()方法获得的,由于HttpServlet继承Servlet的关系GenericServlet类和HttpServlet类同时具有该方法。目录1概要▪1).初始化参数▪2).属性2ServletContext的用途▪安装方法:▪在Web应用范围内存取共享数据的方法:▪访问web应用的静态资源▪跨多个请求,用户和Servlets1概要编辑每个应用都会有一个ServletContext对象与 阅读全文
posted @ 2014-03-14 17:35 杉木的征途 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 一、解析:1、一对多双向关联也就是说,在加载班级时,能够知道这个班级所有的学生。同时,在加载学生时,也能够知道这个学生所在的班级。2、我们知道,一对多关联映射和多对一关联映射是一样的,都是在多的一端加外键了。只不过是角度不同,我们从Classes一端来看,它就是一对多,它维护了一个一指向多的关系。在加载班级时,能够把学生加载上来。返过来,多个学生是属于一个班级的,它就是多对一。3、而像我们的用户和组,就是多对一。多对一维护了一种知道,就是多指向一,所以在加载学生时,就能拿到这个学生所在的班级。如果能够拿到它所在的班级,那么必须在对象模型Student中,持有Classes对象的一个引用。所以要 阅读全文
posted @ 2014-03-13 15:17 杉木的征途 阅读(2078) 评论(0) 推荐(0) 编辑
摘要: “assigned”主键由外部程序负责生成,在 save() 之前指定一个。“hilo”通过hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。“seqhilo”与hilo 类似,通过hi/lo 算法实现的主键生成机制,需要数据库中的 Sequence,适用于支持 Sequence 的数据库,如Oracle。“increment”主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用。“identity”采用数据库提供的主键生成机制。如DB2、SQ 阅读全文
posted @ 2014-03-13 14:30 杉木的征途 阅读(1100) 评论(0) 推荐(0) 编辑
摘要: Hibernate缓存原理:对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等,但随之带来的就是数据访问效率的降低,和性能的下降,而缓存就是弥补这一缺点的重要方法. 缓存就是数据库数据在内存中的临时容器,包括数据库数据在内存中的临时拷贝,它位于数据库与数据库访问层中间.ORM在查询数据时首先会根据自身的缓存管理策略,在缓存中查找相关数据,如发现所需的数据,则直接将此数据作为结果加以利用,从而避免了数据库调用性能的开销.而相对内存操作而言,数据库调用是一个代价高昂的过程. 一般 阅读全文
posted @ 2014-03-13 14:18 杉木的征途 阅读(8081) 评论(0) 推荐(0) 编辑
摘要: Hibernate核心接口Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration。这五个接口构成了Hibernate运行的基本要素,可以执行存取,持久化,事务管理等操作。这五个接口可以位于系统的业务逻辑层和持久化层。下面是一张Hibernate的关系图:Session接口:Session接口 Session 接口对于Hibernate 开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户 阅读全文
posted @ 2014-03-13 14:07 杉木的征途 阅读(12143) 评论(0) 推荐(0) 编辑
摘要: 声明:本文参考Struts2版本为2.3.1.2,内容仅供参考,限于笔者水平有限,难免有所疏漏,望您能友善指出。本文发表于ITEYE,谢绝转载。1. ValueStack ValueStack在中文版的《Struts2深入浅出》一书中译作“值栈”。其本身数据结构是一个栈,使用者可以把一些对象(又称作bean)存入值栈中,然后使用动态的表达式来读取bean的属性,或者对bean进行一些其他操作。由于值栈中可能有多个bean,值栈会按bean出栈的顺序依次尝试使用动态的表达式来读取值,直到成功读取值为止。在Struts2中,默认的值栈实现是OgnlValueStack,即默认使用Ognl这个动态表 阅读全文
posted @ 2014-03-10 14:31 杉木的征途 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,T 阅读全文
posted @ 2014-03-06 10:54 杉木的征途 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 首先像安装其他软件一样安装jdk,我的安装目录为 D:\Program Files\Java\jdk1.6.0,下面依据这个目录进行环境配置:1、右击“我的电脑”的“属性”,弹出对话框,点击“环境变量”(图中已标识),弹出对话框,在系统变量中,我们进行配置2、配置系统变量:(1)点击“新建”按扭,配置JAVA_HOME系统变量,如下: 变量值需要根据自己的jdk的安装路径而定,因为我的jdk安装在 D:\Program Files\Java\jdk1.6.0下,所以,此处变量名为JAVA_HOME,变量值为: D:\Program Files\Java\jdk1.6.0,完了后,“确定”。(2 阅读全文
posted @ 2012-03-01 17:31 杉木的征途 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typedef的方式更省事。用途二:用在旧的C的代码中(具体多旧没有查),帮助struct。以前的代码中,声明struct新对象 阅读全文
posted @ 2011-12-09 18:48 杉木的征途 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 最近做了一个DataGridView的分页显示Demo。也是看见网络上很多人询问关于DataGridView如何做分页。根据我的认识,Visual Sutido 2005里的DataGridView控件是没有带分页属性的,因此咱们必须通过写代码去实现分页功能。 好了,先看一下Demo的界面。 从界面可以看到,在设计时需要一个DataGridView、BindingNavigate、BindingSource控件,分别命名为dgvInfo、bdnInfo、bdsInfo。 在bdnInfo控件中添加几个用于选择页面的lable和botton,如上图所示。 设计时:1、定义几个所需的公有成员: . 阅读全文
posted @ 2011-11-13 12:55 杉木的征途 阅读(421) 评论(0) 推荐(0) 编辑