自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

属于Alex的Java小世界

愿作一片扁舟,在代码的海洋里遨游...

  • 博客(49)
  • 收藏
  • 关注

原创 SSM整合之拦截器

拦截器的定义定义拦截器,实现HandlerInterceptor接口,实现三个方法 preHandle() 、postHandle()、afterCompletion()/** * Created by Alex on 2017/6/30. * 测试拦截器1 */public class HandlerInterceptor1 implements HandlerInter

2017-06-30 16:51:02 1590

原创 SSM整合之RESTful支持

什么是RESTful?RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。RESTful(即RepresentationalState Transfer的缩写)是一种开发理念,是对于http的很好的诠释。对url进行规范,写成RESTful格式的url非REST的url: http://

2017-06-29 23:30:07 3937 1

原创 SpringMVC学习之json数据交互

为什么要进行json数据交互json数据格式在接口调用中、html页面中较常用,json格式较简单,解析起来比较方便。比如:webservice接口,传入json数据、xml等。。springmvc进行json交互 1、请求的是json,输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便2、请求的是key\val

2017-06-29 22:30:37 360

原创 SSM整合之异常处理

异常处理思路系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:springmvc提供全

2017-06-29 20:26:36 8666

原创 SSM整合之数据回显

什么是数据回显?在提交后表单后,如果出现错误,将错误的数据回显至提交前的页面数据回显的方法pojo数据回显方法1、springmvc默认对pojo数据进行回显pojo数据传入Controller方法后,springmvc会自动将pojo的数据放到request域,key等于pojo的类名(首字母小写)使用@ModelAttribute("items") :

2017-06-29 19:38:43 4145 1

原创 SSM整合之分组校验

上接上篇博客需求在pojo中定义校验规则,而pojo是被多个Controller所共用,当需要不同的Controller方法对同一个pojo进行校验,但是每个Controller的方法需要不同的校验规则解决思路:定义多个校验分组即可(是一个接口),在分组中定义不同的规则每个Controller方法使用不同的校验规则校验分组package com.al

2017-06-29 18:54:37 633

原创 SSM整合之数据校验

什么是校验?一个项目中,通常使用校验较多的地方是前端的校验,比如说在页面中js的校验(表单验证)。对于安全性要求较高的,则会要求在服务端也进行校验。服务端校验:控制层Controller: 校验页面请求参数(形参)的合法性。在控制层controller校验,不区分客户端类型(浏览器、手机客户端、远程接口的调用webService)业务层Service(使用较多):主要校验关

2017-06-29 17:49:58 3378

原创 SSM整合之高级参数绑定

包装类型pojo参数绑定1 、需求商品查询的Controller方法中实现商品查询条件的传入2 、实现方法第一种:在形参中添加HttpServletRequest request参数,通过request接收查询条件参数第二种:在形参中使用包装类型的pojo接收查询条件参数。分析:页面传参数的特点:复杂,多样。条件包括:用户账号,商品编号,订单信息等如果要将用户账

2017-06-28 18:30:48 483 1

原创 SpringMVC和Struts2的区别

1、SpringMVC是基于方法开发的,Struts2是基于类开发的SpringMVC将url和Controller方法进行映射,映射成功后,SpringMVC会生成一个Handler对象,对象中只包括了1个method方法执行结束,形参数据则销毁。2、SpringMVC可以进行单例模式开发,Struts2无法使用单例模式开发SpringMVC可以进行单例模式开发,并且建议大家

2017-06-28 00:15:54 697

原创 SSM整合之参数绑定

参数绑定1、springmvc参数绑定过程从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到Controller的形参上springmvc中,接收页面提交的数据是通过方法的形参来接收,而不是在Controller类定义成员变量接收!2、默认支持的类型直接在Controller方法的形参上定

2017-06-27 23:58:17 910

原创 SSM整合之springmvc注解开发

