理论知识
w春
这个人很懒,什么都没留下!
展开
-
23种设计模式之简介
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。 作用:使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 设计模式分类: 第一类:创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Patt原创 2017-09-13 09:45:08 · 204 阅读 · 0 评论 -
java反射机制
反射概念:所谓的反射就是java语言在运行时拥有一项自观的能力,可以进行自我检查并且对内部的成员进行操作;反射使您的程序代码能够得到装载到JVM中的类的内部信息,允许您执行程序时才得到需要类的内部信息,而不是在编写代码的时候就必须要知道所需类的内部信息,这使反射成为构建灵活的应用的主要工具。 反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间原创 2017-09-16 10:48:33 · 186 阅读 · 0 评论 -
MyBatis入门(一)
MyBatis(iBatis)与Hibernate类似,也是一个持久层解决方案,是我们更方便的操作数据库。 MyBatis的特点: 执行效率:JDBC>MyBatis>Hibernate 代码我复杂度:JDBC>MyBatis>Hibernate执行流程: 1>:加载我们的mybatis.xml文件 2>:加载的是我们的mapper的映射文件 3>:通过你调用的方法 找到我们的ma原创 2017-09-26 09:11:39 · 192 阅读 · 0 评论 -
MyBatis入门(二)
Sql片段的使用,可以将重复的部分提出来,成为Sql片段。<select id="findUserByManyCondition" parameterType="map" resultType="com.wc.test01.User"> select * from t_user <where> 1=1 </where> <if test="uName原创 2017-09-26 20:51:10 · 258 阅读 · 0 评论 -
MyBatis入门(三)
一对一的映射:一个订单对应一个用户 一对多的映射:一个订单对应多类商品 一对一与一对多的实例: (没写的与前面的章节的相同) 实体类:User.javapublic class User implements Serializable{ /** * */ private static final long serialVersionUID =原创 2017-09-27 20:52:10 · 152 阅读 · 0 评论 -
MyBatis入门(四)
缓存 一级缓存 一级缓存跟Hibernate中的一级缓存是一样的,是由SqlSession来 > 进行管理的 这个缓存的存在和销毁 用户都可以不参与, 直接由我 > 们的SqlSession来进行维护。二级缓存 二级缓存可以跨越session来实现缓存 1、要使用二级缓存首先的打开二级缓存 <!--开启的是二级缓存--><setting name="cacheEnabled原创 2017-09-28 15:04:57 · 165 阅读 · 0 评论 -
Spring七大模块之Core
Core这个核心功能包就是用来实现IOC/DI的。* IOC:*控制反转,指的是用配置文件或注解来完成对象的创建。 * DI:*依赖注入。 依赖:就是我们的层与层之间的依赖, 在实际开发中引入各个框架的时候也会形成一定的依赖,例如Servlet 依赖于 service,service 依赖于 dao。 注入:就是生成对象或值。原创 2017-09-12 15:36:32 · 781 阅读 · 0 评论 -
SSM框架整合
SSM S:SpringMVC S:Spring M:MyBatis 项目结构: 所需包:aopalliance-1.0.jarasm-3.3.1.jaraspectjweaver-1.6.11.jarc3p0-0.9.1.2.jarcglib-2.2.2.jarcommons-dbcp-1.2.2.jarcommons-logging-1.1.1.jarcommons-po原创 2017-09-28 19:28:35 · 167 阅读 · 0 评论 -
23种设计模式之代理模式
代理模式:即Proxy Pattern,23种常用的面向对象软件的设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式能够解决什么问题呢? 1、监听被代理的类里面的方法什么时候执行 2、动态的给某一个方法添加新的功能代理模式分类: 静态代理原创 2017-09-12 14:48:12 · 187 阅读 · 0 评论 -
初识Spring
初识Spring 以前提到web经常会听到Spring这个框架,今天初识了Spring。Spring是整合框架,它开发了我们开发中要使用的框架,同时它也给我们整合了许多其他好用的框架,例如:Hibernate、Mybatis、Shiro等等。Spring是什么? Spring是整合框架,它开发了我们开发中要使用的框架,同时它也给我们整合了许多其他好用的框架,例如:Hibernate、Myba原创 2017-09-11 20:33:31 · 211 阅读 · 0 评论 -
MyBatis之特别篇
实体类User.javaimport java.io.Serializable;/** * 用户的这个实体 * */public class User implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private int uId原创 2017-10-11 15:13:13 · 150 阅读 · 0 评论 -
23种设计模式之责任链模式
责任链模式(Chain of Responsibility Pattern):为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。原创 2017-10-16 14:32:26 · 177 阅读 · 0 评论 -
Hibernate之查询
Hibernate的查询常用的分为三种: 1、HQL—>Hibernate Query Language 2、 SQL—>本地的查询 3、Cretiria查询:是Hibrnate的设计者为了方便 不会编写Sql语句的人使用的 其中最常用的是HQL,这里主要说的也是HQL。 HQL(在Hibernate中使用最多的) 面向对象的查询 具有高的可移植性 和底层的表没有关系 即原创 2017-09-07 20:44:07 · 262 阅读 · 0 评论 -
Hibernate之关联映射(下)
3、一对一映射: 适用场景:人和身份证的关系 有两种实现方式 1、通过非id绑定,只是作为普通外键(不提倡使用) 实例: People.javapublic class People { private int pId; private String pName; private IdCard idCard; publ原创 2017-09-07 16:27:01 · 168 阅读 · 0 评论 -
Java接口回调
突然想起了,今天刚自学了java的接口回调,来整理一下。 实例:我经常叫我同学帮我买早饭,就拿这个做例子。 场景:我在上班时给他发了个短信:“帮我买一下早饭”然后我就去坐车了;然后他收到信息后,就去买早饭了,买到后就给我回复短信:买到了。 然后就开始实现: 1、一个回调接口:ICallBack.java/** * 回调接口 * @author Administrator * */p原创 2017-09-15 10:45:55 · 324 阅读 · 0 评论 -
Spring七大模块之AOP
AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理原创 2017-09-13 19:57:31 · 336 阅读 · 0 评论 -
Spring七大模块之DAO(上)
Spring的Dao模块式Spring框架中对应持久层的解决方式,提供了对JDBC、Hibernate、JDO等DAO层支持。 Spring框架对JDBC进行了封装,完全抛弃了JDBC API。数据库连接、事务等也交给了Spring打点,开发者只需要使用封装好的JdbcTemplate执行SQL语句,然后得到需要的结果。 需要的包: 项目目录: User.javapublic cla原创 2017-09-14 09:43:16 · 2972 阅读 · 0 评论 -
Spring七大模块之DAO (下)
操作数据库,需要严谨,所以需要事务。 例如,在做转账的时候,如果不严谨,就会造成一方的钱减少了,另一方的钱却没增加;或者是一方的钱增加了,另一方的钱却没减少。 首先通过配置方式,来实现事务。 UserDao.java (数据库中已有数据)public class UserDao{ //下面这个就是访问数据库的对象 private JdbcTemplate jdbcTempla原创 2017-09-14 10:33:07 · 332 阅读 · 0 评论 -
Spring与Hibernate整合(配置模式)
Spring与Hibernate整合的作用: 1、使用Spring的IOC容器管理SessionFactory对象 2、让Hibernate使用上Spring的声明式事务 Hibernate和Spring整合的时候的整合的关键点:SessionFactory 整合步骤: (1)、添加jar包 Hibernate核心功能包 Spring的相关包 Spring和Hi原创 2017-09-14 20:25:09 · 272 阅读 · 0 评论 -
Spring与Hibernate整合(注解模式)
整个程序代码 User.javapublic class User { private int uId; private String uName; private String uPassword; public int getuId() { return uId; } public void setuId(int uId) {原创 2017-09-14 20:40:28 · 428 阅读 · 0 评论 -
Hibernate之关联映射(上)
关联映射可分为四种: 分别为:一对一,一对多,多对一,多对多。 1、一对多和多对一:适用于一个部门有多个员工等场景。 用买家与订单的关系来做演示: 买家:User.javapublic class User { private int uId; private String uPassword; private Set<String> addresses=new Ha原创 2017-09-07 13:10:54 · 135 阅读 · 0 评论 -
初识Hibernate
初识Hibernate 简单的说就是持久层的一个解决方案,具体的说就是一个非侵入式的ORMapping的框架。 什么是侵入式与非侵入式? 侵入式:就是在使用该框架时,需要继承或实现特定的类或接口,这种框架就是侵入式框架。 非侵入式:就是在使用该框架时,不需要继承或实现特定的类或接口,这种框架就是非侵入式框架。 什么是ORMapping? O:是Object (对象原创 2017-09-04 17:11:12 · 134 阅读 · 0 评论 -
Hibernate xml配置
配置Hibernate原创 2017-09-04 17:25:32 · 1667 阅读 · 0 评论 -
Hibernate复合主键的使用
在我们不能进行唯一标识的时候,我们就会通过多种属性来对事物进行唯一标识。 假如我们没有身份证,那我们怎么对某一个人进行唯一标识呢? 我们可以通过外貌,性别,姓名等来区分事物和人。 我们可以通过外貌,性别,姓名来组合成一个标识来分区不同的对象。 User类的标识(类似Id) UserId.java//注:在用来做组合键的对象的类必须要进行序列化,否则会报错。public class Use原创 2017-09-05 20:23:58 · 170 阅读 · 0 评论 -
Hibernate之集合映射
集合映射分为三种:Set、List和Map 通过一个例子来实现 User.javapublic class User { private int uId; private String uPassword; private Set<String> addresses1=new HashSet<String>(); private List<String> addr原创 2017-09-05 20:57:41 · 167 阅读 · 0 评论 -
Hibernate之 继承映射
Hibernate的继承映射可分为四种: 1、普通的继承映射 需求:现在有动物(Animal这个类) 还有Dog这个类 和 Cat这个类 要求使用继承映射来完成这个关联关系的配置 Animal.javapublic class Animal { //private int aid; private String color; priva原创 2017-09-06 20:55:32 · 177 阅读 · 0 评论 -
异常之java.lang.NoSuchMethodError
Exception in thread “main” java.lang.NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext.(Lorg/hibernate/boot/spi/ClassLoaderAccess;)V 此处的错误的原因是: 在一个java项目中,直接建一个lib文件夹,加入第三方的包原创 2017-10-16 19:40:45 · 1184 阅读 · 0 评论