自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

转载 背包九讲

目录第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品第九讲 背包问题...

2018-07-31 16:34:10 197

转载 八大排序算法

概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。         当n较大,...

2018-07-02 13:57:27 292

原创 二叉树的先序、中序和后序遍历,递归与非递归方式实现。

二叉树遍历如图是一个二叉树: 二叉树的先序遍历顺序为根、左、右;中序遍历为左、根、右;后序遍历为左、右、根。首先是一个节点类Node public class Node { public int value; public Node left; public Node right; public Node(int data)

2017-11-15 19:15:32 330

原创 Session和Cookie

什么是Cookie?Cookie是Web服务器保存在客户端的一系列文本信息。 典型应用: 判断注册用户是否已经登录网站 “购物车”的处理(保存浏览记录)Cookie的作用: 对特定对象的追踪 保存用户网页浏览记录与习惯 简化登录安全风险:容易泄露用户信息JSP中创建与使用Cookie创建Cookie对象Cookie newCookie = new

2017-11-05 20:13:46 192

原创 Javabean基础知识

Javabean简介Javabeans就是符合某种特定的规范的Java类。使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。Javabean的设计原则 是一个公有的类 包含无参的公有构造方法 属性是私有的 属性使用getter和setter方法JSP动作元素JSP动作元素,动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元

2017-11-05 15:37:15 676

原创 JSP内置对象

内置对象简介JSP内置对象时Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。九大内置对象: out、request、response、session、application、Page、pageContext、exception、configout对象out对象时JspWriter类的实例,是向客户端输出内容常用的对象。 常用方法如下: 1.void pr

2017-11-03 21:38:23 201

原创 JSP基础知识

JSP简介JSP全名为Java Server Page,其根本是一个简化的Servlet设计,他实现了在Java当中使用HTML标签。JSP是一种动态网页技术标准也是JAVAEE的标准。JSP与Servlet一样,是在服务器端执行的。JSP页面元素组成指令、表达式、小脚本、声明、注释、静态内容指令元素 page指令:通常位于jsp页面的顶端,同一个页面可以有多个page指令。 include指令

2017-11-03 18:44:02 239

原创 Hibernate关系映射级别注解(多对多单向外键关联、多对多双向外键关联)

其中一个多方持有另一个多方的集合对象 比如教师和学生构成多对多的关系,学生就持有教师的的关系 学生和教师两个表外键关系的维护交给一个中间表,所以要创建中间表,不过这个中间表可以通过注解自动生成。 学生类要添加两个注解: @ManyToMany @JoinTable( name=”teachers_students”, joinColumns={@JoinColumn(n

2017-10-18 21:01:34 639

原创 Hibernate关系映射级别注解(一对多单向外键关联、一对多(多对一)双向外键关联)

一对多单向外键关联一对多就是一方持有多方的集合,一个班级有多个学生 需要在一方添加注解: @OneToMany(cascade={CascadeType.ALL}, fetch=FetchType.LAZY) 抓取策略一般采用的是懒加载 @JoinColumn(name=”cid”) 用来表示对应的外键的名称 总结:多对一是,多方设置EAGER,一方设置LAZY在前一个例

2017-10-18 19:54:32 484

原创 Hibernate关系映射级别注解(多对一单向外键关联)

多对一单向外键关联所谓多对一,就说多方持有一方的引用,比如:多个学生对应一个班级 在多方需要添加如下注解: @ManyToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER) 两个常用属性,cascade依然指定级联关系,fetch指的是抓取策略,一般默认EAGER,表示积极的渴望的 @JoinColumn(name=”cid”,

2017-10-18 17:23:26 600

原创 Hibernate关系映射级别注解(一对一双向外键关联、一对一双向外键联合主键)

一对一双向外键关联这个一对一双向外键关联要怎么理解,双方都持有对方的引用,也就是你中有我,我中有你。 以前一篇的例子来说,学生方持有身份证类的引用,身份证类也持有一个学生对象的引用,这两个引用都充当各自表中的外键。主控方的配置和一对一单向外键关联中的是一样的,不一样的地方是被控方。被控方的引用属性上边也要加上@OneToOne注解,其中要设置一下mappedBy属性,这个mappedBy属性指定了

2017-10-18 15:52:58 484

原创 Hibernate关系映射级别注解(一对一单向外键关联)

实体之间的映射关系一对一 一对多(多对一) 多对多一对一单向外键关联就好像一个公民对应一个身份证号码,这是一对一的。这里就以公民-身份证为例。 这里涉及到两个注解: @OneToOne(cascade=CascadeType.ALL) @JoinColumn(name=”pid”,unique=true) 这两个注解都写在我们的主控类当中,也可以理解为我们的主表类。 @OneToOne

2017-10-18 11:08:58 2376

原创 Hibernate属性级别注解

添加方式: 一是写在属性字段上面 二十写在属性的get访问器的上面有哪些属性级别注解? @Id @SequenceGenerator @GeneratedValue @Column @Embedded @EmbeddedId @Lob @Version @Basic @Transi

2017-10-17 14:53:17 352

原创 Hibernate注解、类级别注解

Hibernate注解简介使用注解的目的:为了简化繁琐的ORM映射文件(*.hbm)的配置。也就是做注解要做的就是ORM映射文件要做的一切工作,只是在形式上有所区别。JPA与Hibernate的关系什么是JPA:全称Java Persistence API。JPA注解是JAVAEE的规范和标准。JPA和Hibernate的关系:JPA是标准接口,Hibernate是实现,但是其功能是JPA的超集。H

2017-10-15 20:13:17 321

原创 Hibernate单表操作

单一主键单一主键是指表当中由某一列来充当主键,和它对应的还有符合主键 生成策略: 1.assigned:由java应用程序负责生成(手工赋值) 2.native:由底层数据库自动生成标识符,如果是MySQL就是increment,如果是Oracle就是sequence,等等之前的例子中hbm文件中的id标签里加上generator:<id name="sid" type="java.lang.

2017-10-14 20:15:27 284

原创 hibernate执行流程,介绍session及transaction

hibernate执行流程 首先要创建一个配置对象Configuration,配置对象的作用就是来读取我们的配置文档。 获得这个配置对象的目的就是可以用它来创建SessionFactory对象,创建这个对象可以读取相应的里边加载的对象-关系映射文件。 获得了SessionFactory对象之后就可以创建Session对象,类似于JDBC中的Connection,获得了一个Session对象就相

2017-10-14 14:31:52 695

原创 hibernate配置文档常用配置、hbm配置文件(对象-关系映射)的基本配置

hibernate.cfg.xml常用配置show_sql和format_sql一般设为true hbm2ddl.auto是生成表结构的策略。一般常用的是create和update create表示每次生成新的表结构,如果原来的存在,会先删除掉,然后创建一个新的表 update表示在原有的基础上进行更新 create-drop表示先创建然后进行删除 vali

2017-10-14 13:49:49 247

原创 创建Hibernate的例子的步骤

创建Hibernate的例子的步骤创建Hibernate的配置文件 创建持久化类 创建对象-关系映射文件 通过Hibernate API编写访问数据库的代码Hibernate配置文档的基本配置<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernat

2017-10-13 21:24:03 306

原创 Hibernate(myeclipse创建Hibernate配置文件、创建对象-关系映射文件)

首先介绍一下如何创建Hibernate配置文件首先建一个Java Project,我们命名为HibernateTest 然后就是要创建Hibernate配置文件。 如下图所示,选中项目右键->MyEclipse->Project Facets->Install Hibernate Facet 直接Finish就好 得到如下的页面 切换到Source,可以看到hibernate.cfg.xm

2017-10-13 13:30:09 4516 1

原创 Hibernate简介

Hibernate什么是Hibernate Hibernate是Java领域的一款开源的ORM框架技术 Hibernate对JDBC进行了非常轻量级的对象封装(所以本质上还是通过JDBC来对数据库进行操作) 比方说我们要开发不同的数据库应用程序,上边的Java应用和下边的数据库一一对应。三个应用程序都有各自的业务逻辑层的代码,也都有各自要使用的数据库的平台。那么Hibernate就处于业务逻辑

2017-10-12 11:38:46 382

原创 KMP算法(java实现)

简介及引出KMP算法KMP算法是由Donald Kunth、Vaughan Pratt、James H.Morris三个人发明的,是一种复杂度很小的匹配字符串的算法。给定两个字符串str和match,长度分别为N和M。实现一个算法,如果字符串str中含有子串match,则返回match在str中的开始位置,不含有则返回-1。正常的思路,从str[0]开始匹配,如果和match[0]相等,则匹配它们之

2017-10-11 21:51:01 374

原创 Struts2深入理解

访问Servlet API关于Servlet,里边会有doGet和doPost两个方法,两个方法体里会有两个参数,一个是HttpServletRequest类型,一个是HttpServletResponse类型,这两个参数其实就是Servlet API,还有一个类型ServletContext。也就是说在Servlet可以直接调用Servlet API。然后在看看Struts2中Action的exe

2017-10-08 20:33:11 176

原创 Struts2工作原理及文件结构及其他

Myeclipse中创建Struts2的例子先新建一个Web Project,取名为HelloWorld。如何添加Struts的东西呢? HelloWorld->MyEclipse->Project Facets[Capabilities]->Install Apache Struts (2.x) Facetweb.xml文件中已经添加了一些东西,src中也添加了struts.xmlStruts2

2017-10-08 16:18:35 322

原创 Struts2简介

Struts2的概念Struts是Java程序员必须学习的一门课程。Struts是流行的成熟的基于MVC设计模式的Web应用程序框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。MVC模式JSP+JavaBean=Model1,适用于小型网站的开发。Model1已经做了初步的表达和内容的分离,因为在数据存取方面,都是由JavaBean来进行操作的,但是Mode

2017-10-08 14:29:35 488

原创 Maven

介绍Maven 是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。简单来说,Maven可以帮助我们更有效得管理项目。它提供了仓库的概念帮助管理第三方的jar包,最大可能的避免由于环境配置的不同所产生的问题。下载以及配置环境变量下载的地址是maven.apache.org,解压之后可以看到里边有四个文件夹:bin目录包含mvn运行脚本;boot目录包含

2017-10-07 17:57:12 201

原创 Spring入门(AspectJ,Advice以及对于Advice扩展)

AspectJ中Advice定义Before advice@Component@Aspectpublic class MoocAspect { @Before("execution(*com.imooc.aop.aspectj.biz.Biz.*(..))") public void before() { //... }}用@Before这个注解,里边可以

2017-10-06 21:49:06 815

原创 Spring入门(AspectJ简单介绍)

AspectJ@AspectJ的风格类似纯java注解的普通java类 Spring可以使用AspectJ来做切入点解析 AOP的运行时仍旧是纯的Spring AOP,对AspectJ的编译器或者织入无依赖性Spring中配置@AspectJ对@AspectJ支持可以使用XML或Java风格的配置 Java注解风格:@Configuration@EnableAspectJAutoProxy

2017-10-06 20:02:52 1704

原创 Spring入门(AOP API,ProxyFactoryBean其三)

Proxying classes前面的ppt图片例子中如果没有Person接口,或者代码例子中没有BizLogic接口,这种情况下Spring会使用CGLIB代理,而不是JDK动态代理 如果想,可以强制在任何情况下使用CGLIB,即使有接口 CGLIB代理的工作原理是在运行时生成目标类的子类,Spring配置这个生成的子类委托方法调用到原来的目标 子类是用来实现Decorator模式,织入通知

2017-10-06 17:37:18 402

原创 Spring入门(AOP API、ProxyFactoryBean其二)

ProxyFactoryBean这个类是Spring AOP代理的最基础核心的一个类 创建Spring AOP代理的基本方法是使用org.springframework.aop.framework.ProxyFactoryBean这个类 通过使用这个类可以完全控制切入点和通知(advice)以及他们的顺序ProxyFactoryBean和其他的FactoryBean(工厂方法)是一样的

2017-10-05 01:45:20 264

原创 Spring入门(AOP API、ProxyFactoryBean其一)

介绍这是Spring1.2历史用法,现在(V4.0)仍然支持 这是SpringAOP基础,不得不了解 现在的用法也是基于历史的,只是更简便了PointcutPointcut作为一个接口,它有几个实现类,这里以其中一个来介绍,他就是NameMatchMethodPointcut。它根据方法名字进行匹配。 它有一个成员变量mappedNames,匹配的方法名集合。 来看一下下面这个配置文件的例子

2017-10-04 23:45:19 261

原创 Spring入门(Schema-based AOP其四)

Introductions简洁允许切面声明一个实现指定接口的通知对象,并且提供了一个接口实现类来表达这些对象 由<aop:aspect>中的<aop:declare-parents>元素声明。该元素用于声明所匹配的类型拥有一个新的parent(因此得名)来看一下配置<aop:aspect id="usageTrackerAspect" ref="usageTracking"> <aop:de

2017-10-03 23:51:40 246

原创 Spring入门(Schema-based AOP其三)

Advice应用配置完了切入点,接下来要配置advice,也就是通知的配置。Before adviceBefore advice是前置通知前置通知的方式是aop:before,然后有一个pointcut-ref是引用某一个切入点,还有一个method,就是前置通知会调用哪一个方法去执行。这个方法是ref对应bean中的方法。<aop:aspect id="beforeExample" ref="aB

2017-10-03 17:17:52 215

原创 Spring入门(Schema-based AOP其二)

基于使用配置的AOP的实现Schema-based AOPSpring所有的切面和通知偶必须放在一个<aop:config>内(可以配置多个包含<aop:config>元素),每一个<aop:config>可以包含pointcut,advisor元素(它们必须按照这个顺序进行声明) <aop:config>风格的配置大量使用了Spring的自动代理机制然后看一下基于这种配置的AOP的实现 首先声

2017-10-03 16:05:53 236

原创 Spring入门(Schema-based AOP其一)

什么是AOPAOP:Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 主要的功能是:日志记录、性能统计、安全控制、事务处理、异常处理等等。举例说明,对于以上任意一种功能,以事务处理为例,我们希望任何数据库操作的方法,像update,insert,delete,我们不希望在每一个方法上自己手动地去开启事

2017-09-30 20:09:17 467

原创 Spring入门(Spring对JSR支持的说明)

@ResourceSpring还支持使用JSR-250@Resource注解的变量或setter方法,这是一种在Java EE 5和6的通用模式,Spring管理的对象也支持这种模式。 @Resource有一个name属性,并且默认Spring解释该值作为被注入bean的名称。public class SimpleMovieLister{ private MovieFinder movieF

2017-09-30 17:21:21 982 2

原创 Spring入门(基于Java的容器注解之@Scope和基于泛型的自动装配)

@Scope在使用@Bean的时候,默认@Bean定义出来的注解是单例的,那么有什么方式可以指定它的范围呢,我们使用@Scope。Bean的作用域包括singleton、prototype、request、session、global session。 @Scope里边的内容和我们之前说到的Bean的范围是一样的,默认value是singleton,可以使用prototype、request

2017-09-30 13:32:43 1761 1

原创 Spring入门(基于Java的容器注解之@ImportResource和@Value)

如何使用@ImportResource和@Value进行资源文件读取。首先看个例子,使用beans来定义一个配置<beans> <context:annotation-config/> <context:property-placeholder location="classpath:/com/acme/jdbc.properties"/> <bean class="com.a

2017-09-29 17:36:19 11521 1

原创 Spring入门(基于Java的容器注解之@Bean)

@Bean@Bean标识一个用于配置和初始化一个由SpringIOC容器管理的新对象的方法,也就是说通过@Bean可以生成一个IOC容器的bean实例,类似于XML配置文件的<bean/>。 可以在Spring的@Component注解的类,然后在类中使用@Bean注解任何方法(仅仅是可以),然后在方法中去创建对象,进行返回。 上一点中,通常使用的是@Configuration和@Bean配合使

2017-09-29 17:01:39 650

原创 Spring入门(Bean装配,@Qualifier)

当按类型自动装配可能多个bean实例的情况,可以使用Spring的@Qualifier注解缩小范围(或指定唯一),也可以用于指定单独的构造器参数或方法参数。 可用于注解集合类型变量。比如说按类型装配可能有多个bean的时候,在前一篇的例子中提到,可以使用@Autowired去注解List这样的数组集合,或者是Map也就是说按照刚才的例子,BeanInterface和BeanImplOne、

2017-09-29 13:55:12 951

原创 Spring入门(Bean装配,Autowired注解)

@Required@required注解适用于bean属性的setter方法。 这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在bean定义或通过自动装配一个明确的属性值。(也就是说bean的属性必须在配置的时候就被赋值)public class SimpleMovieLister{ private MovieFinder movieFinder; @

2017-09-28 11:29:50 408

空空如也

空空如也

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

TA关注的人

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