需求操作流程:进入商品查询列表页面(加载所有商品)点击修改链接,进入商品修改页面,页面中加载显示的是要修改的商品信息(数据库查询得到),根据商品的ID查询商品信息在商品的修改页面修改商品信息,修改后点击提交至数据库开发mappermapper:根据ID查询商品表信息根据ID更新商品表信息不需要开发,直接使用逆向工程生成的mapper代码开发service

2017-06-27 21:40:15 430

原创 SSM整合之环境配置和测试开发

需求使用springmvc和mybatis完成商品列表的查询整合思路springmvc+mybatis(ssm)的系统架构图解:第一步:整合DAO层(持久层)mybatis和spring整合,通过spring管理mapper接口。使用mapper的扫描器自动扫描mapper接口,在spring容器中自动注入第二步:整合Service层(业务层

2017-06-26 21:46:31 3100

原创 SpringMVC学习之前期小结

小结之前的入门小程序通过入门程序理解springmvc的前端控制器、处理器映射器、处理器适配器和视图解析器的用法前端控制器:配置前端控制器内的 url-pattern <!-- 第一种配置方式: *.action 访问以 .action结尾的 由DispatcherServlet进行解析 第二种配置方式:/ , 所有访问的地址

2017-06-26 18:21:21 341

原创 SpringMVC学习之注解映射器和适配器

DispatcherServlet.properties前端控制器从这个文件中加载映射器和适配器和视图解析器等组件,如果不在springmvc.xml中配置,就会使用默认加载内容:# Default implementation classes for DispatcherServlet's strategy interfaces.# Used as fallback when

2017-06-26 17:20:33 689

原创 SpringMVC学习之非注解的处理器映射器和适配器

非注解的处理器映射器:另外一个SImpleURLHandlerMapping: itemsController itemsController 结论: 多个映射器可以并

2017-06-26 16:28:06 318

原创 SpringMVC学习之环境搭设

需求  在这里还是使用mybatis学习时使用的案例,以案例为驱动进行学习功能需求:商品列表查询运行环境的配置在开始之前要确定数据库版本、jdk版本、IDE版本、tomcat版本等数据库:MySQL 5.1.38jdk : 1.6.0_45IDE : intelliJ idea 2017 1.4tomcat : 8.5.11spring : 4.3.9

2017-06-26 00:05:46 467

原创 mybatis学习之逆向工程

什么是逆向工程?mybatis需要开发者自己编写sql语句,在mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java/mapper,xml/pojo.java...)在企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。下载逆向工程使用方法1、运行逆向工程建议使用Java

2017-06-25 14:03:45 587

原创 mybatis学习之与Spring整合

整合思路需要spring通过单例模式管理SQLSessionFactorySpring和mybatis整合生成代理对象,使用SQLSessionFactory创建SQLSession(Spring和mybatis整合自动完成) 持久层的mapper,dao都需要由spring管理整合环境创建一个新的java工程(接近实际开发的工程结构)jar包:mybati

2017-06-25 00:53:15 452

原创 mybatis学习之查询缓存

什么是查询缓存?mybatis提供查询缓存,用于减轻数据压力,提高数据库性能mybatis提供一级缓存和二级缓存一级缓存是SQLSession的缓存在操作数据库时需要构造SQLSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据不同的SQLSession之间的缓存数据区域(HashMap)是互相不影响的二级缓存是mapper级别的缓存

2017-06-24 20:16:47 4347 17

原创 mybatis学习之高级映射 延迟加载

1、什么是延迟加载resultMap可以实现高级映射,对于查询结果有特殊要求的,使用association和collection 具备延迟加载的功能比如,查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求。当我们需要查询用户信息时,再查询用户信息。把对用户信息的查询按照需求去查询,就叫做延迟加载延迟加载:先从单表开始查询,需要时再从关联表关联查询,可以大大提高

2017-06-23 22:24:23 752

原创 mybatis学习之高级映射中的多对多查询

