- 博客(28)
- 收藏
- 关注
原创 SSM整合02_纯注解方式
本教程源码请访问:tutorial_demoSSM整合可以使用多种方式,我们纯注解的方式,抛弃所有的xml配置文件(包括web.xml),使用Java配置类和注解进行配置。SSM的整体思路:整合Spring和SpringMVC,整合Spring和MyBatis,两两整合。一、环境准备1.1、建库建表DROP DATABASE IF EXISTS ssm;CREATE DATABASE ssm;USE ssm;DROP TABLE IF EXISTS account;CREATE T.
2020-06-22 23:04:47 491
原创 SSM整合01_XML和注解方式
本教程源码请访问:tutorial_demoSSM整合可以使用多种方式,我们采用XML+注解的方式SSM的整体思路:整合Spring和SpringMVC,整合Spring和MyBatis,两两整合。一、环境准备1.1、建库建表DROP DATABASE IF EXISTS ssm;CREATE DATABASE ssm;USE ssm;DROP TABLE IF EXISTS account;CREATE TABLE account ( id int(11) NOT NULL .
2020-06-22 23:03:51 141
原创 SpringMVC04_异常处理
本教程源码请访问:tutorial_demo一、概述系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:二、环境搭建2.1、创建工程在idea中从原型创建Maven工程,选择org.apache.maven.archetypes:maven-archetype-webapp,在pom.xml中添加如下的坐标:<dependency> <group.
2020-06-20 20:48:17 135
原创 SpringMVC03_文件上传
本教程源码请访问:tutorial_demo一、文件上传的前提form表单的enctype取值必须是:multipart/form-data(默认值:application/x-www-form-urlencode);method取值必须是post;提供一个文本选择域<input type="file" />。接下来的案例我们借助commons-fileupload组件实现文件上传,需要导入该组件相应的支撑jar包:commons-fileupload和commons-io,我们在.
2020-06-20 20:46:27 115
原创 SpringMVC02_响应数据和结果视图
本教程源码请访问:tutorial_demo一、环境搭建1.1、创建工程在idea中从原型创建Maven工程,选择org.apache.maven.archetypes:maven-archetype-webapp,在pom.xml中添加如下的坐标:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId.
2020-06-18 11:51:44 113
原创 SpringMVC01_入门案例
本教程源码请访问:tutorial_demo一、MVC模型和三层架构1.1、MVC模型MVC的全程是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,是一种用于设计创建Web应用程序的模式 。每个部分有专门的功能:Model(模型):指的就是我们的数据模型。一般情况下用于封装数据。View(视图):用于展示数据,包括我们之前学习的JSP和HTML,也就是用户“看得到”的内容。Controller(控制器):处理用户交互的.
2020-06-17 15:30:47 227
原创 Spring12_Spring中的事务控制
本教程源码请访问:tutorial_demo一、概述之前我们学习了AOP,然后通过AOP对我们的Apache Commons DbUtils实现单表的CRUD操作的代码添加了事务。Spring有其自己的事务控制的机制,我们完全可以在项目中使用Spring自己的事务控制机制。JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案。二、环境准备我们之前学习了JdbcTemplate,我们的环境Dao层使用JdbcTemplate,后面三个部分的代码,都.
2020-06-07 21:11:35 102
原创 Spring11_JdbcTemplate
本教程源码请访问:tutorial_demo一、JdbcTemplate概述JdbcTemplate是Spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装。类似于我们前面学习的Apache Commons DbUtils。Spring框架为我们提供了很多的操作模板类。操作关系型数据库的:JdbcTemplate、HibernateTemplate。操作NoSQL数据库的:RedisTemplate。操作消息队列的:JmsTemplate。二、使用JdbcTemplat.
2020-06-07 19:13:01 95
原创 Spring10_AOP
本教程源码请访问:tutorial_demo一、AOP概述1.1、概念AOP:全称是Aspect Oriented Programming,即:面向切面编程。通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。上面是百度百科上的概念,看看就行了。.
2020-06-04 23:23:07 258
原创 Spring09_动态代理
本教程源码请访问:tutorial_demo一、什么是动态代理1.1、概念动态代理的用途与装饰模式很相似,就是为了对某个对象进行增强。所有使用装饰者模式的案例都可以使用动态代理来替换。特点:字节码随用随创建,随用随加载;作用:不修改源码的基础上对方法增强;学习目的:为了学习AOP的原理做准备。1.2、实现方式两种方式:基于接口的动态代理,JDK官方提供,被代理类最少实现一个接口,如果没有则不能使用;基于子类的动态代理,第三方cglib库提供。我们这篇教程使用基于接口的动态代理方.
2020-06-01 20:10:06 149
原创 Spring08_纯注解实战_支持事务版本
本教程源码请访问:tutorial_demo上一篇教程我们使用纯注解方式结合Apache Commons DbUtils实现单表的CRUD操作,但是这篇教程里面的操作的是不支持事务的,在这片教程里我们根据现有的知识,将其改成支持事务的版本,为后续学习做准备。一、转账操作问题分析接下来我们实现一个转账操作,分析一下问题存在的问题。1.1、在业务层接口IAccountService中添加相应的方法//新增加的转账方法void transfer(Integer srcId, Integer dst.
2020-05-29 17:37:37 150
原创 Spring07_纯注解实战及Spring整合Junit
本教程源码请访问:tutorial_demo在《Spring04_IOC和DI实战》当中,我们使用XML配置的方式结合Apache Commons DbUtils实现单表的CRUD操作,这篇教程我们使用纯注解方式结合Apache Commons DbUtils实现单表的CRUD操作。一、需求和技术要求1.1、需求实现单表的CRUD1.2、技术要求使用Spring的IOC实现对象的管理;使用Spring的DI实现属性的注入;使用Apache Commons DbUtils进行持久层操作;.
2020-05-28 12:19:45 134
原创 Spring06_纯注解配置
本教程源码请访问:tutorial_demo之前我们学习了如何使用注解实现IOC和DI,接下来我们学习一下如何完全抛弃XML配置,完全使用注解配置。在学习纯注解之前先看一个完全用XML配置的案例,就当一个回顾。一、一个例子-使用XML配置bean需求:设计一个Person对象,包含username、age、gender、birthday四个属性,并使用Spring创建Person对象,并注入属性。1.1、创建项目在Idea中新建Maven工程;工程创建完成后添加相应的坐标。<?.
2020-05-28 00:02:27 113
原创 Spring05_基于注解的IOC和DI
本教程源码请访问:tutorial_demo在学习基于注解的IOC和DI之前,大家要有一个基本的认识,即注解配置和之前学习的XML配置要实现的功能是一样的,都是为了降低程序间的耦合,只是配置的形式不一样。一、使用注解实现IOC1.1、创建项目在Idea中新建Maven工程;工程创建完成后添加相应的坐标。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4..
2020-05-27 20:01:18 135
原创 Spring04_IOC和DI实战
本教程源码请访问:tutorial_demo学习本篇教程之前,需要了解(会用就行)以下内容:数据库连接池c3p0;Apache Commons DbUtils。只学习不练习一切都是假的,接下来我们利用之前学习的IOC和DI的知识结合Apache Commons DbUtils实现单表的CRUD操作。一、需求和技术要求1.1、需求实现单表的CRUD1.2、技术要求使用Spring的IOC实现对象的管理;使用Spring的DI实现属性的注入;使用Apache Commons Db.
2020-05-25 16:29:36 164
原创 Spring03_DI
本教程源码请访问:tutorial_demo一、什么是依赖注入依赖注入:Dependency Injection ,指容器负责创建和维护对象之间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。在当前类需要用到其他类的对象,由Spring为我们提供,我们只需要在配置中说明。二、如何进行注入2.1、构造函数注入2.1.1、创建项目在Idea中新建Maven工程;工程创建完成后添加相应的坐标。<?xml version="1.0" encoding="UTF-8"?.
2020-05-25 10:27:04 113
原创 Spring02_基于XML的IOC
本教程源码请访问:tutorial_demo上篇教程我们学习了如何使用工厂模式解耦,把对象的创建由程序员交给自定义的工厂类,在这篇教程我们将学到如何使用Spring的IOC解决程序的耦合问题。一、什么是IOCIOC:Inversion of Control,控制反转,将创建对象的权力交给框架。过去创建对象由开发人员通过new的方式创建,有了IOC之后,开发人员不需要new了,只需要从Spring容器(我们可以认为是保存对象的容器)中获取就可以了,创建对象的控制权发生了转移,由开发人员转移给了Spr.
2020-05-24 23:01:18 156
原创 Spring01_概述及程序的耦合
本教程源码请访问:tutorial_demo一、什么是SpringSpring是分层的Java SE/EE 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了表现层Spring MVC 和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。二、Spring的优势.
2020-05-24 17:36:53 273
原创 MyBatis10_基于注解的多表查询
上一篇文章我们学习了MyBatis使用注解实现单表的CRUD,通过上篇文章的学习我们对MyBatis基于注解开发有了一个基本的理解。这篇文章我们学习一下MyBatis使用注解实现多表查询。一、复杂关系映射的注解说明@Results注解 代替的是标签<resultMap>该注解中可以使用单个@Result注解,也可以使用@Result集合@Results({@Result(), @Result()})或@Results(@Result())@Result注解 代替了<id.
2020-05-20 21:36:19 272
原创 MyBatis09_基于注解的CRUD
近些年来使用注解开发越来越流行,MyBatis顺应潮流,也可以使用注解开发。使用注解开发就可以不用写持久层映射配置文件了。这篇文章我们就来学习一下在MyBatis中如何使用注解进行CRUD。一、MyBatis的常用注解说明@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result一起使用,封装多个结果集@ResultMap:实现引用@Results定义的封装@One:实现一对一结果.
2020-05-20 20:32:42 89
原创 MyBatis08_多表查询二
本案例分析“多对多”关系时,使用用户表(user)、用户角色表(user_role)和角色表(role)来分析。通过前面的学习,我们使用MyBatis实现一对多关系的维护。多对多关系其实我们可以看成是双向的一对多关系。一、实现Role到User的多对多1.1、编写用户User实体类package org.codeaction.domain;import java.io.Serializable;import java.util.Date;import java.util.List;p.
2020-05-20 17:05:37 113
原创 MyBatis07_多表查询一
之前的教程中,我们学习了MyBatis的单表CRUD,在实际的项目中,很多时候要用到多表的查询,今天我们就来学习一下,这篇教程用到的数据库脚本、pom.xml、SqlMapConfig.xml和《02_MyBatis快速入门》中是完全一样的,大家需要在这篇文章的基础上进行学习。本案例分析“一对一”、“一对多”关系时,使用用户表(user)和账户表(account)来分析;本案例分析“多对多”关系时,使用用户表(user)、用户角色表(user_role)和角色表(role)来分析。一、一对一查询.
2020-05-20 11:23:16 122
原创 MyBatis06_动态SQL语句
之前在MyBatis持久层接口映射配置文件中,我们使用的SQL语句都是比较简单的,有时候业务逻辑复杂,SQL语句是动态变化的,前面学习的SQL语句就不能满足要求了。一、if标签我们根据实体类的不同取值,使用不同的SQL语句来进行查询。比如,username不为空时,根据username进行查询,address不为空时,根据address进行查询。这种多条件组合查询经常会碰到。1.1、 持久层接口IUserDaoList<User> findByUser(User user);1.
2020-05-19 10:54:16 125
原创 MyBatis05_主配置文件深入
前面我们学习了持久层接口映射文件的配置,接下来我们学习一下主配置文件SqlMapConfig.xml的配置一、properties在使用properties标签时,我们可以采用两种方式指定属性配置。1.1、基本使用<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://myb.
2020-05-16 23:38:32 137
原创 MyBatis04_持久层接口映射配置文件深入
通过前面的学习我们对MyBatis进行单表的CRUD操作,已经有了一个基本的了解,在前面的学习中MyBatis持久层接口的映射配置文件涉及很多参数,下面我们就学习一下这些参数的基本使用。一、parameterTypeMyBatisSQL语句传参,使用标签的parameterType属性来设定。这个属性的取值可以是基本数据类型,String类型,实体类类型(pojo类),也可以是自定义的类类型(一般数据库表有对应的实体类,自定义的类类型不和数据库表对应,通常用来传递综合的查询条件)。1.1、注意事项.
2020-05-16 22:01:07 418
原创 MyBatis03_单表CRUD
通过前面的学习,我们对MyBatis的概念和环境搭建已经有了一个基本的了解,接下来我们学习一下MyBatis的CRUD。这篇教程的环境要求如下:持久层接口和持久层接口的映射配置文件必须在相同的包下;持久层接口的映射配置文件mapper标签的namespace属性取值必须是持久层接口的全限定类名;持久层接口的映射配置文件SQL语句标签的属性必须和持久层接口的方法名相同。注意:这篇教程是“02_MyBatis快速入门”的延续,环境和02当中完全相同,如果02没有配置运行成功,请返回认真学习。.
2020-05-15 20:23:33 117
原创 MyBatis02_快速入门
通过前面的学习我们已经对 MyBatis 有了一个简单的了解,学习框架最终的目的是做项目,既然是做项目,那么一切都要以代码落地。 下面我们就开启 MyBatis 的学习。项目的结构,后面有图片展示,建议大家详细的把这篇教程浏览一遍再去动手做。搭建MyBatis开发环境建库建表DROP DATABASE IF EXISTS mybatisdb;CREATE DATABASE mybatisdb;USE mybatisdb;-- -----------------------------.
2020-05-14 16:48:05 159
原创 MyBatis01_概述
Java从1995年正式发布至今,出现已经二十多年了,伴随着互联网的发展,Java也在不断的发展。整个Java的发展过程就是一个“发现问题,解决问题”的过程。在今天,说到Java已经不单单是一门编程语言,更多的是围绕Java语言的体系以及这个体系之下的众多的框架。从业界来看,最早的JSP\Servlet发展到SSH,再到SSM,再到为了微服务出现的SpringBoot及为了分布式出现的SpringCloud,Java已经成为了一个王国。学习Java就要学习框架,接下来我们就从还算流行的SSM(Spri.
2020-05-14 14:12:32 155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人