自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 MyBatis - (10) 面向接口的CRUD操作

使用MyBatis的这种代理机制的前提,SqlMapper.xml文件中namespace必须是dao接口的全限定名称,id必须是dao接口中的方法。MyBatis当中实际上采用了代理模式,在内存中生成到接口的代理类,然后创建代理类的实例。第二步:在BookMapper.xml中进行配置。第二步:在BookMapper.xml中进行配置。第二步:在BookMapper.xml中进行配置。第二步:在BookMapper.xml中进行配置。第二步:在BookMapper.xml中进行配置。

2023-04-08 09:23:58 236 1

原创 MyBatis - (09) 在WEB中应用MyBatis

你可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFactory 实例,但最好还是不要一直保留着它,以保证所有的 XML 解析资源可以被释放给更重要的事情。我们不难发现,这个dao实现类中的方法代码很固定,基本上就是一行代码,通过SqlSession对象调用insert、delete、update、select等方法,这个类中的方法没有任何业务逻辑,既然是这样,在pom.xml引进依赖:mybatis,mysql驱动,junit,logback,servlet。

2023-04-08 09:20:06 253

原创 MyBatis - (08) 核心配置文件详解

我们自己也可以编写数据源组件,只要实现了javax.sql.DataSource接口就行了,实现接口当中的所有方法,这样就有自己的数据源了。id:给当前环境一个唯一标识,该标识用在environments的default后面,用来指定默认环境的选择。当在创建SqlSessionFactory对象是没有指定环境,默认使用的环境就是default属性指定的环境。default属性:表示默认使用的是哪个环境,default后面填写的是environment的id。如果没有管理事务的容器,则没有事务。

2023-04-08 09:07:33 235

原创 MyBatis - (07) CRUD操作

什么是CRUD?对数据库中数据表中记录进行增删改查的操作C:Create 增R:Retrive 查(检索)U:Update 改D:Delete 删。

2023-04-08 09:00:37 91

原创 MyBatis - (06) MyBatis工具类封装

将通用的代码封装到一个类中,通过调用该类的方法完成需要的操作工具类的构造方法一般都是私有化的工具类中所有的方法都是静态的,直接采用类名即可调用,不需要new对象为了防止new对象,构造方法私有化。

2023-04-08 08:45:55 259

原创 MyBatis - (05) 集成日志框架logback

引入日志框架的目的是为了看清楚mybatis执行的具体sql。SLF4J:是一个日志标准,其中有一个框架叫做logbackLOG4JLOG4J2其中STDOUT_LOGGING是标准日志,Mybatis已经实现了这种标准日志,mybatis框架本身已经实现了这种标准。启用标准日志组件,只需要在mybatis-config.xml文件中添加以下配置:

2023-03-29 23:02:54 1297

原创 MyBatis - (03) 配置文件名和路径分析

采用这种方式也可以,但是这种方式的可移植性太差,程序不够健壮,可能会移植到其他的操作系统当中,导致以上路径无效,还需要修改Java代码中的路径,这样违背OCP原则。优点是采用这种方式,从类路径当中加载资源,项目的移植性很强,比如项目从Windows移植到Linux,代码不需要修改,因为这个资源一直在根路径中。这种方式只能从类路径当中获取资源,也就是说mybatis-config.xml文件需要在类路径下。文件名是出现在程序中的,文件名如果修改了,对应这里的java程序也改一下就行了。

2023-03-29 23:01:10 195

原创 MyBatis - (04) 事务管理机制

的话,默认的autoCommit是true,没有开启事务。但目前使用的是本地程序,没有容器的支持,当mybatis找不到容器的支持时:没有事务。在JDBC事务中,没有执行conn.setAutoCommit(false);如果autoComit是true,就表示没有开启事务,只要执行任意一条DML语句就提交一次。MyBatis框架自己不再管理事务,而是交给第三方容器去管理事务,例如:Spring。MyBatis框架自己管理事务,采用原生的JDBC代码去管理事务。注意:type的值只有这两个,不区分大小写。

2023-03-29 23:00:52 114

原创 MyBatis - (02) 入门程序

要获取SqlSessionFactory对象,需要先获取获取SqlSessionFactoryBuilder对象,通过SqlSessionFactoryBuilder对象的build方法,来获取SqlSessionFactory对象。要获取SqlSession对象,需要先获取SqlSessionFactory对象,通过SqlSessionFactory工厂来生产SqlSession对象.注意:默认采用的事务管理器是:JDBC。使用MyBatis类库,编写MyBatis程序,连接数据库,做增删查改就S行了。

2023-03-29 22:57:29 82

原创 MyBatis - (01) 概述

