自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 统一拦截加入了 AutoFill 注解的方法,通过反射为公共字段赋值

这段代码实现了一个基于Spring AOP的公共字段自动填充切面,主要用于解决数据库表公共字段(如创建时间、更新时间等)的重复赋值问题‌。//@Before注解指定拦截有@AutoFill注解的方法‌。//根据当前不同的操作类型,为对应的属性通过反射赋值。//获取到当前被拦截的方法上的数据库操作类型。//获取到当前被拦截方法的参数--实体对象。//通过反射机制获取指定类中的某个方法。//通过反射为对象属性赋值。//通过反射为对象属性赋值。//获取方法上的注解对象。//为4个公共字段赋值。

2025-07-16 23:42:39 613

原创 Controller接收参数

注意:接收前端JSON格式的请求参数,通常通过实体对象接收,保证Json格式的键名与对象属性名保持一致,并添加@RequestBody注解。接收json格式的请求参数:POST /depts {"name":"教研部"}* @RequestBody 将前端JSON格式数据直接封装到实体对象中。* @param dept 部门实体类对象。

2025-06-25 15:05:16 278

原创 Controller接收参数 (接收请求参数:DELETE /depts?id=8)

如果参数可选,可以将属性设置为false 如delete(@RequestParam(value = "id",required = false) Integer deptId)* 方式三:如果请求参数名与形参变量名相同(即前端传递的请求参数名与服务端方法形参名一致),直接定义方法形参即可接收(省略@RequestParam注解) (推荐)* 注意事项:一旦声明了@RequestParam("id"),该参数(默认required属性 为true)在请求时必须传递,如果不传递将会报错400。

2025-06-25 14:54:18 305

原创 MyBatis的mapper层的数据封装

方式三:开启驼峰命名:如果字段名与属性名符合驼峰命名规则,mybatis会自动通过驼峰命名规则映射。方式二:SQL语句中取别名 在SQL语句中,对不一样的列名起别名,别名和实体类属性名一样。方式一:手动映射 //通过 @Results及@Result 进行手动结果映射。1、实体类属性名 和 数据库表查询返回的字段名一致,mybatis会自动封装。2、如果实体类属性名 和 数据库表查询返回的字段名不一致,不能自动封装。(在application.properties中配置)* 查询部门所有信息。

2025-06-25 14:42:19 174

原创 分层解耦、IOC和DI(控制反转和依赖注入)详解

容器为应用程序提供运行时,所依赖的资源,称之为依赖注入。:IOC容器中创建、管理的对象,称之为Bean。声明bean的注解要想生效,需要被扫描到,启动类默认扫描当前包及其子包。注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报出如下错误。2、应用程序运行时需要什么对象,直接依赖容器为其提供(DI,依赖注入)1、将Dao 及 Service层的实现类,交给IOC容器管理。前面声明bean的四大注解,要想生效,还需要被组件扫描注解。1、将项目中的类交给IOC容器管理(IOC,控制反转)

2025-06-21 15:22:45 581

原创 100名囚犯题

*目前有100名囚犯,每个因犯的编号是1-200之间的随机数。剩下的人,又从新技位置1开始,再次于掉全部奇数位置处的人,依此类推,直到最后剩下一个人为止,剩下的这个人为幸存者。请输出幸存者的编号和第一次所占的位置 * */System.out.println("最后一个囚犯的编号为:"+prisoners.get(0).getId()+"最初位置为:"+prisoners.get(0).getFirstLocation());//将偶数位置的人放入新的集合。//判断囚犯编号是否重复的方法。

2025-06-15 10:13:07 383

原创 反射的相关操作

///获取的是有参数的eat。//Dog 实体类中一个参数的构造方法私有,无法创建对象,通过constructor3.setAccessible(true);//获取的是无参数的eat。//拿到类的全名 com.itheima.reflect.Dog。//暴力反射:暴力反射可以访问私有的构造器、方法、属性。//目标:获取类的构造器对象并对其进行操作。//2、获取类的构造器对象。//4、获取类的成员变量对象并对其进行操作。//5、获取类的方法对象并对其进行操作。//获取构造器的作用依然是创建对象。

2025-06-14 08:31:23 318

原创 某班级要组织秋游活动,有四个景点的数据可以选择,依次是:“东湖“、“黄鹤楼“、“木兰文化区”、“归元禅寺“,每名学生最多可以选择两个想去的景点,最少要选择1个想去的景点。

String info = "10001,张无忌,男,2023-07-22 11:11:12,东湖-黄鹤楼#10002,赵,女,2023-07-22 09:11:21,黄鹤楼-归元禅寺#10003,周芷若,女,2023-07-22 04:11:21,木兰文化区-东湖#10004,小昭,女,2023-07-22 08:11:21,东湖#10005,灭绝,女,2023-07-22 17:11:21,归元禅寺";注意:·字符串中的规则如下,多个用户用 #拼接,用户的信息之间用,拼接,多个景点是用-拼接的。

2025-06-13 10:25:17 339

原创 客户端和服务端的交互(用到了线程池、字节流)

