自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人圭先生

新环境下的农民

  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 Hibernate框架---- N+1是什么?它们的list和iterator区别(九)

之前我们说过hibernate的缓存机制,可以将它看成一个Map,通过key在缓存里面找value。hibernate通过query查询放查询数据,比如我们要查询100条数据,但是其中40条已经缓存在缓存中了,但是使用query的list方法,那么这100条数据就会全部从数据库中查询,而会无视缓存中存在40条数据。那么N+1是什么?hibernate执行一条sql语句查询这100条

2016-12-28 11:43:47 995

原创 Hibernate框架-----缓存(八)

Hibernate的缓存分为了一级缓存和二级缓存,二级缓存又被称为外置缓存。一级缓存      hibernate的一级缓存默认是开启的,一级缓存存放在session上,比如每个session对同一个id进行了两次get或load,并不会发送两条sql给数据库,Session关闭的时候,一级缓存就会失效。二级缓存      而hibernate的二级缓存是SessionFactor

2016-12-27 16:35:57 373

原创 Hibernate框架-----属性延迟加载和关系延迟加载(七)

属性的延迟:我们之前在获取一条数据的时候采用的都是Session的get方法,这种方式不是延迟加载,也就是调用这个方法就会立刻访问数据库查出此对象的数据,当我们采用Session的load方法时,采用的是属性延迟加载,就是只有在访问这个对象的属性,hibernate才会访问数据库进行查询。下面两种代码和测试结果一看就明白。1.get方法,非延迟Product p=(Prod

2016-12-27 00:00:06 2745 1

原创 Hibernate框架-------事务与Session(六)

从之前的代码中我们可以看到,Hibernate中的事物一般是由s.beginTranscation()开始,由s.getTranscation().commit()结束,这个事务一旦开启,无论你中间进行了什么操作多少操作,这些操作都在一个事务中,如果其中任意一个失败了,那么所有的操作都是失败的,因为这个错误没有导致事务运行成功。这是什么情况?因为数据库事务必须具备ACID特性:

2016-12-26 11:23:50 749

原创 Hibernate框架-------多对多映射(五)

如果要实现多对多关系,必须有一张中间表来用于维护用户User和产品Product之间的关系,这张表里放的是两张表各自的主键值,通过主键与主键的关系来体现两张表的关系。其实多对

2016-12-24 21:11:29 440

原创 Hibernate框架-------一对多映射(四)

本来一对多映射可以和多对一映射放在一块,上篇贴有代码显得太长就分开写吧,这样看起来更清晰。一对多映射的配置文件<set name="Product" lazy="false"> <key column="cid" not-null="false"> <one-to-many class="com.vipcpi.Product"></set>配置文件解释set用于设置一对多、多对多的

2016-12-24 18:31:24 353

原创 Hibernate框架-----多对一映射(三)

概念 基本映射就是对一个实体类进行映射,但是关联映射就是处理过个实体类之间的关系,将他们之间的关联关系映射到数据库中。映射语句 对于多对一映射:<many-to-one name="属性名" class="关联的实体类" column="数据库对应的字段">注意:如果要关联的实体类和映射的此类没有在一个包底下,一定要在class中写完整的类路径,要不将会映射失败报错。<hibernate-m

2016-12-24 09:51:43 406

原创 Hibernate中的数据查询(二)

先来回忆下对象状态,实体类在Hibernate中有三种状态,分别是瞬时、持久和脱管状态。瞬时就是实体类没有和Hibernate没有任何关系,在数据库中也没有对应的记录,JVM消失这个对象也就消失了,也就是new了一个对象。持久就是对象和Hibernate发生了关系,有对应的session,并且在数据库中有对应的记录,代码中session的save就将该对象保存在了数据库中,该对象也和sessio

2016-12-22 00:00:42 405

原创 Hibernate入门详解(一)

在使用Hibernate的时候使得访问数据库变得非常的容易,因为之前使用JDBC的时候做数据库相关功能开发会有许多重复性的工作,但是Hibernate将会使其变得非常容易简单,代码也比较简洁。比如我们先创建一个实体类Product,用来映射数据库中的表product_package com.vipcpi;public class Product { int id; String na

2016-12-19 23:57:30 452

原创 java中的单例模式的饿汉式和懒汉式

先来说说什么是单例模式 单例就是程序运行过程中,自始至终这个对象只有一个。 标准来讲,也就是单例模式的三要素: 单例就是(1)构造方法私有化,(2)将一个静态属性指向实例,(3)然后通过一个静态方法返回指向实例的静态属性。单例模式分为饿汉式和懒汉式 通俗来说,饿汉式就是一个人饥肠辘辘的饿汉刚进饭店就波不急待的要了份饭吃。package yang.instance;public class S

2016-12-18 23:10:26 1050 1

原创 基于注解的组件扫描

指定一个包路径,Spring容器会自动扫描该包和其子包下的所有组件类,当发现组件类定义前有特定的注解标记时,就将该组件纳入到Spring容器中。等价于原来在XML配置中的定义功能。在使用组件扫描时,需要现在XML配置中指定扫描的路径<context:component-scan back-package="yangjq.test">容器实例化会扫描yangjq.test包及其子包下的所有组件类。只

2016-12-12 23:38:43 452

原创 JSON的数据交换、缓存问题和同步问题详解

JSON 轻量级的数据交换格式相对于XML来说,JSON的解析速度更快,文档更小。JSON的格式{属性名:属性值,属性名:属性值,……}属性名的类型可以是string,number,boolean,null,object,且属性名必须用双引号引起来,如果属性值是字符串,也必须用双引号括起来。JSON表示数组格式:[value,value,value],其中value可以是基本的数据类型,也可以是o

2016-12-12 23:38:17 1054

原创 SpringMVC

Spring MVC的WEB请求有下面三种方式: 1. HttpServletRequest获取 - Spring参数注入HttepServletRequest。 注:需要自己处理数据格式@RequestMapping("/login.form")public String CheckLogin(HttpServletRequest req){ String name=req.get

2016-12-12 23:37:28 350

原创 拦截器

Spring的HandlerMapping支持拦截器,拦截器必须实现HandlerInterceptor接口,此接口里面有下面3中方法:preHandle() 处理器执行前被调用,方法返回true标识继续调用其他拦截器或者处理器,返回false表示中断流程,后续的拦截器和处理器不再执行。postHandle()处理器执行后,视图执行前调用,此时而已通过ModelAndView对象对数据模型数据

2016-12-12 23:37:02 256

原创 request.setAttribute()和request.getSession().setAttribute()解释

request.setAttribute()只能在一个request内有效,如果重定向客户端,将取不到值。request.getSession().setAttribute()可以通过sessionID得到自己的session,将参数存储在session中,即使重定向客户端也没事,这个值可以在多个页面上使用。比如访问一个网站,登录后用户信息被保存到session中,在session过期之前或者用户关

2016-12-12 23:35:49 1180

原创 struts2的入门讲解和示例

Struts2的控制器是一个过滤器,Struts中的Action就相当于在基本MVC设计模式当中一个个独立的servlet,并由Action调用模型层(JavaBean)完成一个个具体的业务功能。在struts2中创建一个例子新建WEB工程,然后在工程上右键选择Myeclipse–>add struts Capabilities,界面中选择struts2,然后点击finish,结束后你会在src文件

2016-12-12 23:34:40 1423

原创 struts2的流程和一系列相关知识

客户端初始化一个指向servlet容器(Tomcat)的请求;这个请求经过一系列的过滤器,接着FilterDispatcher被调用;FilterDispatcher询问ActionMapper来决定这个请求是否要调用某个action;如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,ActionPro根据Config

2016-12-12 23:33:30 293

转载 java并发问题

1 什么是并发问题。多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题。 银行两操作员同时操作同一账户就是典型的例子。比如A、B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户减去 50元,A先提交,B后提交。 最后实际账户余额为1000-50=950元,但本该为 1000+100-50=1050。这就是典型的并发问题。如何解决?可以用锁

2016-12-12 23:32:48 472

转载 DispatcherServlet

1、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下: 1、文件上传解析,如果请求类型

2016-12-12 23:32:13 404

转载 这20个正则表达式,能让你少写1,000行代码

正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; var r = fiel

2016-12-12 23:30:35 655

原创 为什么要用session

session对象是一种会话对象,用来记录每个客户端的访问状态,其实,HTTP协议是一种无状态协议,也就是客户端向服务器发送一个请求request,然后服务器返回一个相应response,之后这个连接就会被关闭,两者也没有任何关系了,也就是服务器中不会存储此次请求的有关信息,再次请求时服务器就无法知道这次请求和上次请求是否是一个客户了。所以我们就需要采用会话session来记录这次连接的信息了。一个

2016-12-08 14:05:18 3721 1

ajax和jQuery的详解

详解ajax和jQuery

2016-05-22

Java类型的微信飞机大战源码

模仿微信的飞机大战,替换了几个元素,可完美运行

2015-08-16

空空如也

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

TA关注的人

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