在文献中看到的framework被翻译为框架框架其实就是对通用代码的封装,提前写好了一堆接口和类,我们可以在做项目的时候直接引入这些接口和类(引入框架),基于这些现有的接口和类进行开发,可以大大提高开发效率。框架一般都以jar包的形式存在。(jar包中有class文件以及各种配置文件等。SSM三大框架:Spring + SpringMVC + MyBatisSpringBoot。

2023-03-29 22:53:56 49

原创 SpringMVC - (11) 文件下载功能实现

使用ResponseEntity实现下载文件的功能,ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文。浏览器访问http://localhost:8080/springMVC/file_down。文件下载:将服务器的资源下载到本地。在控制器中配置请求映射。可以将文件下载到本地。

2023-03-28 23:14:47 178

原创 SpringMVC - (10) 文件上传功能实现

浏览器访问http://localhost:8080/springMVC/file_up,点击选择文件按钮,选择想要上传的文件。注意:必须设置id,而且id的值必须为multipartResolver,否则SpringMVC找不到这个bean。到服务器/static/imgs目录查到是否上传成功。SpringMVC中将上传的文件封装到。对象中,通过此对象可以获取文件相关信息。文件上传:将本地资源上传到服务器。在pom.xml添加文件上传依赖。点击上传按钮,提交请求。2.编写上传页面代码。

2023-03-28 23:11:00 78

原创 SpringMVC - (09) 报文信息转换器

HttpMessageConverter,报文信息转换器将请求报文转换为Java对象将Java对象转换为响应报文HttpMessageConverter提供了两个注解和两个类型:@RequestBody,@ResponseBody,RequestEntity,ResponseEntity@RequestBody 将报文中的请求体转换为Java对象@ResponseBody 将Java对象转换为响应报文的响应体RequestEntity 将整个请求报文转换为Java对象。

2023-03-28 23:10:41 309

原创 SpringMVC - (08) RESTful案例

REST:Representational State Transfer,表现层资源状态转移。资源:资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且客户端应用开发者能够理解。与面向对象设计类似,资源是以名词为核心来组织的,首先关注的是名词。一个资源可以由一个或多个URI来标识。URI既是资源的名

2023-03-28 15:39:15 69

原创 SpringMVC - (07) SpringMVC配置JSP视图解析器

可通过init-param标签设置SpringMVC配置文件的位置和名称,通过load-on-startup标签设置SpringMVC前端控制器DispatcherServlet的初始化时间。因为前端浏览器发送的请求同一交给前端控制器DispatcherServlet处理,而前端控制器是一个servlet,想通过servlet处理请求,我们就必须在web,xml中进行注册。由于前端控制器对浏览器发送的请求进行了统一的处理,但是具体的请求有不同的处理过程,因此需要创建处理具体请求的类,即请求控制器。

2023-03-28 15:33:55 773

原创 SpringMVC - (06) SpringMVC的视图

当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"forward:"去掉,剩余部分作为最终路径通过转发的方式实现跳转。当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析器解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转。SpringMVC中的视图是View接口,视图的作用。

2023-03-28 15:24:50 53

原创 Spring6 - (18) Spring6集成MyBatis3.5

SqlSessionFactoryBean配置(注入数据源、注入mybatis核心配置文件路径、指定别名包)如果接口叫做UserMapper,配置文件必须是UserMapper.xml。放在类的根路径下,只开启日志,其他配置到spring.xml中。引入外部的属性文件(jdbc.properties配置文件)第七步:编写service接口和service接口实现类。第三步:基于三层架构实现,所以提前创建好所有的包。第十一步:编写测试程序,并添加事务,进行测试。第十步:编写spring.xml配置文件。

2023-03-27 14:11:16 229

原创 Spring6 - (17) Spring6整合Junit5

第一步:引入JUnit5的依赖,Spring对JUnit支持的依赖还是:spring-test。第三步:配置spring.xml。第三步:配置spring.xml。第一步:准备工作:引入相关依赖。第二步:定义一个bean。第二步:定义一个bean。第四步:编写测试程序。第五步:运行测试程序。第四步:编写测试程序。第五步:运行测试程序。

2023-03-27 14:06:05 293

原创 Spring6 - (16) Spring 对事务的支持

什么是事务:事务:Transaction(tx)在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全。多条DML要么同时成功,要么同时失败,这叫做事务。事务的四个处理过程:第一步:开启事务 (start transaction)第二步:执行核心业务代码第三步:提交事务(如果核心业务处理过程中没有出现异常)(commit transaction)

2023-03-27 13:59:03 214

原创 Spring6 - (15) 面向切面编程AOP

日志事务管理安全等。交叉业务这些交叉业务几乎是通用的,不管你是做银行账户转账,还是删除用户数据。日志、事务管理、安全,这些都是需要做的。第一:交叉业务代码在多个业务流程中反复出现,显然这个交叉业务代码没有得到复用。并且修改这些交叉业务代码的话,需要修改多处。第二:程序员无法专注核心业务代码的编写,在编写核心业务代码的同时还需要处理这些交叉业务。使用AOP可以很轻松的解决以上问题。

2023-03-27 13:44:29 181

原创 Spring6 - (14) GoF之代理模式

大家思考一下:如果系统中业务接口很多,一个接口对应一个代理类,显然也是不合理的,会导致类爆炸。代理类不需要我们写了。我们将来肯定是要调用“目标方法”的,但要调用目标方法的话,需要“目标对象”的存在,“目标对象”从哪儿来呢?注意:当你调用代理对象的代理方法的时候,注册在InvocationHandler接口中的invoke()方法会被调用,注册在InvocationHandler接口中的invoke()方法都会被调用。以上就是代理模式中的静态代理,其中OrderService接口是代理类和目标类的共同接口。

2023-03-27 13:31:05 204

原创 Spring6 - (13) JdbcTemplate的使用

JdbcTemplate是操作数据库的类,连接数据库需要Connection对象,而生成Connection对象是数据源负责的。JdbcTemplate是Spring提供好的类,这类的完整类名是:org.springframework.jdbc.core.JdbcTemplate。new对象就可以了。数据源的作用是获取connection,只要是实现了javax.sql.DataSource接口的都是数据源,C3P0、druid都是数据源。第二步:将德鲁伊中的数据源配置到spring配置文件中。

2023-03-27 03:38:59 108

原创 Spring6 - (12) Spring IoC注解

以上是自定义了一个注解:Component该注解上面修饰的注解包括:Target注解和Retention注解,这两个注解被称为元注解。Target注解用来设置Component注解可以出现的位置,以上代表表示Component注解只能用在类和接口上。Retention注解用来设置Component注解的保持性策略,以上代表Component注解可以被反射机制读取。是Component注解中的一个属性。该属性类型String,属性名是value。

2023-03-27 03:31:09 131

原创 Spring6 - (11) 反射机制

Java反射机制(Java Reflection)是Java语言中一种动态(运行时)访问、检测、修改它本身的能力,主要作用是动态(运行时)获取类的完整结构信息和调用对象的方法。获取该对象的成员变量或者赋值调用该对象的方法(含构造方法,有参/无参)判断该对象所属的类一般情况下,我们使用某个类,都会知道这个类,以及要用它来做什么,可以直接通过new实例化创建对象,然后使用这个对象对类进行操作,这个就属于正射。

2023-03-27 03:22:57 330

原创 Spring6 - (10) Bean 的循环依赖问题

什么是循环依赖?A对象中有B属性。B对象中有A属性,我依赖你,你也依赖我。比如:丈夫类Husband,妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。

2023-03-27 03:09:39 124

原创 SpringMVC - (05) 域对象共享数据

域对象的作用:保存数据,获取数据,共享数据.对象名称对象的类型requestsession。

2023-03-27 01:52:55 235

原创 SpringMVC - (04) SpringMVC获取请求参数

在控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参。若请求所传输的请求参数中有多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数。若请求所传输的请求参数中有多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数。若使用字符串类型的形参,此参数的值为每个数据中间使用逗号拼接的结果。

2023-03-26 22:27:32 697 1

原创 Spring6 - (09) Bean 的生命周期

Spring其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的销毁等。所谓的生命周期就是:对象从创建开始到最终销毁的整个过程。对应Bean的生命周期,我们需要掌握以下几点:- 什么时候创建Bean对象?- 创建Bean对象的前后会调用什么方法?- Bean对象什么时候销毁?- Bean对象的销毁前后调用什么方法?

2023-03-26 19:42:39 156

原创 Spring6 - (08) Bean 的实例化方法

java.util.Date在Spring中被当做简单类型,简单类型在注入的时候可以直接使用value属性或value标签来完成。但我们之前已经测试过了,对于Date类型来说,采用value属性或value标签赋值的时候,对日期字符串的格式要求非常严格,必须是这种格式的:Mon Oct 10 14:30:26 CST 2022。其他格式是不会被识别的。如以下代码:第一步:创建DateBean类} }第二步:配置beans.xml