System.out.println("请输入要上传的文件地址:");//4、创建本地文件的字节输出流。//3、获取网络中的字节输入流。//读取,一次读取一个字节数组。//5、获取网络中的字节输出流。// 任务交给线程池处理。//3、获取网络中的字节输出流。//4、获取网络中的字节输入流。//2、监听客户端连接。//2、创建本地的字节输入流。// 给对方写一个结束标记。//键盘录入本地文件地址。//一次读取一个字节数组。//1、创建客户端对象。//1、创建服务端对象。

2025-06-12 17:16:43 246

原创 将文件字节输出流转换成字符输出流和将文件字节输入流转换成字符输入流

osw.write("远桥之下泛莲舟,");osw.write("岱岩石上溪松流。osw.write("万仞翠山梨亭在,");osw.write("莫问声谷空悠悠。//将文件字节输出流转换成字符输出流。//将文件字节输入流转换成字符输入流。

2025-06-12 08:28:04 144

原创 创建线程池的构造方法解析

Executors.defaultThreadFactory(),//默认的线程工厂,当核心线程不够用的时候,创建零时线程。new ThreadPoolExecutor.CallerRunsPolicy()//任务拒绝策略。//new ThreadPoolExecutor.AbortPolicy()//任务拒绝策略。new ArrayBlockingQueue<>(20),//任务队列,存储任务。10,//线程池中最大线程数量。3,//线程池中核心线程数量。//给线程池提交任务。

2025-06-12 08:17:02 211

原创 对象序列化流

/public ObjectOutputStream(OutputStream out) throws IOException 将基础的字节输出流包装成对象字节输出流。//public ObjectInputStream(InputStream in) 将基础的字节输入流包装成对象输入流。User user3 = new User("王五", 18, "545623265");User user2 = new User("李四", 18, "6521");//创建User对象。

2025-06-11 08:27:15 293

原创 Date日期 格式化

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd HH:mm:ss");//创建日期格式化器。

2025-06-08 15:31:51 135

原创 猴子吃桃(递归)

又多吃了一个等到第10天的时候发现桃子只有1个了需求:请问猴子第一天摘了多少个桃子?于是又多吃了一个以后每天都是吃前天剩余桃子数量的一半,觉得好不过瘾,于是又多吃了一个第二天又吃了前天剩余桃子数量的一半,觉得好不过瘾,猴子第一天摘下若干桃子,当即吃了一半,觉得好不过瘾,先得到公式 f(n)=2 x f(n+1) + 2。* 俩边同乘2变形得。

2025-06-07 18:04:11 163

原创 Stream流

list.stream().filter((s)-> s.contains("张")).forEach(s->System.out.println(s));Collections.addAll(list, "宋远桥", "俞莲舟", "俞岱岩", "张松溪", "张翠山", "殷梨亭", "莫声谷");//static <T> Stream<T> concat(Stream a, Stream b) 合并a和b两个流为一个流。//Stream<T> distinct() 去除流中重复的元素。

2025-06-07 10:49:33 227

原创 Map集合的三种遍历方式

map.put("女儿国王", 31);map.put("铁扇公主", 38);// 目标:掌握Map集合的遍历方式。map.put("嫦娥", 20);map.put("嫦娥", 28);map.put("紫霞", 31);//把“键值对”看成一个整体进行遍历。//第二种遍历lamda。//第一种遍历:键找值。//第三种遍历 键值对。

2025-06-07 10:20:55 260

原创 HashSet去重

HashSet 集合要想保证此类对象唯一,那么实体类中需要重写 hashCode 和 equals。//无序、无索引、不重复。* HashSet 集合要想保证此类对象唯一,那么需要重写 hashCode 和 equals。//创建HashSet集合。

2025-06-07 10:16:21 346

原创 TreeSet排序问题

排序方式2:比较器排序 通过调用TreeSet集合有参数构造器,可以设置Comparator对象(比较器对象,用于指定比较规则 o1:当前添加的元素 o2 : 集合中已经存在的元素。*TreeSet排序的时候就不知道按什么规则排序,就会报错(java.lang.ClassCastException)类型转换异常错误。//因为名字为String,而String重写了compareTo,所以可以直接调用,比较名字字母大小。//根据学生年龄排序,如果年龄一样再根据名字的升序排序。//创建TreeSet集合。

2025-06-07 09:55:31 327

原创 将输入数组的元素去重

i++) {j < i;j++) {i--;break;}else {

2025-06-02 20:46:55 182

原创 九九乘法表

i < 10;i++) {j <= i;j++) {

2025-06-02 20:43:18 92

原创 错误提示:Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException:

2、检查数据库的字段名是否和项目中的配置的设置的字段名(dao层xxxMapper.xml文件中的SQL语句字段名)是否一致(这个也要好好检查)1、检查dao层xxxMapper.xml文件中的SQL语句是否有语法错误,特别是中英文标点问题。3、检查数据库的链接是否有问题(一般没有问题)

2023-06-16 17:30:12 1872 1

空空如也

空空如也

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

TA关注的人

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