※开源框架专题※
文章平均质量分 92
不爱我就写代码
给自己定一个小目标:成为架构师
展开
-
【MyBatis】基础篇(一) 回顾JDBC编程,理解什么是框架
MyBatis学习笔记——JDBC回顾1.JDBC程序的回顾public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { ...原创 2019-08-16 16:57:59 · 862 阅读 · 0 评论 -
【Spring】基础入门篇(四) 基于XML方式的SpringIoC实现CRUD
Spring·基础入门篇(四) 基于XML方式的Spring IoC实现CRUD1. 需求和技术要求1.1 需求实现账户的 CRUD 操作1.2 技术要求使用 spring 的 IoC 实现对象的管理使用 DBUtils 作为持久层解决方案使用 c3p0 数据源2. 环境搭建2.1 创建Maven的普通工程2.2 导入pom.xml坐标<dependencie...原创 2019-08-28 19:49:07 · 385 阅读 · 0 评论 -
【Spring】基础入门篇(五) 使用SpringTest整合JUnit编写测试类
Spring·基础入门篇(五) 使用SpringTest整合JUnit编写测试类1. 分析测试中的问题在测试类中,每个测试方法都有以下两行代码:ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");IAccountService as = ac.getBean("accountService",IAc...原创 2019-08-28 20:08:50 · 1655 阅读 · 0 评论 -
【Spring】基础入门篇(六) Spring基于注解的IOC配置
Spring·基础入门篇(六) Spring基于注解的IOC配置1. 认识注解IoC配置注解配置和 xml 配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样2. 环境搭建2.1 创建Maven的普通工程2.2 导入pom.xml坐标<dependency> <groupId>org.springframework</gr...原创 2019-08-28 22:53:31 · 389 阅读 · 0 评论 -
【Spring】基础入门篇(七) 基于注解方式的SpringIoC实现CRUD
Spring·基础入门篇(七) 基于注解方式的SpringIoC实现CRUD1. 需求和技术要求1.1 需求实现账户的 CRUD 操作1.2 技术要求基于注解方式使用 spring 的 IoC 实现对象的管理使用 DBUtils 作为持久层解决方案使用 c3p0 数据源2. 环境搭建2.1 创建Maven的普通工程2.2 导入pom.xml坐标<depende...原创 2019-08-28 23:04:16 · 413 阅读 · 0 评论 -
【Spring】基础入门篇(八) SpringAOP相关概念
Spring·基础入门篇(八) SpringAOP相关概念1. AOP概述1.1 什么是 AOPAOP:全称是 Aspect Oriented Programming 即面向切面编程简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。1.2 AOP 的作用及优势作用:在程序运行期间,不修改源码对已有...原创 2019-08-29 15:08:53 · 467 阅读 · 0 评论 -
【Spring】基础入门篇(九) 基于XML的SpringAOP配置
Spring·基础入门篇(九) 基于XML的SpringAOP配置1. 环境搭建基于XML方式配置AOP实现日志系统为案例第一步:创建普通Maven工程第二步:导入pom.xml坐标<dependency> <groupId>org.springframework</groupId> <artifactId>sprin...原创 2019-08-29 15:55:13 · 405 阅读 · 0 评论 -
【Spring】基础入门篇(十) 基于注解的SpringAOP配置
Spring·基础入门篇(十) 基于注解的SpringAOP配置1. 环境搭建基于注解方式配置AOP实现日志系统为案例第一步:创建普通Maven工程第二步:导入pom.xml坐标<dependency> <groupId>org.springframework</groupId> <artifactId>spring-...原创 2019-08-29 16:40:20 · 353 阅读 · 0 评论 -
【Spring】基础入门篇(十一) SpringJDBC之JdbcTemplate
Spring·基础入门篇(十一) SpringJDBC之JdbcTemplate1. JdbcTemplate 概述它是 Spring 框架中提供的一个对象,是对原始 Jdbc API 对象的简单封装。Spring 框架为我们提供了很多的操作模板类。操作关系型数据的:JdbcTemplateHibernateTemplate操作 nosql 数据库的:RedisTemplat...原创 2019-08-29 19:00:19 · 564 阅读 · 0 评论 -
【Spring】基础入门篇(十二) Spring中的事务控制
Spring·基础入门篇(十一) Spring中的事务控制1. Spring 中事务控制的 API 介绍1.1 PlatformTransactionManager此接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法:获取事务状态信息TransactionStatus getTransaction(TransactionDefinition definition...原创 2019-08-29 20:09:01 · 354 阅读 · 0 评论 -
【Spring】基础入门篇(十三) SpringMVC的基本概念
Spring·基础入门篇(十一) SpringMVC的基本概念1. 关于三层架构和 MVC1.1 三层架构我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构中,每一层各司其职...原创 2019-08-29 22:46:10 · 392 阅读 · 0 评论 -
【Spring】基础入门篇(十四) SpringMVC的入门案例
Spring·基础入门篇(十二) SpringMVC的入门案例1. 编写入门程序案例1.1 创建Maven的WEB工程1.2 导入pom.xml坐标<!-- 版本锁定 --><properties> <spring.version>5.0.2.RELEASE</spring.version></properties>...原创 2019-08-30 00:18:14 · 449 阅读 · 0 评论 -
【Spring】基础入门篇(十五) SpringMVC请求参数的绑定
Spring·基础入门篇(十五) SpringMVC请求参数的绑定1. 绑定的机制表单中请求参数都是基于 key=value 的。SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。例如:2. 支持的数据类型基本类型参数:包括基本类型和 String 类型POJO 类型参数:包括实体类,以及关联的实体类数组和集合类型参...原创 2019-08-30 01:42:05 · 456 阅读 · 0 评论 -
【Spring】基础入门篇(十六) SpringMVC常用注解
Spring·基础入门篇(十六) SpringMVC常用注解1. RequestParam1.1 使用说明作用:把请求中指定名称的参数给控制器中的形参赋值属性:value:请求参数中的名称required:请求参数中是否必须提供此参数。默认值:true。表示必须提供,如果不提供将报错1.2 使用示例jsp:控制器:1. RequestParam1.1 使用...原创 2019-08-30 09:54:53 · 407 阅读 · 0 评论 -
【Spring】基础入门篇(十七) SpringMVC响应数据和结果视图
Spring·基础入门篇(十七) SpringMVC响应数据和结果视图1. 返回值分类1.1 返回字符串controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址//指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp@RequestMapping("/testReturnString")publi...原创 2019-08-30 13:43:05 · 336 阅读 · 0 评论 -
【Spring】基础入门篇(十八) SpringMVC实现文件上传
Spring·基础入门篇(十八) SpringMVC实现文件上传1. SpringMVC 传统方式的文件上传1.1 说明传统方式的文件上传,指的是我们上传的文件和访问的应用存在于同一台服务器上。1.2 实现步骤第一步: 导入相应的文件上传jar包坐标<dependency> <groupId>commons-fileupload</groupId>...原创 2019-08-30 17:06:33 · 309 阅读 · 0 评论 -
【Spring】基础入门篇(十九) SpringMVC中的异常处理
Spring·基础入门篇(十九) SpringMVC中的异常处理1. 异常处理的思路系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的 dao、service、controller 出现都通过 throws Exception 向上抛出,最后由 springmvc ...原创 2019-08-30 17:18:06 · 406 阅读 · 0 评论 -
【Spring】基础入门篇(二十) SpringMVC 中的拦截器
Spring·基础入门篇(二十) SpringMVC 中的拦截器1. SpringMVC拦截器作用SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。拦截器和过滤器的功能比较类似,有区别过滤器是Servlet规范的一部分,任何框架都可以使...原创 2019-08-30 18:34:19 · 319 阅读 · 0 评论 -
【Spring】基础入门篇(三) IoC的概述和SpringIoC解决程序耦合
Spring·基础入门篇(三) IoC的概述和Spring IoC解决程序耦合1. 控制反转(Inversion Of Control)使用工厂类解耦合,我们在程序启动时工厂就负责读取配置文件,并创建好所有对象,存进一个Map容器中,此时我们获取对象的方式就发生了改变:原来: 我们在获取对象时,都是采用 new 的方式。是主动的。现在:我们获取对象时,同时跟工厂要,有工厂为我们查找或者...原创 2019-08-28 18:34:13 · 383 阅读 · 0 评论 -
【Spring】基础入门篇(二) 程序的耦合和解耦
Spring·基础入门篇(二) 程序的耦合和解耦1. 程序的耦合和解耦1.1 什么是程序的耦合耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独...原创 2019-08-28 16:12:42 · 769 阅读 · 0 评论 -
【Spring】基础入门篇(一) Spring概述
Spring·基础入门篇(一) Spring概述1. Spring是什么?Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业...原创 2019-08-28 15:10:25 · 549 阅读 · 0 评论 -
【MyBatis】基础篇(二) MyBatis框架快速入门案例
MyBatis学习笔记——框架快速入门1. MyBatis概述1.1 官网介绍官方地址:http://www.mybatis.org/mybatis-3/MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口...原创 2019-08-16 18:19:53 · 924 阅读 · 0 评论 -
【MyBatis】基础篇(三) 用13个类手写MyBatis框架实现入门案例
MyBatis学习笔记——简单手写MyBatis框架1.手写MyBatis框架前的分析1.1 回顾MyBatis的入门案例回顾往期笔记:MyBatis框架快速入门案例通过我们在入门案例中的学习中,发现MyBatis使用了以下设计模式:构造这模式(Builder模式) 解决封装对象构造细节问题,是使用者关注对象的使用,而不是构建工厂模式(Factory模式) 解决依赖关系问题,解耦合...原创 2019-08-17 01:30:19 · 1327 阅读 · 0 评论 -
【MyBatis】基础篇(四) MyBatis基于代理实现CRUD操作
MyBatis学习笔记——基于代理实现CRUD操作使用要求:1、持久层接口和持久层接口的映射配置必须在相同的包下2、持久层映射配置中 mapper 标签的 namespace 属性取值必须是持久层接口的全限定类名3、SQL 语句的配置标签,,,的 id 属性必须和持久层接口的方法名相同。1. 根据ID查询1.1 持久层接口添加 findById 方法/*** 根据 id 查询...原创 2019-08-17 14:06:24 · 860 阅读 · 0 评论 -
【MyBatis】基础篇(五) MyBatis映射配置文件参数的深入
MyBatis学习笔记——MyBatis参数1. parameterType 配置传入参数SQL 语句传参时,使用标签的 parameterType 属性来设定。该属性的取值可以是基本类型,引用类型(例如:String 类型),还可以是实体类类型(POJO 类)。同时也可以使用实体类的包装类。基本类型传参引用类型传参实体类类型传参实体类的包装对象类型传参本篇文章重点讲解 实体类...原创 2019-08-17 15:06:29 · 904 阅读 · 0 评论 -
【MyBatis】基础篇(六) MyBatis核心配置文件详解
MyBatis学习笔记——SqlMapConfig.xml详解SqlMapConfig.xml 中配置的内容和顺序/***-properties(属性)* --property * *-settings(全局配置参数)* --setting* *-typeAliases(类型别名)* --typeAliase * --package * *-typeHandlers(类型...原创 2019-08-17 15:58:39 · 918 阅读 · 0 评论 -
【MyBatis】基础篇(七) MyBatis基于传统DAO层开发
MyBatis学习笔记——传统 DAO 层开发使用 Mybatis 开发 Dao,通常有两个方法,即原始 Dao 开发方式和 Mapper 接口代理开发方式。而现在主流的开发方式是接口代理开发方式,这种方式总体上更加简便。我们的课程讲解也主要以接口代理开发方式为主。在之前已经给大家介绍了基于代理方式的 dao 开发,现在给大家介绍一下基于传统编写 Dao 实现类的开发方式。1.编写持久层 ...原创 2019-08-17 17:58:29 · 815 阅读 · 0 评论 -
【MyBatis】基础篇(八) MyBatis中的连接池技术
MyBatis连接池技术1. MyBatis连接池分类在 MyBatis 的数据源 dataSource 分为以下几类:UNPOOLED 不使用连接池的数据源POOLED 使用连接池的数据源JNDI 使用 JNDI 实现的数据源2. Mybatis 中数据源的配置我们的数据源配置就是在 SqlMapConfig.xml 文件中,具体配置如下:<!-- 配置数据源(连接...原创 2019-08-18 14:47:28 · 1571 阅读 · 0 评论 -
【MyBatis】基础篇(九) MyBatis的事务控制
MyBatis系列之基础入门篇(九) MyBatis的事务控制1. JDBC中事务的回顾在 JDBC 中我们可以通过手动方式将事务的提交改为手动方式,通过 setAutoCommit()方法就可以调整。那么我们的 Mybatis 框架因为是对 JDBC 的封装,所以 Mybatis 框架的事务控制方式,本身也是用 JDBC 的setAutoCommit()方法来设置事务提交方式的。2...原创 2019-08-18 16:35:47 · 929 阅读 · 0 评论 -
【MyBatis】基础篇(十) Mybatis的动态SQL语句
MyBatis系列之基础篇(十) Mybatis的动态SQL语句1. 动态SQL概述参考官方文档,描述如下:分别有:ifchoose (when, otherwise)trim (where, set)foreach2. 动态 SQL 之标签我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询。比如在 id 如果不为空时可以根据 id 查询,如果 userna...原创 2019-08-18 17:29:38 · 1005 阅读 · 0 评论 -
【MyBatis】基础篇(十一) MyBatis的多表查询
MyBatis系列之基础篇(十一) MyBatis的多表查询本次主要以最为简单的用户、账户和角色的模型来分析 Mybatis 多表关系。用户为 User 表,账户为Account表,角色为Role表。一个用户(User)可以有多个账户(Account),一个账户(Account)对应着一个用户(User),一个用户(User)可以有多个角色(Role),一个角色(User)能赋予给多个用户(...原创 2019-08-19 11:05:41 · 977 阅读 · 0 评论 -
【MyBatis】基础篇(十二) MyBatis延迟加载策略
MyBatis系列之基础篇(十二) MyBatis延迟加载策略1. 什么是延迟加载?延迟加载:就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因...原创 2019-08-19 13:41:06 · 818 阅读 · 0 评论 -
【MyBatis】基础篇(十三) MyBatis缓存策略
MyBatis系列之基础篇(十三) MyBatis缓存策略1.MyBatis中的缓存像大多数的持久化框架一样,Mybatis 也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能。MyBatis 中缓存分为一级缓存和二级缓存2. 一级缓存一级缓存是 SqlSession 级别的缓存,只要 SqlSession 没有 flush 或 close,它就存在2.1...原创 2019-08-19 15:37:00 · 871 阅读 · 0 评论 -
【MyBatis】基础篇(十四) MyBatis基于注解开发
MyBatis·基础篇(十四) MyBatis基于注解开发1. mybatis 的常用注解说明常见注解作用@Insert实现新增@Update实现更新@Delete实现删除@Select实现查询@Result实现结果集封装@Results可以与@Result 一起使用,封装多个结果集@ResultMap实现引用@Resu...原创 2019-08-19 18:58:35 · 1688 阅读 · 0 评论 -
【ORM思想】思想介绍篇:ORM思想介绍
思想介绍篇:ORM思想介绍1. ORM 介绍1.1 ORM概念对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。ORM在业务逻辑层和数据库层之间充当了桥梁的作用。1.2 ORM 由来让我们...原创 2019-08-20 17:01:29 · 1824 阅读 · 0 评论 -
【ORM思想】源码分析篇:Hibernate的ORM思想分析
源码分析篇:Hibernate框架分析1. ORM的经典应用:Hibernate案例Hibernate 就是应用 ORM 思想建立的一个框架,一般我们把它称之为全自动的 ORM 框架,程序员在使用 Hibernate 时几乎不用编写 sql 语句,而是通过操作对象即可完成对数据库的增删改查。通过案例让大家对 ORM 思想有一个更深入的了解1.1 创建 Maven 工程1.2 编...原创 2019-08-20 18:56:38 · 1022 阅读 · 0 评论 -
【ORM思想】源码分析篇:MyBatis的ORM思想分析
源码分析篇:MyBatis框架分析1. ORM的经典应用:MyBatis案例MyBatis 框架也应用了 ORM 思想,一般我们把它称之为半自动的 ORM 框架,跟 Hibernate相比,MyBatis 更加轻量,更加灵活,为了保证这一点,程序员在使用 MyBatis 时需要自己编写 sql 语句,但是 API 的使用依然像 Hibernate 一样简单方便.1.1 创建 Mave...原创 2019-08-20 21:02:13 · 1214 阅读 · 0 评论 -
【ORM思想】源码手写篇:仿Hibernate手写ORM框架
ORM思想之源码手写篇:仿Hibernate手写ORM框架前面我们通过跟踪源码的方式剖析了 Hibernate 和 MyBatis 两个框架是如何应用 ORM 思想的,接下来我们自己定义一个简单的 ORM 框架(仿Hibernate),希望能通过这种方式让大家亲自零距离的去应用一下 ORM。1. ORM 框架的结构设计第一层为配置层:orm.cfg.xml 是框架的核心配置...原创 2019-08-21 06:00:38 · 1163 阅读 · 0 评论 -
【Spring】基础入门篇(二十一) Spring5新特性
Spring·基础入门篇(二十一) Spring5新特性1. jdk 版本升级spring5.0 在 2017 年 9 月发布了它的 GA(通用)版本。该版本是基于 jdk8 编写的,所以 jdk8 以下版本将无法使用。同时,可以兼容 jdk9 版本tomcat 版本要求 8.5 及以上我们使用 jdk8 构建工程,可以降版编译。但是不能使用 jdk8 以下版本构建工程。2 利...原创 2019-08-30 19:17:08 · 363 阅读 · 0 评论