2023-03-26 19:37:40 416

原创 Spring6 - (07) GoF之工厂模式

工厂模式是解决对象创建问题的,所以工厂模式属于创建型设计模式。策略模式、模板方法模式、责任链模式、观察者模式、迭代子模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式。不过除了GoF23种设计模式之外,还有其它的设计模式,比如:JavaEE的设计模式(DAO模式、MVC模式等)。代理模式、装饰模式、适配器模式、组合模式、享元模式、外观模式、桥接模式。单例模式、单例模式、抽象工厂模式、抽象工厂模式、原型模式。工厂方法模式可以解决简单工厂模式中的OCP问题。简单工厂模式是工厂方法模式的一种。

2023-03-26 19:26:34 63

原创 SpringMVC - (03) @RequestMapping注解

访问:http://localhost:8080/springMVC/user/info和http://localhost:8080/springMVC/user/userInfo都可以访问。是不能的,程序会报错。此时请求映射所映射的请求的请求路径为:http://localhost:8080/springMVC/student/info。此时请求映射所映射的请求的请求路径为:http://localhost:8080/springMVC/user/info。

2023-03-26 19:12:41 307

原创 SpringMVC - (02) SpringMVC入门程序

浏览器发送请求,若请求地址符合前端控制器的url-pattern,该请求就会被前端控制器DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件,通过扫描组件找到控制器,将请求地址和控制器中@RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应页面。

