
SSM项目从零开始到入门
心歌技术
认知迭代命运
展开
-
SSM项目从零开始到入门051-SpringMVC的自定义拦截器
SpringMVC的自定义拦截器Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口。拦截器的执行顺序:preHandle方法—》—请求映射的方法—》—postHandle方法—》—afterCompletion方法下面我们实现一个自定义的SpringMVC拦截器:1.自定义实现类实现 Hand...原创 2018-04-02 15:09:23 · 491 阅读 · 2 评论 -
SSM项目从零开始到入门029-mybatis的前置内容小节
mybatis是什么?mybatis是一人持久层框架,mybatis是一个不完全的ORM框架。sql语句需要程序员自己去编写,但是mybatis也有映射(输入参数映射、输出结果映射)。mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便,适用与需求变化较多项目,比如互联网项目。mybatis框架执行过程:1、配置mybatis的配置文件,SqlMapCo...原创 2018-03-13 10:09:07 · 387 阅读 · 0 评论 -
SSM项目从零开始到入门028-mybatis的二级缓存探究
MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。MyBatis的缓存机制 如上图所示,当开一个会话时,一个SqlSession对象会使用一个Executor对象来完成会话操作,MyBatis的二级缓存机制的关键就是对这个Executor对象做文章。如果用户配置了"cacheEnabled=true",那么MyBatis在为Sql...原创 2018-03-12 17:26:10 · 413 阅读 · 0 评论 -
SSM项目从零开始到入门027-mybatis的一级缓存探究
Mybatis一级缓存的概念 当我们使用Mybatis进行数据库的操作时候,会创建一个SqlSession来进行一次数据库的会话,会话结束则关闭SqlSession对象。那么一个SqlSession的生命周期即对应于Mybatis的一次会话。在Mybatis的一次会话中,我们很有可能多次查询完全相同的sql语句,如果不采取措施的话,每一次查询都查询一次数据库。而一次会话时间一般都是极短的,...原创 2018-03-12 16:37:39 · 381 阅读 · 0 评论 -
SSM项目从零开始到入门026-mybatis的parameterType传入参数类型
在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可。parameterType有基本数据类型和复杂的数据类型配置。1. MyBatis的传入参数parameterType类型分两种 1. 1. 基本数据类型:int,...原创 2018-03-12 13:08:14 · 1587 阅读 · 0 评论 -
SSM项目从零开始到入门025-mybatis的resultMap自定义高级映射规则
通过前面的了解,我们指定查询结果的返回值类型都是通过使用select元素的resultType属性来指定,来让MyBatis自动将查询结果集封装成我们希望的类型进行返回。 resultType属性非常有用,但在返回结果类型比较复杂的情况下却无能为力,为此,MyBatis在select元素中还为我们提供了另外一个resultMap属性,用于引用一个使用<resultMap...原创 2018-03-12 10:00:40 · 660 阅读 · 0 评论 -
SSM项目从零开始到入门024-mybatis的<trim>标签的用法
trim 元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是 prefix 和 suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是 prefixOverrides 和 suffixOverrides;正因为 trim 有这样的功能,所以我们也可以非常简单的利用 trim 来代替 where 元素的功能。...原创 2018-03-11 11:18:45 · 520 阅读 · 0 评论 -
SSM项目从零开始到入门023-mybatis的<foreach>标签的用法
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名。index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置。open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作...原创 2018-03-11 10:07:34 · 837 阅读 · 0 评论 -
SSM项目从零开始到入门022-mybatis的<set>标签的用法
set 标签元素主要是用在更新操作的时候,它的主要功能和 where 标签元素其实是差不多的,主要是在包含的语句前输出一个 set,然后如果包含的语句是以逗号结束的话将会把该逗号忽略,如果 set 包含的内容为空的话则会出错。有了 set 元素就可以动态的更新那些修改了的字段。 当 update 语句中没有使用 if 标签时,如果有一个参数为 null,都会导致错误。 当...原创 2018-03-11 09:30:14 · 592 阅读 · 0 评论 -
SSM项目从零开始到入门021-mybatis的<where>标签的用法
where 元素的作用是会在写入 where 元素的地方输出一个 where,另外一个好处是你不需要考虑 where 元素里面的条件输出是什么样子的,MyBatis 会智能的帮处理,如果所有的条件都不满足那么 MyBatis 就会查出所有的记录,如果输出后是 and 开头的,MyBatis 会把第一个and忽略,当然如果是 or 开头的,MyBatis 也会把它忽略。栗子1:<...原创 2018-03-11 09:26:08 · 595 阅读 · 0 评论 -
SSM项目从零开始到入门020-mybatis的<choose(when, otherwise)>标签的用法
有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件。MyBatis 提供了 choose 元素。if标签是与(and)的关系,而 choose 是或(or)的关系。 choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 c原创 2018-03-11 08:16:59 · 815 阅读 · 0 评论 -
SSM项目从零开始到入门045-Spring的事务管理
一个数据库事务是一个被视为单一的工作单元的操作序列。事务管理RDBMS (关系数据库管理系统Relational Database Management System)是一个重要组成部分,这些操作应该要么完整地执行,要么完全不执行,以确保数据完整性和一致性。 事务的概念可以描述为具有以下四个关键属性说成是ACID,ACID指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomici...原创 2018-03-16 14:23:36 · 411 阅读 · 0 评论 -
SSM项目从零开始到入门030-mybatis的一对一关联映射
通过前面的学习,我们知道可以通过resultMap 完成一些高级映射。如果查询到的列名和映射的pojo的属性名不一致时,通过resultMap设置列名和属性名之间的对应关系(映射关系),可以完成映射。下面我们讲解mybatis高级映射中的一对一关联映射。首先我们定义一个订单商品数据模型它包含如下表结构用户表user: 记录了购买商品的用户信息 订单表:orders ...原创 2018-03-13 16:14:29 · 607 阅读 · 0 评论 -
SSM项目从零开始到入门046-Spring整合mybatis
本文介绍Spring与mybatis的整合过程,我们基于父工程进行构建。1.首先贴出父工程pom.xml依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://...原创 2018-03-19 16:58:11 · 370 阅读 · 1 评论 -
SSM项目从零开始到入门050-SpringMVC的Ajax方法调用
本篇文章介绍SpringMVC的Ajax方法调用ajax我们采用 jquery内置实现首先我们在jsp页面导入jquery文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath ...原创 2018-03-26 16:28:49 · 428 阅读 · 0 评论 -
SSM项目从零开始到入门049-SpringMVC类型转换问题
在使用SpringMVC的时候,经常会遇到表单中的日期字符串和JavaBean的Date类型的转换,而SpringMVC默认不支持这个格式的转换,所以需要手动配置,自定义数据的绑定才能解决这个问题。在需要日期转换的Controller中使用SpringMVC的注解@initbinder和Spring自带的WebDateBinder类来操作。WebDataBinder是用来绑定请求参数到指定的属性编...原创 2018-03-26 15:13:09 · 348 阅读 · 2 评论 -
SSM项目从零开始到入门048-SpringMVC常用注解浅析
上文我们做了一个对SpringMVC做了一个简单的了解,并列举了一个HelloWorld的小例子。本文我们开始介绍SpringMVC常用注解。1. @Controller功能:@Controller 将一个类标记为Controller。注册一个bean到spring 上下文中。用法:@Controllerpublic class UserController {}2 . @RequestMa...原创 2018-03-26 09:49:11 · 462 阅读 · 0 评论 -
SSM项目从零开始到入门047-SpringMVC初识
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到...原创 2018-03-21 12:36:19 · 531 阅读 · 0 评论 -
SSM项目从零开始到入门037-Spring的体系结构
体系结构Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。核心容器核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下:核心模块提供了框架的基本组成部分...原创 2018-03-14 17:10:03 · 337 阅读 · 0 评论 -
SSM项目从零开始到入门036-mybatis分页插件PageHelper的使用
PageHelper是针对mybatis开发的一款开源插件,可以很方便进行分页查询,且支持大部分主流数据库。引入分页插件引入分页插件有下面2种方式,推荐使用 Maven 方式。1). 引入 Jar 包由于使用了sql 解析工具,需要下载 jsqlparser.jar:http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9...原创 2018-03-14 16:46:26 · 533 阅读 · 0 评论 -
SSM项目从零开始到入门035-mybatis通用mapper的使用
对单表进行增删改查是项目中不可避免的需求,Mybatis的通用Mapper插件使这些操作变得简单,通用Mapper都可以极大的方便开发人员。通用mapper的优点:1.可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。2.极其方便的使用MyBatis单表的增删改查。需要注意的地方:1.支持单表操作,不支持通用的多表联合查询。2.通用 Mapper 支持 Mybatis-3.2...原创 2018-03-14 15:41:04 · 559 阅读 · 0 评论 -
SSM项目从零开始到入门034-mybatis的SQL语句构建器
MyBatis在它的XML映射特性中有一个强大的动态SQL生成方案。但有时在Java代码内部创建SQL语句也是必要的。此时,MyBatis有另外一个特性可以帮到你,在减少典型的加号,引号,新行,格式化问题和嵌入条件来处理多余的逗号或 AND 连接词之前。在Java代码中来动态生成SQL代码就是一场噩梦。例如: String sql = "SELECT P.ID, P.USERNAME, P.PAS...原创 2018-03-14 14:47:45 · 353 阅读 · 0 评论 -
SSM项目从零开始到入门033-mybatis的延时加载
1、什么是延迟加载 延迟加载(lazy load)是(也称为懒加载)是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。可以简单理解为,只有在使用的时候,才会发出sql语句进行查询。举个例子如果查询订单并且关联查询用户信息。但当我们没有使用订单中的用户信息时,用户信息时没有没加载的,当我们需要订单中的用户信息时才去查询这就是就是延迟加载。延迟...原创 2018-03-14 14:17:05 · 401 阅读 · 0 评论 -
SSM项目从零开始到入门032-mybatis的多对多关联映射
本篇我们讲解mybatis的多对多映射依据上图,我们要实现要查询用户以及用户所购买的商品信息,经过分析用户和商品数据库级别没有任何关系,用户和商品需要建立关系,要通过订单,订单明细建立关系。根据这个需求,可以分析出需要查询的主表为:查询主表:用户表查询关联表:订单表,订单明细表,items商品表。(由于商品和用户没有关系,通过订单和订单明细进行关联)这样的话,sql该如何去写?首先我们把SQL写出...原创 2018-03-14 11:54:02 · 436 阅读 · 0 评论 -
SSM项目从零开始到入门031-mybatis的一对多关联映射
先祭出上篇文章的关系图,上篇我们实现了,查询订单的同时查询订单所属的用户信息。现在有了新的问题,就是查询订单时,不光实现上篇功能,同时还要将订单明细查询出来。这就涉及到了一对多的查询。首先我们写出查询的SQL语句SELECT o.*, u.* , d.*FROM t_order o , t_user u , t_orderdetail dWHERE o.use...原创 2018-03-13 19:06:57 · 445 阅读 · 0 评论 -
SSM项目从零开始到入门044-Spring的JDBC
Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发。Spring主要提供JDBC模板方式、关系数据库对象化方式、SimpleJdbc方式、事务管理来简化JDBC编程Spring提供了3个模板类:1.JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问。2.NamedParameterJdbcTemplate:能够在...原创 2018-03-15 19:34:55 · 605 阅读 · 1 评论 -
SSM项目从零开始到入门019-mybatis的<if>标签的用法
Mybatis if 标签可用在许多类型的 SQL 语句中,我们以查询为例。首先看一个很普通的查询:<!-- 查询用户列表,like用户名称 --> <select id="getUserListLikeName" parameterType="User" resultMap="userResultMap"> SELECT * from user u ...原创 2018-03-09 15:16:34 · 504 阅读 · 0 评论 -
SSM项目从零开始到入门011-详解mybatis的XML 映射配置文件
详解mybatis的XML 映射配置文件MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。文档的顶层结构如下:顺序不可以打乱configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeH原创 2017-12-18 19:02:54 · 1525 阅读 · 2 评论 -
SSM项目从零开始到入门005-创建第一个mybatis项目
创建第一个mybatis项目首先创建maven父集中版本定义工程修改pom.xml文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt原创 2017-11-27 17:39:54 · 1032 阅读 · 4 评论 -
SSM项目从零开始到入门009-使用mybatis提供的动态代理
使用mybatis提供的动态代理本节介绍mybatis的动态代理,回顾前面我们的crud操作,整个执行过程大致为首先有个关于实体的dao接口,然后是dao接口接口的实现类,实现类然后在调用sqlsession去完成crud的操作public class UserDaoImpl implements UserDao{ private SqlSession原创 2017-12-15 13:56:54 · 642 阅读 · 1 评论 -
SSM项目从零开始到入门010-mybatis提供的动态代理实现过程探究
mybatis提供的动态代理实现过程探究上小节我们简单实现了mybatis的动态代理,本节我们跟进动态代理的实现我们在上图47行的地方打上一个断点,然后debug执行程序点击F5跟进程序上面的sqlsession即我们创建的sqlsession args为参数,点击F5继续跟进execute函数因为我们执行是insert方法原创 2017-12-15 15:26:27 · 616 阅读 · 1 评论 -
SSM项目从零开始到入门004-mybatis架构介绍
mybatis架构介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,其主要就完成2件事情:1.封装JDBC操作原创 2017-11-27 17:10:17 · 977 阅读 · 0 评论 -
SSM项目从零开始到入门003-maven集中定义依赖版本号
maven集中定义依赖版本号 在使用maven构建项目时,一系列的依赖往往需要使用相同的版本号,这时候我们可以在properties标签中定义版本号以便版本管理。上一小节我们创建了第一个maven例子 现在开始了,把项目里的东西除了pom.xml剩下的全删除,并修改pom.xml内容为<project xmlns="http://maven.apac...原创 2017-11-27 16:45:17 · 1677 阅读 · 4 评论 -
SSM项目从零开始到入门002-创建第一个maven项目
创建第一个maven项目打开MyEclipse点击file -- New -- others --- 输入 maven 搜索 编辑pom.xml文件 引入mysql驱动jar包<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:原创 2017-11-27 16:15:59 · 1214 阅读 · 0 评论 -
SSM项目从零开始到入门001-maven的安装与配置
maven的安装与配置1.下载maven安装包到maven官方网址 http://maven.apache.org/download.cgi 下载apache-maven-3.3.9-bin.zip或是下载小编上传的直接配好仓库位置的maven2.解压到指定目录当中解压的目录名字可以随便起,我把文件解压到了E:/java/maven原创 2017-11-27 15:29:44 · 1337 阅读 · 0 评论 -
SSM项目从零开始到入门008-mybatis传递多个参数问题
mybatis传递多个参数问题根据用户名和密码查询信息 name pwd第一种方案DAO层方法public User findUserByNameAndPwd(String name,String pwd);对应mapper.xml写法 select * from t_user where n原创 2017-12-01 18:12:01 · 784 阅读 · 0 评论 -
SSM项目从零开始到入门007-使用接口完成增删改查操作
使用接口完成增删改查操作本文将继续前边的例子完成CRUD(增加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)首字母简写)的操作。CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。在之前的demo例子mybatis测试类里直接调用mapper文件完了一个查询操作,现在我们使用后接口进行方法的定义、原创 2017-12-01 17:42:58 · 2448 阅读 · 0 评论 -
SSM项目从零开始到入门006-为mybatis项目添加日志支持
为mybatis项目添加日志支持打开mybatis01项目中pom.xml添加如下代码 4.0.0 com.lcx.parent maven-parent 0.0.1-SNAPSHOT com.lcx.mybatis01 mybatis01 1.0.1-SNAPSHOT mys原创 2017-11-28 19:21:00 · 610 阅读 · 0 评论 -
SSM项目从零开始到入门038-Spring的HelloWorld实例
本节我们讲解Spring的第一个小实例,首先是关于spring的环境配置1.下载jar包安装从 http://repo.spring.io/release/org/springframework/spring 下载最新版本的 Spring 框架的二进制文件。下载完后需要自己导入jar包。2.使用maven安装只需要添加以下配置<dependency> <groupId&g...原创 2018-03-14 17:54:17 · 1106 阅读 · 0 评论 -
SSM项目从零开始到入门039-Spring的IoC 容器
1.什么是IoC ? 控制反转(Inversion of Control,英文缩写为IoC)把创建对象的权利交给框架,是框架的重要特征,并非面向对象编程的专用术语。它包括依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。2.IoC最大的好处是什么?因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般...原创 2018-03-14 18:11:14 · 524 阅读 · 0 评论