
SSH框架学习之路
这里所说的SSH是Struts2和Spring以及HIbernate整合的架构设计,一步步学习框架,从基础到核心,到高级应用,点滴积累,都是生活。
life is wonderful
pay for life, pay for yourself
展开
-
关于iReport5.6.0无法正常启动或者闪退或者JDK8不兼容的解决方案
如果是停留在这个界面,并且闪退,或者直接无法启动那就是出现了问题如果双击运行,无法正常启动,需要查看自己电脑上是否有安装了JDK,由于这个软件是Java语言编写的,当然需要运行在JVM之上,也就是需要JDK的支持。在bin目录下有一个iReport的批处理文件,打开,可以看到运行读取的是电脑中的系统环境变量中的JDKHOME我们可以看出这个软原创 2017-07-29 22:48:11 · 15621 阅读 · 19 评论 -
Hibernate数据库方言选择问题
今天准备使用Hibernate配置Oracle数据库进行分页查询,在配置数据库方言的过程中遇到了问题,我本机安装的Oracle数据库版本是11.2.0.1.0,也就是11g版本,但是选择对应的版本数据库方言时,很郁闷,竟然没有对应的方言,如下所示:可以清楚的看到Hibernate提供的Oracle数据库方言,就是没有对应的11g版本,想了想配置MySQL数据库的时候配置的是MySQLD原创 2017-07-04 15:59:31 · 7090 阅读 · 0 评论 -
object references an unsaved transient instance【异常】
【异常提示】TransientObjectException: object references an unsaved transient instance -save the transient instance before flushing: com.jspxcms.core.domain.ScTeam 【网上参考资料】 【参考资料转载 2017-06-29 00:15:21 · 6239 阅读 · 0 评论 -
【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之案例实现篇(下)
还是接着上一篇继续。 web层实现 1、web.xml文件 ssh_employee index.jsp openSessionInViewFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter原创 2017-01-12 12:43:26 · 5471 阅读 · 6 评论 -
【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之案例实现篇(上)
案例:开发员工管理系统 由于上一篇已经搭建了SSH开发环境,这一篇就来完成案例。过程不再赘述。 创建的项目目录为: 具体实现 JSP页面 1、index.jsp与frame.jsp及frame/* index.jsp<%@ page language="java" contentT原创 2017-01-12 12:10:03 · 5361 阅读 · 4 评论 -
【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇
SSH知识点回顾 这个不用多说,老师画的一张图还是可以的: 搭建SSH开发环境 版本比较旧,但是方法还是好的,给初学者还是很大帮助的。 SSH整合的三种方式: 1、带有HIbernate配置文件的方式 2、不带有HIbernate配置文件的方式 3、纯注解的 这一次原创 2017-01-12 11:36:51 · 5733 阅读 · 0 评论 -
method initializationerror not found:JUnit4单元测试报错问题
今天使用JUnit 4进行单元测试时,测试程序一直运行不起来,报method initializationerror not found错误,如下: 网上说版本不对,我试了试,还是有这个问题,后来才知道,缺少了jar包,除了引入junit-4.12.jar之外,还要引入2个依赖jar包:hamcrest-core-1.3.rc2.jar,hamcr转载 2017-01-07 16:27:00 · 2430 阅读 · 6 评论 -
java日志框架slf4j与log4j
日志记录自然是非常重要的,但恐怕能记住slf4j与log4j等日志框架配置的人就很少了,这个东西不难,只是配置好后很少会去动它,开发新项目一般也是从其他项目拷贝,或者参照文档 废话不多说,先说log4j,使用log4j只要简单的几步 首先,弄到log4j的jar包,maven工程配置以下依赖就行,或者,从阿里的maven仓库下载jar包,添加到工程的“build path”转载 2016-12-28 09:28:28 · 1415 阅读 · 0 评论 -
spring核心框架体系结构
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的! spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其转载 2016-12-28 08:50:32 · 2315 阅读 · 0 评论 -
Hibernate3和4版本的不同
Hibernate4的改动较大只有Spring3.1以上版本能够支持,Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了。这里简单介绍了Hibernate4相对于Hibernate3配置时出现的错误,只列举了问题和解决方法,详细原理如果大家感兴趣还是去自己搜吧,网上很多。1、Spring3.1去掉了Hibe转载 2016-12-24 18:35:27 · 1583 阅读 · 0 评论 -
【Spring框架学习】:初识Spring框架
软件框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。框架就是制定一套规范或者规则(思想),程序员在该规范或者规则下工作。或者说就是使用别人搭好的舞台,你来做表演。 软件框架,通常指的是为了实现某个业界标准或原创 2016-12-23 21:18:09 · 6669 阅读 · 2 评论 -
【Struts2+Hibernate4】开发学生信息管理功能(三)
学生信息管理模块 学生信息管理模块持久层 由于层与层之间的依赖关系,我们还是从持久层出发,先来完成持久层代码的设计和测试,和用户登录模块的做法一样,先设计一个StudentsDao接口,然后再设计一个StudnetsDaoImpl实现类,这个实现类包括我们自己设计的主键生成方法。 StudentsDao接口:package com.d原创 2016-12-19 13:39:20 · 2229 阅读 · 0 评论 -
【Struts2+Hibernate4】开发学生信息管理功能(二)
用户登录页模块的实现 创建SessionFactory工具类 我们使用HIbernate框架,必然会使用的SessionFactory来创建Session,因此最好先建立一个MyHIbernateSessionFactory类,来获取SessionFactory对象。 具体代码如下:package com.demo.util;import原创 2016-12-19 12:28:14 · 1709 阅读 · 0 评论 -
【Struts2+Hibernate4】开发学生信息管理功能(一)
Struts2+Hibernate4整合 如果使用Struts2+Hibernate4开发一个小的项目示例,那么就首先搭建Struts2+Hibernate4的开发环境。先来看Struts2+Hibernate4的过程,说白了就是导入相关的jar包和配置文件。 第一步:导入相关jar包 由于要使用到Struts2框架,这是一个MVC框架,那么我们原创 2016-12-19 11:38:09 · 3088 阅读 · 3 评论 -
Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can't find referenced pointcut XXX
一、问题描述及原因。 利用Aspect注解实现AOP的时候出现了error at ::0 can't find referenced pointcut XXX。一看我以为注解写错了,结果通过查询相关资料是因为Spring2.5与中的aspectjweaver.jar 和aspectjrt.jar这两个jar包与JDK1.7不匹配。[plain] vi转载 2016-12-15 20:52:23 · 1299 阅读 · 1 评论 -
Spring3.X jdk8 java.lang.IllegalArgumentException
异常提示: 1 javax.servlet.ServletException: Servlet.init() for servlet springMVC threw exception 2 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) 3转载 2016-12-17 14:28:40 · 1204 阅读 · 0 评论 -
【HIbernate框架学习】:HQL(二)
限制子句——where子句 where子句是一个逻辑表达式,设置查询条件,限制返回的查询结果。 比较运算 比较运算也就是持久化类的属性和给定的查询条件做比较。比较运算包括:=、、>=、 其中比较运算也包含null值判断,也就是is [not] null。 (x = null) HIbernate框架会解析为:原创 2016-12-20 14:43:45 · 1111 阅读 · 0 评论 -
【HIbernate框架学习】:HQL(一)
HQL概述 数据查询与检索是Hibernate框架中的一个亮点,相对其他ORM框架实现而言,Hibernate框架提供了灵活多样的查询机制。 标准化对象查询(Criteria Query)是以对象的方式进行查询,将查询语句封装为对象操作。它的优点就是可读性好,符合Java 程序员的编码习惯。缺点就是不够成熟,不支持投影(projection)或统计函数(ag原创 2016-12-20 14:01:56 · 2125 阅读 · 1 评论 -
【HIbernate框架学习】:Hibernate集合映射
在HIbernate映射中还有一类映射就是集合映射,出现的几率比较小,那么就简单来对Set集合、List集合、Map集合的映射做一个简单的了解和演示,Array可以看成一个List集合特例,那么也是属于集合映射的一种。 简单实例: CollectionMapping实体类代码:package com.demo.domain;import java.uti原创 2016-12-17 22:39:19 · 1177 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate组件映射
假设我们设计的User实体类和Employee实体类,两个实体类包含的一些信息是相同的,我们可以抽取出来单独组成一个Component类,达到复用的目的,而且原来的类不再那么臃肿,看起来比较简单清晰明了。 我们来看简单的演示图例: 在Hibernate中Component映射采用标签,元素包含的子元素是元素,这里面放的就是组件类的字段。原创 2016-12-17 22:19:43 · 977 阅读 · 3 评论 -
【HIbernate框架学习】:Hibernate复合主键映射
我们在学数据库原理与设计的时候,设计表的时候肯定遇到过复合主键的数据表,也就是两个字段或者两个以上的字段作为数据表的主键。那么Hibernate框架的通常做法是将主键相关字段放到一个单独的类中,这样的类是有要求的,首先四必须实现序列化接口,然后覆盖equals()和hashCode()方法。 在Hibernate中复合主键映射使用标签,元素包含的子元素是元素,这里面放的原创 2016-12-17 21:57:32 · 806 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象继承关系映射(三)
每个类一张表 子类和父类,除非将父类定义成抽象的,否则父类也是一张表、 这种策略是使用joined-subclass标签来定义子类的。父类、子类,每个类都对应一张数据库表。在父类对应的数据库表中,实际上会存储所有的记录,包括父类和子类的记录;在子类对应的数据库表中,这个表只定义了子类中所特有的属性映射的字段。子类与父类,通过相同的主键值来关联。原创 2016-12-12 21:51:51 · 565 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象继承关系映射(二)
每个具体子类一张表 这种策略是使用union-subclass标签来定义子类的。每个子类对应一张表,而且这个表的信息是完备的,即包含了所有从父类继承下来的属性映射的字段(这就是它跟joined-subclass的不同之处,joined-subclass定义的子类的表,只包含子类特有属性映射的字段)。 实现这种策略的时候,有如下步骤: 父类用普原创 2016-12-12 21:39:28 · 640 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象继承关系映射(一)
继承关系映射实现的三种策略: 单表继承:每棵类继承树使用一个表(table per class hierarchy) ,也就是一棵继承树映射一张表。 具体表继承:每个子类一个表(table per subclass),也就是每个子类各自映射表。 类表继承:每个具体类一个表(table per concrete class)(有一些限制),也就是继承树原创 2016-12-12 21:06:34 · 1075 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象关系映射之双向多对多关联映射
双向多对多关联映射 我们假设这样一个场景,一个员工可能有多个角色,一个角色可能有多个员工,从员工或角色的角度看,这就是多对多的关系,不管从哪一个角度看,都是多对多的联系。多对多关联映射关系一般采用中间表的形式来实现,即新增一种包含关联双方主键的表。实现多对多关联关系,在数据库底层通过添加中间表指定关联关系,而在HIbernate框架在双方的实体中添加一个保存对方的集合,原创 2016-12-10 23:33:59 · 1216 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象关系映射之单向多对多关联映射
单向多对多关联映射 我们假设这样一个场景,一个员工可能有多个角色,一个角色可能有多个员工,从员工或角色的角度看,这就是多对多的关系。多对多关联映射关系一般采用中间表的形式来实现,即新增一种包含关联双方主键的表。多对多关联映射可以使用元素和元素进行配置,Hibernate会自动生成中间表。 如下图所示: Role实体类:p原创 2016-12-10 23:08:57 · 891 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象关系映射之双向一对多关联映射
双向一对多对关联映射 我们先来假设一个场景,从班级的角度看,班级和学生的关系就是一对多的关系,也就是一个班级有多个学生,学生属于某个班级;从学生的角度看,学生和班级的关系就是多对一的关系。也就是多个学生属于一个班级。学生和班级之间的关系是双向多对一关联关系,也称为双向一对多关联关系。为了解决一对多单向可能存在的问题,我们采用向一对多,每一方都能维护对方。双向一对多关联原创 2016-12-10 22:22:17 · 1020 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象关系映射之单向一对多关联映射
单向一对对关联映射 我们先来假设一个场景,从班级的角度看,班级和学生的关系就是一对多的关系,也就是一个班级有多个学生,学生属于某个班级。在数据库中,可以通过添加主外键的关联,表现单向一对多的关系,在学生表添加一个外键,指向班级表;HIbernate框架中通过在一方持有多方的集合的实现,即在一的一端使用set元素表示持有多的一端的对象。 如下图所示(一个组原创 2016-12-10 21:30:21 · 912 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象关系映射之单向多对一关联映射
单向多对一关联映射 我们先来假设一个场景,从学生的角度看,学生和班级的关系就是多对一的关系,也就是多个学生属于一个班级。多对一关联映射原理就是在多的一端加入一个外键,指向一的一端;在多的一端采用标签映射,也就是在Students.hbm.xml对象关系映射配置文件中采用,单向多对一关联映射是在多的一端来维护关联字段,在我们这个例子中也就是在学生一端来维护关系字段。原创 2016-12-10 20:59:13 · 805 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象关系映射之一对一关联映射(二)
接着上一篇接着说一对一关联映射。 单向一对一唯一外键关联映射 我们先来假设一个场景,从Person中能看到IdCard,也就是在person数据表加上一个外键字段idCard,限制idCard的唯一性就是一对一外键关联因素;一对一单向唯一外键关联,也就是多对一关联的特例,把多的一端限制为一,就是一对一唯一外键关联。同多对一关联映射关系一样,在一端加入另一端的原创 2016-12-08 22:09:29 · 801 阅读 · 0 评论 -
【HIbernate框架学习】:Hibernate对象关系映射之一对一关联映射(一)
一对一关联映射在实际生活中是比较常见的,如人与身份证的关系,通过人这个对象可以找到身份证相关的信息,也可以通过身份证这个对象找到人相关的信息。 有两种策略可以实现一对一的关联映射: 主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系;数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联; 唯一外键关联:外键关原创 2016-12-08 21:33:27 · 1963 阅读 · 0 评论 -
【Hibernate框架学习】:Hibernate进阶之持久化对象状态
我们都知道,Java对象的生命周期,是从通过new语句创建开始,到不再被任何引用变量引用结束,结束后它占用的内存将被JVM垃圾回收机制收回。在Hibernate持久化对象可以划分为三种状态,瞬时对象(Transient Objects)、持久化对象(Persistent Objects)和离线对象(Detached Objects也叫做脱管对象)。 瞬时对象(Transie原创 2016-12-08 18:35:50 · 669 阅读 · 0 评论 -
【Hibernate框架学习】:Hibernate进阶之单表操作
单一主键 这里只是简单介绍有关MySQL的主键生成策略,包括连个常用的: assingned:由Java应用程序负责生成(手工赋值) native:由底层数据库自动生成标示符,如果是MySQL就是increment,如果是Oracle就是sequence,等等。 我们来看例子: 对象关系映射配置文件中配置:原创 2016-12-07 23:23:18 · 714 阅读 · 0 评论 -
【Hibernate框架学习】:Hibernate进阶之Hibernate核心接口和类(二)
Query接口(初步) Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。查询语句使用HQL或者本地数据库的SQL方言编写。 Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。 Query接口是Hi原创 2016-12-07 22:38:48 · 708 阅读 · 0 评论 -
【Hibernate框架学习】:Hibernate进阶之Hibernate核心接口和类(一)
我们来看一下Hibernate的执行流程: 由此我们可以大概知道Hibernate的核心接口和类,Hibernate的核心类和接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心类和接口在任何开发中都会用到。通过这些接口,不仅可原创 2016-12-06 22:38:47 · 2507 阅读 · 0 评论 -
【Hibernate框架学习】:Hibernate进阶之详解Hibernate配置文件和对象关系映射配置文件
Hibernate核心配置文件 我们先来看一个比较常见的hibernate.cfg.xml配置文件:<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hiber原创 2016-12-06 19:16:42 · 2723 阅读 · 0 评论 -
【Hibernate框架学习】:Hibernate初识
在编写第一个Hibernate例子之前先来准备Hibernate开发环境。在Eclipse中进行Hibernate开发我们可以添加一个Hibernate Tools for Eclipse Plugins。Hibernate Tools是由JBoss推出的一个Eclipse综合开发工具插件,该插件可以简化ORM框架Hibernate,以及JBoss Seam,EJB3等的开发。那么接下来就原创 2016-12-06 14:07:49 · 928 阅读 · 0 评论 -
在Eclipse中使用JUnit4进行单元测试(图文教程一)
在Eclipse中使用JUnit4进行单元测试 单元测试,JUnit4。 这两个有什么关系呢?这就好比(草)单元测试和(割草机)。用这个JUnit4工具去辅助我们进行测试。其实不理解这个也没关系,听多了见多了用多了,自然而然地就会懂了。 有人可能会想,那我直接自己编写个测试的方法不就可以了。例如写个System.out.print输出,看看是否与我们预期的相转载 2016-11-21 00:08:35 · 5788 阅读 · 2 评论 -
【框架基础】:全面解析Java注解(二)
注解实战 项目需求 项目说明:项目取自一个公司的持久层架构,用来代替Hibernate的解决方案,核心代码就是通过注解来实现的。 需求: 1)有一张用户表,字段包括用户ID,用户名,昵称,年龄,性别,所在城市,邮箱,手机号。 2)方便的对每个字段或字段的组合条件进行检索,并打印出SQL语句。 3原创 2016-12-09 16:08:39 · 730 阅读 · 0 评论 -
【框架基础】:全面解析Java注解(一)
Java注解概述 要了解Java注解要先知道Java的反射,反射是运行时获取类的成员,注解也是类的成员,以此达到动态编码的效果,多用在框架,或者使用框架时候添加注解让框架调用。 注解定义:注解(Annotation),也叫元数据。Java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法,一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性原创 2016-12-09 15:44:53 · 1793 阅读 · 0 评论