2023-03-25 20:58:43 305

原创 SpringMVC - (01) SpringMVC概述

MVC是一种软件架构的思想,将软件按照模型视图控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据一类称为实体类Bean:专门存储业务数据的,如 Student、User 等一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。

2023-03-25 18:19:14 232

原创 Spring6 - (06) Bean 的作用域

这样Spring会在每一次执行getBean()方法的时候创建Bean对象,调用几次则创建几次。那你可能会问:scope如果没有配置,它的默认值是什么呢?默认值是singleton,单例的。这个对象在什么时候创建的呢?可以为SpringBean提供一个无参数构造方法,测试一下。可以看到这一次在初始化Spring上下文的时候,并没有创建Bean对象。默认情况下,Spring的IoC容器创建的Bean对象是单例的。第一步:创建SpringBean类。第一步:创建SpringBean类。修改beans.xml。

2023-03-25 16:38:36 220

原创 Spring6 - (05) Srping 对IoC的实现

1.控制反转是一种思想。2.控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP原则,达到DIP原则。3.控制反转,反转的是什么?将对象的创建权利交出去,交给第三方容器负责。将对象和对象之间关系的维护权交出去,交给第三方容器负责。4.控制反转这种思想如何实现呢?依赖注入是控制反转的思想的实现。Spring通过依赖注入的方式来完成Bean管理的。Bean管理说的是:Bean对象的创建,以及Bean对象中属性的赋值(或者叫做Bean对象之间关系的维护)。依赖注入:依赖注入常见的实现方式包括两种:set注入,

2023-03-25 16:36:57 271

原创 Spring6 - (04) Srping 启用日志框架

在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关信息,能够帮助我们了解并监控系统状态,在发生错误或者接近某种危险状态时能够及时提醒我们处理,同时在系统产生问题时,能够帮助我们快速的定位、诊断并解决问题。是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。Log4j2主要由几个重要的组件构成:(1)日志信息的优先级。

2023-03-25 16:15:24 295

原创 Spring6 - (03) Spring 入门程序

创建一个Bean类 User/*** bean 封装用户信息。

2023-03-25 16:12:36 193

原创 Spring6 - (02) Spring 概述

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring最初的出现是为了解决EJB臃肿的设计,以及难以测试等问题。Spring为简化开发而生,让程序员只需关注核心业务的实现,尽可能的不再关注非业务逻辑代码(事务控制,安全日志等)。

2023-03-25 16:01:08 239

原创 Spring6 -(01)案例引出 Spring 概念

Spring框架是什么?​ Spring框架就是一个实现了IoC思想的框架,IoC思想就是控制反转思想。控制反转是什么?用来解决什么问题?​ 将对象的创建权交出去,将对象和对象之间关系的管理权交出去,由第三方容器来负责创建与维护​ 解决代码之间的耦合度问题,可以降低代码之间的耦合度,让代码符合OCP开闭原则和依赖倒置原则。反转是是什么?​ 反转的是两件事,将对象的创建权/管理权交出去了,把对象关系的管理权交出去了。怎么实现控制反转?​ 依赖注入依赖注入是什么?

2023-03-25 15:53:37 159

原创 JDBC - (06) BaseDao工具类封装

基本上每一个数据表都应该有一个对应的DAO接口及其实现方法,发现对所有表的操作(增删改查)代码重复度很高,所以可以提取公共代码,给这些DAO的实现类可以抽取一个公共的实现类,我们称为BaseDao。查询用户id为2的用户信息。

2023-03-23 16:32:29 149

空空如也

空空如也

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

TA关注的人

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