03 2016 档案

摘要:首先先来了解一下Date数据类型: . Date类型通常要和另一个 java.text.SimpleDateFormat类联合使用. 把long-->Date: public Date(long date); Date类的构造函数可以直接将long数据类型转为Date类型 把Date-->long: 阅读全文
posted @ 2016-03-30 22:45 冬至饮雪 阅读(1122) 评论(0) 推荐(0) 编辑
摘要:今天在做毕设(基于SSH的网上商城项目)中碰到了一个文件上传的需求,就是在后台管理员的商品模块中,有一个添加商品,需要将磁盘上的图片上传到tomcat保存图片的指定目录中: 完成这个功能需要两个步,第一是图片上传,第二是保存到数据库,在完成这个功能时候碰到了一些小问题,所以把完整的步骤记录一下: 第 阅读全文
posted @ 2016-03-30 13:53 冬至饮雪 阅读(4112) 评论(0) 推荐(0) 编辑
摘要:在学习Spring框架的时候,有一个重要的思想就是AOP,面向切面编程,利用AOP的思想结合Spring的一些API可以实现核心业务与辅助业务的分离,即可以在执行核心业务时,将一些辅助的业务加进来,而辅助业务(如日志,权限控制等)一般是一些公共业务,这样就实现了两者的分离,使得核心业务的代码更加纯粹 阅读全文
posted @ 2016-03-29 23:19 冬至饮雪 阅读(11349) 评论(2) 推荐(6) 编辑
摘要:什么是反射? 正常编译执行java文件时,会生成一个.class文件,反射就是一个反编译的过程,它可以通过.class文件得到一个java对象.一个类会有很多组成部分,比如成员变量,成员方法,构造方法等,反射可以通过加载类,解剖出类的各个组成部分. 为什么要用反射? 我们需要访问一个类的方法或字段的 阅读全文
posted @ 2016-03-27 21:31 冬至饮雪 阅读(1780) 评论(2) 推荐(1) 编辑
摘要:今天在整合ssh项目中,碰到一个异常,当我提交购物车数据到订单时,浏览器报了一个这样的异常. 当时,我就吓坏了.尼玛,这不是内存溢出了吗?吓得我赶紧去检查了每一个有遍历语句的代码,结果没有发现一个死循环,折腾了两个多小时,最后终于发现了问题,简直让人抓狂,原因竟然是我在实体类,order(订单),o 阅读全文
posted @ 2016-03-25 14:33 冬至饮雪 阅读(3673) 评论(0) 推荐(0) 编辑
摘要:今天重装系统,安装了新的Myeclipse后,导入之前的项目后,,出现了乱码问题.乱码问题主要是java类中的注释,而jsp页面中汉字却完好如初: 右键项目,查看项目的编码格式,UTF-8,把java文件直接用记事本打开,没问题,没有乱码,查看了一下记事本的编码格式,GBK,看来myeclipse无 阅读全文
posted @ 2016-03-24 15:35 冬至饮雪 阅读(9763) 评论(2) 推荐(0) 编辑
摘要:在进行大量的数据展示时,必须要使用分页查询,第一次使用在SSH框架整合中使用分页查询,遇到了一些问题,下面以我练习的项目为例详细介绍,如何在Spring+hibernate(+action)的环境下完成数据的分页查询. 在utils包下新建一个pageBean(这个实体类用于封装当前页面的数据集合, 阅读全文
posted @ 2016-03-23 23:35 冬至饮雪 阅读(9413) 评论(0) 推荐(0) 编辑
摘要:在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面的例子,我们只希望返回一个1和0有助于进行后续判断即可,没必要返回json类型,返回一个text字符 阅读全文
posted @ 2016-03-22 09:16 冬至饮雪 阅读(2158) 评论(0) 推荐(0) 编辑
摘要:首先,在整合框架之前,我们需要知道Spring框架在普通Java project和Web project中是略有不同的. 这个不同地方就在于创建IOC容器实例的方式不同,在普通java工程中,可以在main方法中直接创建,可是web工程就不一样了,在Web项目工程中应该在服务器加载时就创建IOC容器 阅读全文
posted @ 2016-03-18 22:17 冬至饮雪 阅读(1803) 评论(0) 推荐(2) 编辑
摘要:今天在整合ssh三个框架时,有一个功能,是查询所有员工信息,且员工表和部门表是多对一的映射关系,代码能正常运行到查询得到一个List集合,但在页面展示的时候,就报异常了, 问题应该出在实体类Department上,然后我参照网上的解释,将Department.hbm.xml中class标签上加了一个 阅读全文
posted @ 2016-03-18 21:39 冬至饮雪 阅读(3726) 评论(1) 推荐(1) 编辑
摘要:Spring整合hibernate需要整合些什么? 整合步骤: 1.导jar包 2.配置hibernate的配置文件,hibernate.cfg.xml.(其实可以省略这个配置文件,但还是加上比较舒服): 3.编写持久化类以及对应的hbm.xml. 1.导入jar包. 2.配置spring配置文件( 阅读全文
posted @ 2016-03-17 15:31 冬至饮雪 阅读(4450) 评论(0) 推荐(0) 编辑
摘要:在整合Spring4+hibernate4时候,当代码执行到dao中CRUD操作时,报了一个异常, org.hibernate.HibernateException: createQuery is not valid without active transaction ... 因为我用到的是ses 阅读全文
posted @ 2016-03-17 13:22 冬至饮雪 阅读(4341) 评论(0) 推荐(0) 编辑
摘要:事务管理是企业级应用开发中必不可少的技术,主要用来确保数据的完整性和一致性, 事务:就是一系列动作,它们被当作一个独立的工作单元,这些动作要么全部完成,要么全部不起作用. 作为一个受欢迎的企业应用框架,Spring在不同的事务管理API上定义了一个抽象层,而开发时不必了解底层的事务管理API,就可以 阅读全文
posted @ 2016-03-16 22:20 冬至饮雪 阅读(613) 评论(0) 推荐(0) 编辑
摘要:今天在使用Spring配置c3p0数据源时,使用的数据库是mysql,服务器是tomcat,运行时报了一个 java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector 网络上找了很久都没有解决,最后发现是因为: C3P0 少了个 jar 阅读全文
posted @ 2016-03-16 18:07 冬至饮雪 阅读(3822) 评论(1) 推荐(0) 编辑
摘要:Spring能够在classpath下自动扫描,侦测和实例化具有特定注解的组件,这在Spring中成为组件扫描(Component scanning). @Component:基本注解,标识了一个受spring管理的组件. @Repository:标识持久层组件 @Service:标识服务层(业务层 阅读全文
posted @ 2016-03-15 23:39 冬至饮雪 阅读(1657) 评论(0) 推荐(0) 编辑
摘要:1:bean的基本属性配置: 注意: 在整合struts和hibernate框架时,需要将action的scope设为"prototype". 可以配置全局的自动装配类型,在beans内,设置default-autowire="..."; 2,团队协作开发(import标签):  3:bean的继承 阅读全文
posted @ 2016-03-15 16:33 冬至饮雪 阅读(15831) 评论(0) 推荐(1) 编辑
摘要:Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们现在需要在针对数据库进行CRUD操作时添加一组日志,即在执行CRUD方法前后分别加上一句话,实现简单 阅读全文
posted @ 2016-03-14 15:37 冬至饮雪 阅读(1473) 评论(2) 推荐(2) 编辑
摘要:控制反转和依赖注入讲的都是一个概念,只不过是站在了不同的角度,所谓的依赖注入: 是指在运行期,由外部容器动态地将依赖对象注入到组件中。当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它。所以我们只需从容器直接获取Bean对象就行,而不用编写一句代码来创建bean对象 阅读全文
posted @ 2016-03-13 14:14 冬至饮雪 阅读(1552) 评论(0) 推荐(0) 编辑
摘要:Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hibernate等其他众多的框架. 具体描述Spring: 1.轻量级:Spring是非侵入性的,基于Sprin 阅读全文
posted @ 2016-03-12 23:32 冬至饮雪 阅读(464) 评论(0) 推荐(0) 编辑
摘要:在写一个struts2+hibernate整合的小例子时,启动Tomcat服务器,报了一个: 严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng 阅读全文
posted @ 2016-03-10 11:15 冬至饮雪 阅读(17543) 评论(4) 推荐(5) 编辑
摘要:刚刚学完这两个框架,就迫不及待的做了一个例子,在整合两个框架的时候,也碰到了一些小问题,下面介绍一下配置的步骤: 1.创建一个自定义的struts2和hibernate的类库 因为之前写例子都是直接将jar包拖到WEB-INF下的lib包下,但是这里需要导入两个框架的jar包,放在一起的话,会很乱, 阅读全文
posted @ 2016-03-10 10:12 冬至饮雪 阅读(2069) 评论(1) 推荐(1) 编辑
摘要:二级缓存(sessionFactory): Hibernate的二级缓存由SessionFactory对象管理,是应用级别的缓存。它可以缓存整个应用的持久化对象,所以又称为“SessionFactory缓存”. hibernate二级缓存中的缓存对象可以被整个应用的Session对象共享,即使关闭当 阅读全文
posted @ 2016-03-09 21:41 冬至饮雪 阅读(2532) 评论(0) 推荐(0) 编辑
摘要:一级缓存: 又称为session缓存,它和session生命周期相同,周期非常短.是事务级别的缓存: 还是以Book和Category这两个表为例,我们用代码观察一个缓存的存在: 假设现在我要去查询id=1的Book信息: List<Book> list =(List) session.create 阅读全文
posted @ 2016-03-09 15:05 冬至饮雪 阅读(3758) 评论(0) 推荐(0) 编辑
摘要:假设现在有Book和Category两张表,表的关系为双向的一对多,表结构如下: 假设现在我想查询id为2的那本书的书名,使用session.get(...)方法: 1 Session session=HibernateUtil.getSession(); 2 Book book =(Book) s 阅读全文
posted @ 2016-03-08 21:53 冬至饮雪 阅读(3844) 评论(2) 推荐(1) 编辑
摘要:HQL查询过程中支持添加过滤器.使用步骤是这样的: 首先在要查询的实体对象的映射中使用<filter-def>标签配置过滤器,并在相对应的<class>标签中添加对应的<filter>过滤器;然后在对应的程序文件中使用enableFilter()方法启动过滤器,为过滤器定义的参数赋值,在执行时就会自 阅读全文
posted @ 2016-03-08 10:54 冬至饮雪 阅读(2926) 评论(0) 推荐(0) 编辑
摘要:Hibernate配备了一种非常强大的查询语言,就是HQL(hibernate query language),HQL看上去很像sql,但只是语法结构上相似,HQL是一种面向对象的查询,他可以理解继承,多态之类的概念. HQL区分大小写,sql语句关键字(如select ,from,where等)是 阅读全文
posted @ 2016-03-06 12:07 冬至饮雪 阅读(3375) 评论(1) 推荐(0) 编辑
摘要:前面几篇都是介绍的用配置文件来实现实体类到数据库表的映射,这种方式是比较麻烦的,每一个pojo类都需要写一个相应的*.hbm.xml,无疑增加了很多代码量,不过也有优点就是利于维护,为了方便开发,Hibernate还提供了注解方式配置映射文件,非常灵活,减少了配置文件的冗余,虽然维护起来相对比较麻烦 阅读全文
posted @ 2016-03-05 10:47 冬至饮雪 阅读(1404) 评论(0) 推荐(0) 编辑
摘要:单表继承映射(一张表): 假设我们现在有三个类,关系如下: Person类有两个子类Student和Teacher,并且子类都具有自己独有的属性.这种实体关系在hibernate中可以使用单表的继承映射来建表,最后生成的表是这样的: 可以看到我们只需要建立一张表就可以维护这个关系,这种方式就是单表继 阅读全文
posted @ 2016-03-04 19:18 冬至饮雪 阅读(3837) 评论(0) 推荐(1) 编辑
摘要:在讲单向的多对多的映射关系的案例时,我们假设我们有两张表,一张角色表Role,一张权限表Function,我们知道一个角色或者说一个用户,可能有多个操作权限,而一种操作权限同时被多个用户所拥有,假如我们我们的需求是能通过角色获取到其所拥有的操作权限,这就构成了单项的多对多的映射关系,为了管理这个关系 阅读全文
posted @ 2016-03-04 10:36 冬至饮雪 阅读(509) 评论(0) 推荐(0) 编辑
摘要:上一节介绍的基于外键的一对一映射关系中,在Person表中有一个外键列idCard_id,对应的idCard表的主键id,至于基于主键的一对一映射关系,就是指Person表中抛弃了idcard_id这个外键列,而与idCard表共用一个主键,或者说是其外键为主键的表结构,这种基于主键的双向一对一映射 阅读全文
posted @ 2016-03-03 20:40 冬至饮雪 阅读(283) 评论(0) 推荐(0) 编辑
摘要:假设我们有两张表,人员信息表Person,和身份信息表IdCard,我们知道每个人只有一个身份证号,所以这里的Person和IdCard表是一一对应的,也就是一对一的映射关系,基于外键的单向一对一映射关系,只需要在单向多对一的映射关系的多的一端的配置文件的<many-to-one>标签中添加一个un 阅读全文
posted @ 2016-03-03 19:39 冬至饮雪 阅读(241) 评论(0) 推荐(0) 编辑
摘要:cascade : 不管是单向多对一还是一对多,或者是双向的一对多关系,在一的一端映射文件中有一个set标签,在多的一端有many-to-one标签,拿前几篇笔记里讲的Grade和Student举例,此标签下都有一个cascade属性: Grade.hbm.xml中: <set name="stud 阅读全文
posted @ 2016-03-03 16:37 冬至饮雪 阅读(1001) 评论(0) 推荐(0) 编辑
摘要:前两节写了两个例子,分别是单向多对一的映射和单向一对多的映射,这一节继续以这个例子讲一下双向一对多的映射方法,如下图所示: 很多时候,我们既想从一对端获取多对端的信息,又想从多对端获取一对端的数据,这就是需要双向一对多的映射关系,这也是最常见的表与表的映射关系,在hibernate中应当这样配置: 阅读全文
posted @ 2016-03-03 11:35 冬至饮雪 阅读(405) 评论(0) 推荐(0) 编辑
摘要:上一篇讲的是单向多对一的表关系,与单向一对多的关系正好相反,如下图所示关系: ,可以看出年级表和学生表是一对多的关系,一条年级信息对应多条学生信息,在hibernate中成为单向的一对多的映射关系,应该这些操作: 新建Student实体类: public class Student { privat 阅读全文
posted @ 2016-03-03 10:29 冬至饮雪 阅读(329) 评论(0) 推荐(0) 编辑
摘要:假设我们要建两张表,学生信息表(student)和年级信息表(grade),关系是这样的: 我们可以看出学生表和=年级表是多对一的关系,多个学生会隶属于一个班级,这种关系在hibernate中成为单边的多对一的关系,需要这样配置: 新建实体类Grade: public class Grade { p 阅读全文
posted @ 2016-03-02 20:27 冬至饮雪 阅读(702) 评论(1) 推荐(0) 编辑
摘要:假设我们需要保存学生student的信息,student中有一个address属性,我们知道像这种信息其值可能会有多个,就像一个人会有两个以上的手机号,这种情况在hibernate中应该这样配置: 新建一个Address类,我们假设每个学生最多能保存3个地址: public class Addres 阅读全文
posted @ 2016-03-02 19:30 冬至饮雪 阅读(280) 评论(0) 推荐(0) 编辑
摘要:一个数据库表中其主键有可能不止一个属性,同样映射到实体类中,可能有两个或多个属性共同配置成为一个主键,假设一个实体类Score,其主键有两个属性stuId(学生编号)和subjectId(科目编号),在hibernate环境下应该这样配置: 新建一个实体类ScoreId,属性为stuId,和subj 阅读全文
posted @ 2016-03-02 19:19 冬至饮雪 阅读(324) 评论(0) 推荐(0) 编辑
摘要:方法比较简单,项目中只需要两个java类(一个实体类,如User,一个工具类),两个配置文件(hibernate必须的两个配置文件hibernate.cfg.xml,与User.hbm.xml),即可都是常规的书写和配置方法,这时数据库中是没有建表的,在工具测试类CreateDB中,添加代码也很简单 阅读全文
posted @ 2016-03-02 11:04 冬至饮雪 阅读(559) 评论(0) 推荐(0) 编辑
摘要:实体类就是指普通的POJO,Hibernate并不知道那个实体类对应数据库的哪一张表,所以还需要配置一下,常用的方式就是*.hbm.xml文件[配置与@注解配置,这里介绍前者的详细属性: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC 阅读全文
posted @ 2016-03-02 10:32 冬至饮雪 阅读(7221) 评论(0) 推荐(1) 编辑