Springmvc04

Springmvc的全局异常处理  springmvc与spring的整合  myBatis

1、Springmvc的全局异常处理

作用:一次配置,对于controller层的所有方法的该类型异常有起作用

  1、基于注解的全局异常

    具体实现:

    1、在类上加@controllerAdvice  2、在方法上加@ExceptionHandler注解

    3、在springmvc.xml文件中配置mvc:annotation-driven

  2、基于xml配置的全局异常处理

    在springmvc.xml文件中配置一个SimpleMappingException

2、Springmvc与spring的整合

 作用:整合之后希望springmvc管理controller层,让spring管理service层和dao层

  具体步骤:

  1、导入架包,并在web.xml文件中配置spring的ContextLoaderLister和Springmvc的前段控制器和两个filter

  2、创建Springmvc.xml,并配置

  3、创建applicationContext.xml,并配置

  4、写三层代码

  扫描包说明:让springmvc扫描控制层,spring扫描service层和dao层

  第一种解决方法: 

  Springmvc.xml  扫描 <context:component-scan base-package="com.offcn.controller"/>

  Beans.xml <context:component-scan base-package="com.offcn.service,com.offcn.dao"/>

  第二种解决方方法

  Springmvc.xml

   <context:component-scan base-package="com.offcn" use-default-filters="false">

  <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

  <context:include-filter type="annotation"       expression="org.springframework.web.bind.annotation.ControllerAdvice"/>

  </context:component-scan>

  Beans.xml

   <context:component-scan base-package="com.offcn">

    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>

   <context:exclude-filter type="annotation"   expression="org.springframework.web.bind.annotation.ControllerAdvice"/>

   </context:component-scan>

Springmvc的spring容器的关系

  spring容器和springmvc容器是父子关系

  spring容器是父容器,springmvc是子容器

  子容器中的对象d使用父容器中的对象,但父容器对象不能使用子容器的对象

get请求转换delete请求方法:

  借助js和一个空白的form表单

  <a id="del_${book.id }" href="${pageContext.request.contextPath }/book/del/${book.id}">删除</a>|

  

  $(function() {
  $("a[id ^= del]").click(function() {
  var href = $(this).attr("href");
  $("#form12").attr("action",href).submit();
  return false;
  });

  <form id="form12" action="" method="post">
  <input type="hidden" name="_method" value="delete">
  </form>

MyBatis:

  MyBatis入门

  MyBatis是由lbatis发展而来的

  官网:https://github.com/mybatis/mybatis-3

  MyBatis在软件三层所在位置:dao层

**MyBatis相对于原生jdbc、JdbcTemplate、Hibernate的优势:

  1、MyBatis本身是一个框架,除了可以对数据表中的数据进行曾删改查之外,还有缓存,字段映射等机制

  2、MyBatis支持动态SQL(根据传过来的参数不同,拼接不同的SQL语句)

  3、MyBatis支持将java代码和SQL语句分离

  4、MyBatis支持将表的关联关系直接映射为pojo对象的关联关系

  5、MyBatis是一个半自动化【手写SQL】的ORM框架

使用流程简介:

  1、导入jar包:MyBatis驱动包、MyBatis.jar

  2、创建MyBatis的全局配置文件:mybatis-config.xml,每个项目只能有一个mybatis的全局配置文件

    作用:1、配置数据库连接信息

        2、加载SQL映射文件

  3、创建MyBatis的sql映射文件,每个项目可以由多个sql映射文件

    作用:对数据表的增删改查语句都写在这里

  4、写测试代码

    4.1、根据xml构建sqlSessionFactory对象

    4.2、通过SQLSessionFactory对象的openSession方法得到sqlsession对象

    4.3、通过SQLSession对象执行SQL语句

    4.4、关闭sqlSession对象

java初学者的Springmvc04笔记的更多相关文章

  1. Java初学者笔记

    Java初学者笔记 前提:认识汉字,认识英语单词,会用键盘打字 ------------------------------- 端口是什么: --------面向对象编程(OOP) 接口”(Inter ...

  2. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

  3. Java初学者最佳的学习方法以及会遇到的坑(内含学习资料)!

    最近系统整理了一套java初学者最佳的学习方法以及会遇到的坑等,希望对你有所帮助. 目录: 一.学习java的前提 二.学习java的方法 三.学习java时的坑 四.学习java的路线(画重点) 一 ...

  4. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  5. 一位资深程序员大牛给予Java初学者的学习路线建议

    java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...

  6. 对Java初学者的忠告

    1) 适合自己的图书才是最好的,最好的书并不一定适合你,看自己的情况. 如果你是一个Java初学者一上手就捧一本Thinking in Java在手里,我想你的日子是不会好过的,那样的书给有一定基础的 ...

  7. 给JAVA初学者的50个忠告

    摘自: http://wenku.baidu.com/link?url=p5vDKt5bKzUXxG_hAsB9XopHJRROeovOGGh4jnXGZXiUedR-fNOLO7zb6ddENo5U ...

  8. java 初学者需注意问题

    1.Java为什么能跨平台运行? Java语言编写的程序既是编译型的,又是解释型的.程序代码经过编译之后转换为一种Java字节码的中间语言,Java虚拟机即JVM将对字节码进行解释和运行.编译只进行一 ...

  9. Java性能调优笔记

    Java性能调优笔记 调优步骤:衡量系统现状.设定调优目标.寻找性能瓶颈.性能调优.衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈).性能调优结束. 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多. ...

随机推荐

  1. deepin的15.11中安装nvidia最新435版本驱动

    换了一个电脑,跟随潮流,CPU是不带集显的,操作系统从原来的硬盘一通搬过来的 其中Deepin Linux更新到15.11. 显卡是2060的,在Deepin中目前只集成了390的nvidia驱动,无 ...

  2. 龙芯软硬件培训个人总结-day2

     今天最后一天,主要培训了BSP,QT,KVM云计算相关的内容.大致总结了一些自己关注的点.培训的资料已上传至服务器,如果需要可关注下方二维码,后台直接回复“资料”获取.关于实战的资料还未导出,等导出 ...

  3. 数据测试002:利用Jmeter推送测试数据(上)

    数据测试002:利用Jmeter推送测试数据(上) 刚才用Jmeter配置一下MySQL数据库花了点时间,好在最后都解决了,注意下面几个问题: 1)没有配置  “Cannot load JDBC dr ...

  4. python+selenium下载文件——Chrome

    from selenium import webdriver import time options = webdriver.ChromeOptions() prefs = { 'profile.de ...

  5. python关键字以及含义,用法

    Python常用的关键字   1.and , or and , or 为逻辑关系用语,Python具有短路逻辑,False and 返回 False 不执行后面的语句, True or 直接返回Tru ...

  6. lambda得用法

  7. python GIL全局解释器锁与互斥锁 目录

    python 并发编程 多线程 GIL全局解释器锁基本概念 python 并发编程 多线程 GIL与Lock python 并发编程 多线程 GIL与多线程

  8. HDU 2100 Lovekey (26进制大数、字符串)

    Lovekey Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  9. A9-USART2_RX_BUF 串口2收发异常

    a9_send_cmd(); //退出透传模式,和前一次发送时间超过 2 秒,输入+++,就可以退出透传模式 delay_ms(); delay_ms(); delay_ms(); a9_quit_t ...

  10. mysql表优化

    一.定期分析表 ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] 二.定期检查表 CHECK TABLE tbl_nam ...