- 博客(68)
- 收藏
- 关注
原创 基于SpringBoot的SSMP整合案例(在Linux中发布项目的注意事项与具体步骤步骤)
linux中发布项目过程中各种问题总结,以及大致步骤
2023-11-17 18:10:55 461
原创 基于SpringBoot的SSMP整合案例(开启日志与分页查询条件查询功能实现)
Mybatis-Plus中的分页查询,与QueryWrapper和LambdaQueryWrapper的基础知识与基本使用
2023-11-11 14:43:26 737
原创 SpringBoot配置文件yml文件基础知识
数组表示方式:在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔。
2023-10-31 16:35:47 199
原创 Rest风格基本语法与实战
例如,当客户端发送GET请求到/books/1时,Spring MVC将提取URL中的1作为id参数的值,并将其传递给getById方法。在方法内部,我们可以使用id来执行相应的逻辑操作,比如根据用户ID查询用户信息。然后,我们在方法参数上使用@PathVariable注解,将id参数与URL路径中的实际值进行绑定。在getUserById方法上,我们使用@GetMapping(“/{id}”)将方法与URL路径/books/{id}进行映射。controller类。
2023-10-30 21:26:41 271
原创 SpringMVC拦截器
第三行正常显示"session中的数据",因为afterCompletion()是在中央调度器渲染(数据填充)了响应页面之后执行的,因此上面代码中afterCompletion()的removeAttribute()还没有生效,控制台第一次正常显示"attr"中的内容,第二次为null;由于该方法是在处理器方法执行完后执行,且该方法参数中包含 ModelAndView,所以该方法可以修。方法栈中有方法,即执行链中只要有 preHandle()方法返回 true,就会执行方法栈中的。
2023-09-17 18:14:12 105
原创 SpringMVC异常处理
ControllerAdvice 是使用@Component 注解修饰的,可以< context:component-scan>扫描到@ControllerAdvice 所在的类路径(包名),创建对象。
2023-09-17 13:01:46 302
原创 SpringMVC中的请求重定向和转发
重点:重定向对于用户来说发送了两次请求,因此重定向之前第一次存的参数,在第二次请求的时候无法直接获取。在处理器方法返回的视图字符串的前面添加 redirect:,则可实现重定向跳转。如果想访问/WEB-INF/view下的other.jsp可以吗。访问位于/WEB-INF/view/下的other.jsp文件。重申结论:redirect无法访问/WEB-INF/下的文件。需要利用jsp的param,具体如下。如果对您有用,给个赞呗。
2023-09-16 16:17:14 545
原创 SpringMVC框架@RequestMapping用法,处理器方法参数接收,处理器方法返回值详解
对于@RequestMapping,其有一个属性 method,用于对被注解方法所处理请求的提交方式进行限制,即只有满足该 method 属性指定的提交方式的请求,才会执行该被注解方法。Method 属性的取值为 RequestMethod 枚举常量。常用的为 RequestMethod.GET 与RequestMethod.POST,分别表示提交方式的匹配规则为 GET 与 POST 提交。返回自定义类型对象时,不能以对象的形式直接返回给客户端浏览器,而是将对象转换。
2023-09-04 20:30:53 948
原创 SpringMVC概述与简单使用
html > < head > < title > 展示页面 < body > MyController 设置的内容是:${msg} < html > < head > < title > 展示页面 < body > MyController 设置的内容是:${msg}
2023-09-01 00:01:06 420
原创 Spring IoC注解式开发
一定要注意:如果你用Spring6,要知道Spring6不再支持JavaEE,它支持的是JakartaEE9。(Oracle把JavaEE贡献给Apache了,Apache把JavaEE的名字改成JakartaEE了,大家之前所接触的所有的 javax.* 包名统一修改为 jakarta.*包名了。问题,Autowired默认是根据类型自动装配的,如果一个接口有多个实现类,当我们装配接口的时候就会出问题,如何解决?spring6+ 使用如下依赖。spring5-使用如下依赖。
2023-08-07 16:14:26 445 1
原创 Spring整合MyBatis小实例(转账功能)
实现步骤一,引入依赖<!--仓库--> <repositories> <!--spring里程碑版本的仓库--> <repository> <id>repository.spring.milestone</id> <name>Spring Milestone Repository</name> &l
2023-08-06 23:02:06 318
原创 Spring对事务的支持
Spring对事务的管理底层实现方式是基于AOP实现的。采用AOP的方式进行了封装。所以Spring专门针对事务开发了一套API,API的核心接口是PlatformTransactionManager:spring事务管理器的核心接口。在Spring6中它有两个实现:● DataSourceTransactionManager:支持JdbcTemplate、MyBatis、Hibernate等事务管理。● JtaTransactionManager:支持分布式事务管理。
2023-07-31 21:41:33 387
原创 面向切面编程AOP
一般一个系统当中都会有一些系统服务,例如:日志、事务管理、安全等。这些系统服务被称为:交叉业务这些交叉业务几乎是通用的,不管你是做银行账户转账,还是删除用户数据。日志、事务管理、安全,这些都是需要做的。如果在每一个业务处理过程当中,都掺杂这些交叉业务代码进去的话,存在两方面问题:● 第一:交叉业务代码在多个业务流程中反复出现,显然这个交叉业务代码没有得到复用。并且修改这些交叉业务代码的话,需要修改多处。
2023-07-29 21:50:14 245
原创 GOF 代理模式
(1):在程序中,对象A和对象B无法直接交互时。(2):在程序中,功能需要增强时。(3):在程序中,目标需要被保护时代理模式中有一个非常重要的特点:对于客户端程序来说,使用代理对象时就像在使用目标对象一样。
2023-07-20 14:51:09 122
原创 MyBatis逆向工程的配置与生成
所谓的逆向⼯程是:根据数据库表逆向⽣成Java的pojo类,SqlMapper.xml⽂件,以及Mapper接⼝类等。要完成这个⼯作,需要借助别⼈写好的逆向⼯程插件。
2023-07-01 16:55:51 627
原创 MyBatis动态SQL,基本语法加实战,一篇搞懂
问题:有的时候我们需要实现批量删除:delete from t_car where id in(1,2,3,4,5,6,…这⾥的值是动态的,根据⽤户选择的id不同,值是不同的);多条件查询:有时我们需要根据多个不同地条件来进行查询,比如:select * from t_car where brand like ‘丰⽥%’ and guide_price > 30 and …;以上情况地sql语句都是动态的,因此需要我们来进行SQL语句的动态拼接。
2023-05-23 13:13:38 1778
原创 Mybatis查询语句汇总与小技巧
在之前的学习中,使用到了将查询结果封装到bean对象内,使用到了将查询结果封装的bean对象封装到List集合中,但是如果我们没有对应的bean对象,我们应该将结果封装到哪呢?今天这篇文章就记录一下几种常见查询结果的封装。
2023-05-22 11:06:33 567
原创 MyBatis动态推理参数类型
思考一个问题,前面的#{}和${}的区别中,我们知道了#{},MyBatis底层调用的是preparestatement这种预编译的方式,这种方式sql语句会预先编程 select * from t_user where id =?这种形式,随后调用setInt(),setString(),…等方法为?赋值,但是myBatis是怎样知道参数是什么类型呢?这个就是MyBatis的动态推理了。具体是怎样推理的我们不再讨论,接下来我们讨论有哪些数据类型,MyBatis可以动态推理出来。
2023-05-20 14:29:23 1138
原创 mybatis-config.xml文件中的mappers标签
在MyBatis中,< mapper >标签非常重要,因为它对应着我们存放sql语句的xml文件,在之前的使用中我们都是使用resource来指定路径,但其实除了resource可以指定路径的还有url和class但路径形式有所不同,下面来讨论一下有什么不同。
2023-05-18 10:42:40 1367
原创 MyBatis中的别名机制
在我们使用MyBatis中的select语句时,需要指定resultType的值,即查询对象的类型,该值是对象的完整类名,看起来非常的繁琐,因此MyBatis中有了。
2023-05-17 17:58:30 1051
原创 MyBatis中#{}与${}的区别,与各自的应用场景
{}: 底层使用PreparedStatement。特点:先进行SQL语句的编译,然后给SQL语句的占位符问号?传值。可以避免SQL注入的风险。${}:底层使用Statement。特点:先进行SQL语句的拼接,然后再对SQL语句进行编译。存在SQL注入的风险。优先使用#{},这是原则。避免SQL注入的风险。
2023-05-15 20:05:30 448
转载 Vue:computed,methods,watch的区别
计算属性可以依赖多个vue实例的数据,只要其中一个任何一个数据发生变化,计算属性就会重新执行,视图也会更新。2.watch 和 computed 都是以 Vue 的依赖追踪机制为基础的,当某一个数据发生变化的时候,所有依赖这个数据的“相关”数据“自动”发生变化,也就是自动调用相关的函数去实现数据的变动。2.computed 是计算属性,在使用上和 data 对象里的数据属性是同一类的,底层借助了。watch: 类似于监听机制+事件机制,当被监视的属性变化时,回调函数自动调用,进行相关操作。
2023-05-07 13:20:53 471
原创 Vue修饰符 之 .number .trim,Vue使用toFixed保留两位小数
可以对小数进行指定位数保留,其中x是要保留的位数。标签输入框中虽然我们输入的是数字,但它却是。这个标签将其转化为number类型。可以将输入字符串的前后空格去除。类型,在Vue中我们可以使用。
2023-05-05 17:35:42 738
原创 vue实例对象及其元素释意以及vue3指令
类似于创建一个对象,里面包含钩子函数,data,methods.components等vue实例的对象data 主要是用来存放数据的 Vue框架会检测data的数据变化,自动更新到html上。
2023-05-04 22:17:12 994
原创 完结:sqlSession selectOne()方法的实现与测试
从拼接方法名可以看出我们的查询语句中字段名要起别名,并且别名要和对象属性名一致,否者接下来set方法名拼接会出错,会找不到对应set方法,在给对象赋值时会找不到,从而查询结果中对象属性会为空。接着运用从MappedStatement获取的resultType利用反射,获取对象,但这个对象属性为空,接着就是传值。总体思路:首先根据sqlid获取保存SQL语句与查询结果类型的对象,接着将原始sql语句进行替换,使#{}变为?接着给问号传值,编译sql语句得到预编译对象,执行sql语句,获取结果集。
2023-05-03 15:07:20 863
原创 jQuery 部分方法释意与使用
如果给定一个表示 DOM 元素集合的 jQuery 对象,.find() 方法允许我们在 DOM 树中搜索这些元素的后代,并用匹配元素来构造一个新的 jQuery 对象。.find() 方法第一个明显特征是,其接受的选择器表达式与我们向 $() 函数传递的表达式的类型相同。find() 方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。经常与其他元素/选择器一起使用,来选择指定的组中包含指定文本的元素(如上面的例子)。当该方法用于返回属性值时,则返回第一个匹配元素的值。
2023-05-03 13:50:06 76
原创 实现SqlSessionFactory的openSession()方法,并实现SqlSession的insert()方法
前面实现了SqlSessionFactory对象的构建,接下来就是实现我们最常用的openSession()方法。将该代码添加到insert方法内,接下来要做的便是根据获取的属性名,拼接对象中的get方法,然后利用反射,获取对应的属性值,然后调用就可以给对象属性赋值了。接下来需要在insert方法中实现给?下面测试该方法,准备数据表如下(字段均为varchar类型)2.我们不知道将pojo中的哪个属性赋给哪个问号。通过一步步完善,就获得了第几个问号对应的参数名。SqlSession中的初步代码如下。
2023-04-28 15:26:13 1688
原创 封装sqlSessionFactory对象最后一步,解析xxxMapper.xml文件,并且测试创建对象
因为在mybatis-config.xml文件中< mappers >标签中可能有多个< mapper >标签,即多xxxMapper.xml文件,所以我们需要将它们一一解析,这里我们可以准备一个list集合,用来存这些文件的resource路径,然后再一一根据路径解析文件。为了代码的简洁,最后一行是将该集合传给了一个方法,在该方法中进行文件的解析,最后直接返回符合要求的结果集。到这里sqlSessionFactory对象创建的参数就已经准备完毕了,接下来就是测试功能。
2023-04-23 15:16:37 160
原创 存储过程,函数,触发器实现商品信息维护
在insert(新增) (1)在spxxb中新增一条记录时,spkcb(商品库存表)需要对应新增一条记录(触发器)(2)需要实现spxxb名称缩写那一列,不需要我们输入,根据名称自动生成(触发器)写一个触发器,当商品信息表插入记录时触发,自动维护(自动根据名称生成名称缩写)名称缩写。call SpxxWh(1,1,‘哇哈哈牛奶’,‘100’,‘瓶’,1,3.88);-准备三张表 spxxb(商品信息表)kcb(库存表) hzpyb(汉字拼音表)写一个触发器当商品明细表删除记录时,商品库存表删除相应记录。
2023-04-22 13:14:16 122
原创 解析mybatis-config.xml文件创建数据源对象与事务管理器对象
上面代码中的 getDataSource(dataSourceElt) 和 getTransaction(transactionElt,dataSource)分离出来了,使代码看起来更简洁。
2023-04-21 21:05:11 102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人