多对多查询1、需求查询用户及用户所购买的商品信息2、sql语句需要查询的主表是:用户表User需要查询的关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联变:订单表order,订单明细表orderdetail,商品表itemsSELECT orders.*, user.`username`, user.`sex`,user.`addre

2017-06-23 21:12:52 327

原创 mybatis学习之高级映射中的一对多查询

一对多查询1、需求查询订单及订单明细的信息2 、sql语句确定主查询表:订单表 order确定关联查询表: 订单明细表 orderdetail在一对一查询的基础上,添加订单明细表的关联即可SELECT orders.*,user.`username`,user.`sex`,user.`address` , orderdetail.`id` orderde

2017-06-23 20:13:32 968

原创 mybatis学习之高级映射中的一对一查询

1 一对一查询      1.1 需求              查询订单信息,关联查询创建订单的用户信息      1.2 resultType              1.2.1 sql语句                     确定要查询的主表:订单表 order                    再确定要查询的关联表: 用户表 userSELECT or

2017-06-22 23:07:19 736

原创 mybatis学习之数据模型分析思路

1、数据模型的分析思路 1.1 每张表记录的数据内容分模块对诶张表记录的内容进行熟悉,相当于学习系统需求(功能)的过程 1.2 每张表数据库字段的设置非空字段、外键字段、这些都是重要的字段 1.3 数据库级别表与表之间的关系外间关系(子表和父表) 1.4 表与表之间的业务关系在分析他们之间的业务关系时,一定要建立在某个业务意义的基础之上去分析。

2017-06-22 21:17:08 520

原创 mybatis学习之动态SQL

概念 mybatis核心就是对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活的拼接和组装需求用户信息的综合查询列表和用户信息查询的列表总数这两个statement使用动态sql对查询条件进行判断,如果输入参数不为空,才进行查询条件拼接where 与 ifmapper.xml: <!-- 用户信息的综合查询

2017-06-21 15:43:08 246

原创 mybatis学习之输出映射

resultType使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。如果查询出来的列名和pojo中的属性名全不一致,就没有创建pojo对象只要查询出来的列名和pojo属性名有一个一致,就会创建pojo对象输出简单类型需求:用户信息的综合查询的列表总数,通过查询总数和上面用户综合查询的列表才可以实现分页mapp

2017-06-20 20:52:05 673

原创 mybatis学习之输入映射

我们可以通过parameterType来指定输入参数的类型,类型可以是简单类型,也可以是hashMap,也可以是包装类型(pojo)传递pojo的包装对象需求:完成用户信息的综合查询,需要传入许多查询条件(可能包括用户信息、其他的信息如:商品和订单)针对上面的需求,建议使用自定义的包装类型的pojo在包装类型的pojo中,将复杂的查询条件包装进去package po

2017-06-20 16:32:00 585 1

原创 mybatis学习之SqlMapConfig.xml的详细配置内容

mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)environment(环境子属性对象)transa

2017-06-20 15:51:48 2107

原创 mybatis学习之原始开发DAO与mapper代理开发DAO的区别

1、SqlSession使用的范围1.1 SqlSessionFactoryBuilder通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory将SqlSessionFactoryBuilder当成一个工具类来使用,不需要使用单例模式管理SqlSessionFactoryBuilder。在需要创建SqlSessionFactory时,只需

2017-06-20 05:34:33 12076 2

原创 mybatis与hibernate本质的区别以及应用的场景

本质区别hibernate:是一个标准的ORM框架(对象关系映射)。入门门槛较高,不需要程序编写sql,sql语句自动生成。对于sql语句进行优化和修改是比较困难的mybatis:专注的是sql本身,需要程序员自己去编写sql语句,sql语句的修改和优化较为方便。mybatis是一个不完全的ORM框架,虽然程序员自己编写sql,但是mybatis也可以实现映射(输入输出映射)

2017-06-20 03:46:28 310

原创 mybatis学习之删除和更新用户例子

1、编写数据库映射文件(User.xml)在配置文件中加入如下代码<!-- 删除用户 根据ID删除用户 --> DELETE from user where id = #{id} <!-- 更新用户 需要传入用户的ID和更新的信息 parameterType指定User对象,注意:id必须存在

2017-06-19 20:59:10 1517

原创 mybatis学习之添加新用户例子

1、配置数据库映射文件(User.xml)在其中加入如下代码: <!-- 添加用户 parameterType:指定输入的参数类型是pojo #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis也是通过OGNL来获取对象的属性值 --> INSERT INTO USER VALUES(#{id},#{us

2017-06-19 20:19:21 5527

原创 mybatis学习之模糊查询用户例子

上接上一篇博客1、配置数据库映射文件(User.xml)在其中加入如下代码: <!-- 根据用户名称模糊查询用户信息 注意:此处resultType不管单条多条结果记录,都为所映射成的java对象 ${}表示拼接sql串,将接受到的参数的内容不加任何修饰拼接在sql语句中 使用${}符号可能会引起sql注入问题 -->

2017-06-19 19:22:17 553

原创 mybatis学习之根据id查找用户例子

1、创建po类根据数据库字段一一生成表的po类在此处我们生成一个User类 //属性名和数据库表的字段一一对应 private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String

2017-06-19 18:55:03 9477 1

原创 mybatis学习之环境配置

1、mybatis的运行环境此处使用mybatis-3.4.4版,下载地址在github上,前面博文中有下载地址如图:lib文件夹:包含mybatis的依赖包mybatis-3.4.4.jar:mybatis的核心包加入mysql的驱动包:mysql2、log4j.properties3、工程结构

2017-06-19 17:52:18 246

原创 mybatis学习之框架原理

1、什么是mybatis?mybatis是一个持久层的框架,是apache旗下的顶级项目。mybatis之前托管在googlecode下,目前托管在github下。点我下载mybatis是让程序员将主要精力放在sql之上,通过mybatis提供的映射方式,自由灵活的生成(半自动化,大部分需要程序员编写)满足需求的sql语句。mybatis可以将向preparedSt

2017-06-19 13:26:06 232

原创 mybatis学习之传统JDBC编程中的问题总结

对于原生态JDBC程序中的问题总结1、传统JDBC程序对于数据库的连接,使用时就创建,不使用立即释放,对于数据库频繁的进行开启和关闭,造成数据库的资源浪费,影响数据库的性能解决设想:使用数据库连接池管理数据库连接。2、传统JDBC将sql语句硬编码至Java代码中,如果sql语句需要修改,需要重新编译java代码,不利于系统的维护。解决设想:使用配置文件将sql语句配置在x

2017-06-19 13:04:10 538

原创 SpringMVC学习之基础知识

1、什么是SpringMVC?SpringMVC是Spring框架的一个模块,SpringMVC和Spring无需通过中间整合层进行整合。SpringMVC是一个基于MVC的web框架2、SpringMVC的框架图解 第一步:前端页面发起请求至前端控制器(DispatcherServlet)第二步:前端控制器请求处理器映射器(Hand

2017-06-18 22:16:58 374

原创 关于如何在github的README.md文件内添加图片的教程

注:本人几次直接在网页上修改README.md文件均应用失败,后来把文件clone到本地修改完成后在push到github就成功了,大家如果也遇到这种问题不妨可以试一下我的方法 在文本区域插入:![Alt text](https://github.com/username/repository/raw/master/directory/file.jpg/png)其中

2017-06-14 22:45:17 1835

原创 SSH整合之使用spring-DWR实现动态综合查询数据

接上一篇实现分页功能后来讲现已查询账单为例前端页面有代码: 商品名称:     是否付款: 全部 已付款

2017-06-14 19:06:58 302

空空如也

空空如也

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

TA关注的人

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