
框架
文章平均质量分 51
忍者1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MyBatis框架:第一章:简介
mybatis概述1.1、mybatis简介1.MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。2.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。3.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.4.简单对比以前的代码就是,将以前要写的sql语句统一写到xml文件中,不用我们写dao层的实现类了,方便我们查找转载 2021-09-25 19:30:45 · 128 阅读 · 0 评论 -
MyBatis框架:第二章:传统mybatis的hello world 示例
创建java Project项目,建库建表插入数据,到数据库中执行添加mybatis的核心jar添加mysql数据库连接驱动添加log4j日记需要的核心jar在config目录下添加 log4j.properties 日记配置文件Global logging configurationlog4j.rootLogger=DEBUG, stdoutConsole output…log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4转载 2021-09-25 19:01:18 · 117 阅读 · 0 评论 -
MyBatis框架:第三章:传统方式mybatis的增,删,改,查实现
传统方式mybatis的增,删,改,查实现准备工作创建java Project项目,建库建表插入数据,到数据库中执行,导入jar包添加mybatis的核心jar添加mysql数据库连接驱动添加log4j日记需要的核心jar在config目录下添加 log4j.propreties代码:Global logging configurationlog4j.rootLogger=DEBUG, stdoutConsole output…log4j.appender.stdout=org.apac转载 2021-09-25 18:41:44 · 148 阅读 · 0 评论 -
MyBatis框架:第四章:插入记录并返回主键
往数据库插入数据后,返回数据主键信息。有两种方法。一种:使用insert标签中的useGeneratedKeys属性和keyProperty属性组合使用获取主键信息。一种:使用子元素selectKey标签执行sql语句获取。<!-- 插入用户 useGeneratedKeys="true" 表示返回生成的主键 keyProperty 表示把返回的key注入到返回值的哪个属性中 keyProperty="id" 表示把返回的id主键值注入到返回对象的id属性中 --><in转载 2021-09-25 18:12:21 · 218 阅读 · 0 评论 -
MyBatis框架:第五章:源码解析及Mapper接口方式的mybatis的增,删,改,查实现
Mapper接口编程的命名习惯Mapper接口方式的编程,需要先有一个接口。这个接口的命名一般是xxxxMapper。比如:User模块的Mapper,接口命名为UserMapper。Book模块的Mapper,接口命名为BookMapper。Mapper接口开发有四个开发规范必须遵守1、对应的mapper配置文件的namespace属性值必须是Mapper接口的全类名。2、Mapper接口中的方法名必须与mapper配置文件中对应的id值相同。3、Mapper接口的方法的参数类型必须与ma转载 2021-09-25 17:31:29 · 176 阅读 · 0 评论 -
MyBatis框架:第六章:mybatis的核心配置
mybatis的核心配置之properties创建jdbc.properties一般在实际的项目中。数据库的连接信息。会存放在一个jdbc.properties的属性配置文件中username=rootpassword=rootdriverClass=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis在mybatis-config.xml中修改引入properties资源<!-- properties 配置一些属性。转载 2021-09-25 17:08:02 · 162 阅读 · 0 评论 -
MyBatis框架:第七章:注解使用方式和参数传递及#{}和${}
myBatis的注解使用方式(了解。主要使用xml)注解的使用示例:public interface UserMapperAnnotation {@Select(“select id,last_name userName ,sex from t_user where id = #{id}”)public User selectUser(int id);@Select(“select * from t_user”)public List selectUserList();@Update(“upd转载 2021-09-25 16:31:34 · 367 阅读 · 0 评论 -
MyBatis框架:第八章:自定义结果集,一对一,一对多,延迟加载,赖加载
13.1、自定义结果集介绍自定义结果集,可以给复杂的对象使用。也就是对象内又嵌套一个对象。或者一个集合。在这种情况下。前面学过的知识点,已经无法直接获取出对象内对象的信息。这个时候就需要使用resultMap自定义结果集来返回需要的数据。13.2、创建一对一数据库表一对一数据表创建锁表create table t_lock(id int primary key auto_increment,name varchar(50));创建钥匙表create table t_key(id i转载 2021-09-25 16:01:57 · 169 阅读 · 0 评论 -
MyBatis框架:第九章:动态SQL语句
准备工作:public class User {private int id;private String lastName;private int sex;14.1、if 语句说明: if语句,可以动态的根据你的值来决定,是否需要动态的添加查询条件。UserMapper类中的方法public interface UserMapper {public List queryUsersByNameAndSex(User user);}UserMapper配置文件中的配置<!--转载 2021-09-25 15:25:01 · 149 阅读 · 0 评论 -
MyBatis框架:第十章:mybatis缓存
mybatis缓存说明: 缓存指的是把一些常用的数据,保存到一个可以高速读取的缓冲区中。方便程序在频繁读取的时候,可以快速的取出数据。这就叫做缓存。一级缓存指的是,这些缓存的数据,在同一个SqlSession中多次SQL操作都可以获取。二级缓存指的是,这些缓存的数据。在同一个Mapper中有一个cache缓存对象。多个SqlSession对象可以共享这些数据。15.1、mybatis的一级缓存MyBatis的一级缓存默认开启。同一个SqlSession中查询,可以从一级缓存中取数据。15.1.1转载 2021-09-20 19:24:00 · 137 阅读 · 0 评论 -
MyBatis框架:第十一章:mybatis 逆向工程
MyBatis逆向工程,简称MBG。是一个专门为MyBatis框架使用者定制的代码生成器。可以快速的根据表生成对应的映射文件,接口,以及Bean类对象。在Mybatis中,有一个可以自动对单表生成的增,删,改,查代码的插件。叫 mybatis-generator-core-1.3.2。它可以帮我们对比数据库表之后,生成大量的这个基础代码。这些基础代码有:1、数据库表对应的javaBean对象2、这些javaBean对象对应的Mapper接口3、这些Mapper接口对应的配置文件16.1、准备转载 2021-09-20 12:04:49 · 130 阅读 · 0 评论 -
Spring Cloud:第五章:Zuul服务网关
快速入门定义user,order,pay服务,定义zull服务网关服务都注册到eureka服务上,通过一下接口访问user,order,pay的服务,http://localhost:7070/pay/indexhttp://localhost:8080/user/indexhttp://localhost:9090/order/index定义服务网关服务zuul,我们看看其相关配置,zuul-service加入依赖: <dependencies> <dep转载 2021-09-20 11:11:57 · 107 阅读 · 0 评论 -
Spring Cloud:第四章:Hystrix断路器
Hystrix “豪猪”,具有自我保护的能力。hystrix 通过如下机制来解决雪崩效应问题。资源隔离:包括线程池隔离和信号量隔离,限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用。(1)线程池隔离模式:使用一个线程池来存储当前请求,线程池对请求作处理,设置任务返回处理超时时间,堆积的请求先入线程池队列。这种方式要为每个依赖服务申请线程池,有一定的资源消耗,好处是可以应对突发流量(流量洪峰来临时,处理不完可将数据存储到线程池队里慢慢处理)(2)信号量隔离模式:使用一个原子计数转载 2021-09-20 10:54:30 · 115 阅读 · 0 评论 -
Spring Cloud:第三章:Ribbon客服端负载均衡
负载均衡是对系统的高可用、网络压力的缓解和处理能力扩容的重要手段。理解Ribbon对于我们使用Spring Cloud来讲非常的重要。它是一个基于Http和TCP的客户端负载均衡工具。它不像服务注册中心、配置中心、API网关那样独立部署,但是它几乎存在于每个微服务的基础设施中。基于Ribbon+RestTemplate的用法1、引入依赖<dependency> <groupId>org.springframework.cloud</groupId>转载 2021-09-20 10:04:25 · 145 阅读 · 0 评论 -
Spring Cloud:第二章:eureka服务发现
服务注册中心 :eureka-server新建一个springboot项目:eureka-server,其pom.xml配置如下: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.o转载 2021-09-20 09:23:02 · 164 阅读 · 0 评论 -
Spring Cloud:第一章:基本介绍
Spring Cloud中文网Spring Cloud 是什么?Spring Cloud 是一系列框架的有序集合,将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。Spring Cloud 优缺点基于注解,没有配置文件,解耦的Spring Cloud 和 Dubbo 对比Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构的方方面面,服务治理只是其中的一个方面。Spring Cloud 基于 Spring Boot,基于http协议,Dubbo转载 2021-09-19 21:09:55 · 150 阅读 · 0 评论 -
SpringBoot框架:第二章:SpringBoot中static和templates二个目录下的页面和静态资源访问的三个常见问题
静态页面:在resources建立一个static目录和index.htm静态文件,访问地址 http://localhost:8080/index.htmlspring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下/static/public/resources/META-INF/resources如果要从后台跳转到静态index.html@Controllerpublic class HtmlController转载 2021-09-19 20:48:18 · 492 阅读 · 0 评论 -
SpringBoot框架:第一章:基础配置和介绍
什么是Spring Boot?Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用,简化新Spring应用的初始搭建以及开发过程,简化配置,用更简单的办法整合第三方其他技术。使用spring boot有什么好处其实就是简单、快速、方便!平时如果我们需要搭建一个spring web项目的时候需要怎么做呢?配置web.xml,加载spring和spring mvc配置数据库连接、配置spring事务配置加载配置文件的读取,开启注解配置日志文件…配置完成之后部署tomca转载 2021-09-19 20:11:36 · 125 阅读 · 0 评论 -
Spring MVC框架:第一章:SpringMVC概述及初步体会SpringMVC使用过程
第一节 SpringMVC在知识体系中的坐标在我们学习框架知识以前,JavaSE+JDBC+JavaWeb+SQL这样的技术组合已经可以实现任何业务逻辑了。为什么还要学习SSM这样的框架呢?很简单,MyBatis是对JDBC的封装,而SpringMVC是对JavaWeb的封装。其中JavaWeb和SpringMVC提供了表述层(或称表示层)的解决方案,而JDBC和MyBatis是持久化层的解决方案。那Spring到哪去了?Spring中的IOC容器为我们的整个项目管理组件,而我们配置的各种bean、切转载 2021-09-19 19:37:31 · 148 阅读 · 0 评论 -
Spring MVC框架:第二章:视图解析器和@RequestMapping注解使用在类级别及获取原生Servlet API对象
SpringMVC使用细节第一节 视图解析器通过HelloWorld程序我们看到了handler方法的返回值表示:请求处理完成后,请SpringMVC执行一个请求转发。转发的地址就是handler方法的返回值。假设我们在/WEB-INF/pages目录下有一组JSP页面,那么访问它们的路径都是以“/WEB-INF/pages/”开头,以“.jsp”结尾。基于这样一种情况,SpringMVC做了一种设计:它允许我们把转发路径中前面的固定部分和后面的固定部分以前缀、后缀的形式写到配置文件中,然后我们的h转载 2021-09-19 19:07:58 · 230 阅读 · 0 评论 -
Spring MVC框架:第三章:获取请求参数和页面跳转控制
获取请求参数1.什么是请求参数?删除 姓名: 年龄: 工资: 2.请求参数的四种情况①一名一值<a href=“emp/remove?empId=3”>删除在handler方法的参数上使用@RequestParam注解。@RequestMapping("/caseOne")public String caseOne(@RequestParam(“empId”) Integer empId) {System.out.println(“empId转载 2021-09-19 18:01:59 · 135 阅读 · 0 评论 -
Spring MVC框架:第四章:属性域使用(request域、session域、application域)
第六节 属性域使用(request域、session域、application域)1.request域在SpringMVC中,当我们想把一个对象存入请求域有很多种操作方式,用哪一个都可以。①使用Model对象@RequestMapping("/requestAttrModel")public String requestAttrModel(Model model) {model.addAttribute(“appleAttrName”, “appleAttrValue”);return “re转载 2021-09-19 17:31:26 · 304 阅读 · 0 评论 -
Spring MVC框架:第五章:静态资源访问与mvc:view-controller
静态资源访问1.提出静态资源问题Web项目的开发不可避免的要使用静态资源。在我们的项目中图片文件、音视频文件、CSS文件、JavaScript文件、HTML文件等等凡是浏览器直接可以使用且不需要Tomcat解析的资源都是静态资源。那么静态资源在SpringMVC中有什么问题呢?如果在web.xml中我们配置ulr-pattern为“/”,那么访问静态资源时会返回404。更多请见:http://www.mark-to-win.com/tutorial/51198.html...转载 2021-09-19 17:02:41 · 121 阅读 · 0 评论 -
Spring MVC框架:第六章:传统增删改查
传统CRUD列表页面:添加页面:编辑页面:更多请见:http://www.mark-to-win.com/tutorial/51197.html转载 2021-09-18 16:26:10 · 106 阅读 · 0 评论 -
Spring MVC框架:第七章:REST架构风格
第一节 REST简介1.概念Representational State Transfer——表现层(资源)状态转化。是目前最流行的一种互联网软件架构风格。它倡导结构清晰、符合标准、易于理解、扩展方便的Web架构体系,主张严格按照HTTP协议中定义的规范设计结构严谨的Web应用架构体系。由于REST所倡导的理念让Web应用更易于开发和维护,更加优雅简洁,所以正得到越来越多网站的采用。资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服转载 2021-09-18 10:33:27 · 146 阅读 · 0 评论 -
Spring MVC框架:第八章:表单form:form标签
第六章 表单标签SpringMVC也提供了一组类似JSTL的标签,供我们在页面上简化开发。下面是个例子:<form:form action="pageContext.request.contextPath/emp"method="post"modelAttribute="employee"><inputtype="hidden"name="method"value="put"/><form:hiddenpath="empId"/><tablealign="cen转载 2021-09-18 10:02:27 · 424 阅读 · 0 评论 -
Spring MVC框架:第九章:文件上传
第七章 文件上传1.表单2.jar包commons-fileupload-1.3.jar和commons-io-2.0.1.jar3.配置CommonsMultipartResolver注意:id必须是multipartResolver4.接收数据①普通数据:和以前一样正常接收 ②文件数据:使用@RequestParam注解注入到MultipartFile类型的入参中@RequestMapping("/upload")public String upload(@RequestParam(“转载 2021-09-18 15:59:50 · 111 阅读 · 0 评论 -
Spring MVC框架:第十章:拦截器
拦截器拦截器最典型的用法是检查用户是否登录,登录后可以执行目标handler方法,未登录则跳转到登录页面。这样的操作要是在每个拦截器内部来写就太麻烦了,统一提取到拦截器中是明智之举。1.HandlerInterceptor接口①preHandle()方法签名:boolean preHandle(HttpServletRequest, HttpServletResponse, Object) 在执行目标handler方法之前执行,如果返回true,则继续执行后续拦截器和目标handler方法;如果返回转载 2021-09-18 15:22:47 · 116 阅读 · 0 评论 -
Spring MVC框架:第十四章:数据校验
第十二章 数据校验在Web应用三层架构体系中,表述层负责接收浏览器提交的数据,业务逻辑层负责数据的处理。为了能够让业务逻辑层基于正确的数据进行处理,我们需要在表述层对数据进行检查,将错误的数据隔绝在业务逻辑层之外。1.校验概述JSR 303是Java为Bean数据合法性校验提供的标准框架,它已经包含在JavaEE 6.0标准中。JSR 303通过在Bean 属性上标注类似于@NotNull、@Max等标准的注解指定校验规则,并通过标准的验证接口对Bean进行验证。JSR 303只是一套标准,需要提转载 2021-09-18 11:46:34 · 121 阅读 · 0 评论 -
Spring MVC框架:第十一章:Ajax
AjaxAjax程序和服务器数据传输在进行Ajax操作时,SpringMVC会需要将JSON数据和Java实体类进行相互转换,为了实现这个效果需要额外加入jackson-all-1.9.11.jar1.从浏览器发送数据给handler方法1请求参数分散提交页面:<button id="btn1">实验1:发送零散数据</button> 1jQuery:<script type="text/javascript" src="${pageConte转载 2021-09-17 10:37:11 · 152 阅读 · 0 评论 -
Spring MVC框架:第十二章:运行原理
SpringMVC运行原理找到一篇写的不错的博客,大家可以看看第一节 几个重要组件1.HandlerMapping代表请求地址到handler之间的映射。2.HandlerExecutionChainhandler的执行链对象,由handler对象和所有handler拦截器组成。SpringMVC调用HandlerMapping接口中定义的getHandler()方法获取该对象。3.HandlerAdapter执行请求参数注入、类型转换、数据验证等具体操作。第二节 关键节点1.获取Ha转载 2021-09-18 11:31:23 · 96 阅读 · 0 评论 -
Spring MVC框架:第十三章:类型转换
SpringMVC将“把请求参数注入到POJO对象”这个操作称为“数据绑定”。数据类型的转换和格式化就发生在数据绑定的过程中。类型转换和格式化是密不可分的两个过程,很多带格式的数据必须明确指定格式之后才可以进行类型转换。最典型的就是日期类型。1.使用SpringMVC内置的类型转换器①配置MVC注解驱动<mvc:annotation-driven/>②在需要进行转换的字段上标记特定的注解@DateTimeFormat(pattern=“yyyy-MM-dd”)private转载 2021-09-18 10:59:57 · 130 阅读 · 0 评论 -
Spring MVC框架:第十五章:多IOC容器整合
多IOC容器整合SSM整合方式Spring、SpringMVC、MyBatisSpringMVC的核心Servlet会启动一个IOC容器,而ContextLoaderListener也会启动一个IOC容器。web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.co转载 2021-09-18 09:34:47 · 216 阅读 · 0 评论 -
Spring MVC框架:第十六章:细节了解
了解内容1.SpringMVC配置文件可以放在WEB-INF下①命名规范:[servlet-name]-servlet.xml②位置:/WEB-INF目录下③示例:/WEB-INF/springDispatcherServlet-servlet.xml④使用默认配置文件可以省略init-param <!-- The front controller of this Spring Web application, responsible for handling all applicati转载 2021-09-18 09:09:34 · 117 阅读 · 0 评论 -
Spring MVC框架:第十七章:异常映射
异常映射异常机制是Java程序中针对有可能发生的问题所提前作出的应急解决方案。在SpringMVC中可以通过异常映射的方式,将异常类型和某个视图名称对应起来,让用户不是看到异常信息,而是一个比较友好的界面。局限性:同步请求需要一个新的页面时这样操作是没问题的,但是对于需要数据片段的异步请求来说,就会导致Ajax请求收到的响应无法解析。解决方案:在spring-mvc.xml<!-- 配置异常映射机制 --><!-- 为了能够兼容异步请求的异常信息响应格式,所以使用自定义Crow转载 2021-09-17 12:46:45 · 204 阅读 · 0 评论 -
Spring框架:第九章:Spring整合Web
Spring整合Web在web工程中添加Spring的jar包。Spring的核心包spring-beans-4.0.0.RELEASE.jarspring-context-4.0.0.RELEASE.jarspring-core-4.0.0.RELEASE.jarspring-expression-4.0.0.RELEASE.jaraop包spring-aop-4.0.0.RELEASE.jarspring-aspects-4.0.0.RELEASE.jarcom.springsour转载 2021-09-17 12:19:14 · 269 阅读 · 0 评论 -
Spring框架:第六章:注解功能
8.1、注解配置Dao、Service、Controller组件实验32:通过注解分别创建Dao、Service、Controller★Spring配置bean的常用注解有@Controller 配置web层的组件@Service 配置Service层的组件@Repository 配置Dao层的组件@Component 除了web层、service层、dao层之外的组件。@Scope 配置作用域bean对象/** * @Component 等价于<br/> * <转载 2022-09-21 19:37:55 · 488 阅读 · 0 评论 -
Spring框架:第五章:Spring EL表达式
SpEL简介Spring Expression Language,Spring表达式语言,简称SpEL。支持运行时查询并可以操作对象图。和JSP页面上的EL表达式、Struts2中用到的OGNL表达式一样,SpEL根据JavaBean风格的getXxx()、setXxx()方法定义的属性访问对象图,完全符合我们熟悉的操作习惯。基本语法SpEL使用#{…}作为定界符,所有在大框号中的字符都将被认为是SpEL表达式。使用字面量●整数:●小数:●科学计数法:●String类型的字面量可以使用单引转载 2021-09-17 11:40:46 · 509 阅读 · 0 评论 -
Spring框架:第四章:Spring管理数据库连接池
6.1、Spring配置管理数据库连接池对象(重点)导入jar包druid-1.1.9.jarmysql-connector-java-5.1.37-bin.jar配置信息:<!-- 配置数据库连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <!-- 用户名 --> <property name="username" valu转载 2021-09-17 11:13:19 · 307 阅读 · 0 评论 -
Spring框架:第三章:对象的生命周期及单例bean生命周期的11个步骤
IOC之Bean的生命周期实验22:创建带有生命周期方法的beanpublic class Person {private Integer id;private String name;public void init() { System.out.println("这是person对象的初始化方法");}public void destroy() { System.out.println("这是person对象的销毁方法");}配置信息: 测试代码:转载 2021-09-17 09:57:38 · 115 阅读 · 0 评论