- 博客(54)
- 收藏
- 关注
原创 初始springboot搭建第一个项目
首先搭建maven项目用的maven版本为3.9以上的,要配置maven里的setting.xml具体在搭建maven配置过,搭建好后在pom.xml文件中代入springboot的依赖包再导入此依赖,导入此依赖会把所有关于web的依赖都导入进来创建一个文件用于在前端输出hello@RestController是Controller和ResponsBody(ResponsBody把return里的数据写成json的格式)的缩写此类是springboot特有的类只能有一个用于启动整
2024-10-18 22:18:33 244
原创 分页插件、代码生成器
01-分页插件、代码生成器分页插件使用首先在pom.xml文件中导入依赖然后再mybatis-config.xml文件中写入插件在测试类中写入方法在mybatis.xml文件中设置plugins标签里的属性helperDialectkeyi自动检查当前数据库用的什么,不用设置也行,默认就设置了分页插件里面属性详解代码生成器首先创建generatorConfig.xml文件context标签中属性的介绍context标签中jdbcConn
2024-09-22 01:31:26 298
原创 Mybatis缓存实现
01-一级缓存演示案例首先创建sql查询语句在对应接口中声明方法参数是Dept因为sql语句中的参数在Dept pojo类中都有所有声明pojo对象由于返回的数量不知道是多少条所以用list接收,<>由于返回的是dept类数据所以泛型里传入Dept一级缓存的介绍如下图失效情况详细介绍:1.不同的sqlSession会使一级缓存失效在一个测试方法有两个sqlSession一级缓存就会失效2.同一个SqlSession,但是查询语句不一样一个按名字查找
2024-09-19 21:52:41 884
原创 XML映射器-动态sql
01-动态sql1.实现动态条件SQL第一种方法在sql语句中加入where 1=1其他条件都加and就行,这样就可以根据if条件来判断要传递的参数可以有几个第二种方法用where标签给if语句包起来where标签的作用如下图第三种方法用trim标签解释如下图用choose也可以实现条件查询如下图,when解释测试类里的deptName的值也就是接口里参数的值,如果对应到下面的经理或者员工就输出对应的sql语句,如果都没对应上就输出otherwise标
2024-09-18 20:25:53 850
原创 XML映射器-高级查询结果映射
01-高级查询结果映射emp表dept表02-多表关联查询映射多对一映射项目中Emp类的数据项目中dept类的数据想要多表查询需要建个公共类里面写入两个表中的属性,如下面方法type里要写用到的类型,由于继承Emp所有Emp里面的属性直接写,column是写数据库的别字,property是写字段就是对象里属性的名字,由于是多表查询类中只声明了一个Dept属性,所以可以用对象属性名.属性的方式获取当前发现一点问题如果我们要返回多个对象的时候需要用到集
2024-09-18 15:48:15 1041
原创 MyBatis的配置文件详解
01-MyBatis的配置文件详解创建的接口和xml文件的名字最好写一样的要不然会出问题,然后和接口名相同的xml文件在resources下创建个和接口相同文件夹把xml文件放进去,而且resources下的创建的文件夹需要一级一级的创键,比如:cn创建完,创建tulingxue,然后再创建mapper文件夹才行在接口里声明方法时返回类型需要和红色圈1一样,,方法名需要和红色圈2一样,参数需要和红色圈3一样在创建 根据全局配置文件的xml构建成SqlSessionFactory,里的
2024-09-16 20:39:48 1803
原创 XML映射器-参数、返回结果处理
01-使用maven继承方式创建项目演示首先在项目上点击新建然后点击新模块然后名称改你想要的名称剩下的选一摸一样的新建好后可以在父项目的pom.xml里面的modules里面看到都有哪些子项目在子项目的pom.xml里面可以看到继承了那个父项目02-参数获取在xml文件中编写sql语句的时候有两种取值的方式,分别是#{}和${},下面来看一下他们之间的区别:如下图图片解释单个参数和多个参数的写法单个参数写法多个参数写法多个参数
2024-09-16 20:35:35 341
原创 Mybatis的介绍和基本使用
1、数据库操作框架的历程(1)JDBCjdbc核心api1.DriverManager连接数据库2.Connection连接数据库的抽象3.Statment执行SQL4.ResultSet数据结果集什么事MybatisMybatis的优点和缺点首先创建maven项目,在pom.xml里面导入mybatis依赖和mysql依赖用mybatis连接数据库在java里首先点击java右侧数据库完事点击加号选择mysql在这里输入信息
2024-09-13 17:20:07 333
原创 SpringMVC基于注解使用
01-拦截器介绍首先在pom.xml里面加入springmvc的依赖创建拦截类在spring-mvc.xml配置拦截器配置创建控制类测试拦截器中处理方法之前的方法介绍拦截器中处理方法之后,渲染之前的方法介绍拦截器中处理方法之后,渲染之后的方法介绍判断拦截器和过滤器先后的执行顺序首先创建过滤器然后执行此方法首先先进入tomcat服务器,然后到过滤器前,然后进入前端控制器dispatcherservlet,然后到拦截器pre
2024-09-06 22:49:34 739
原创 SpringMVC基于注解使用:JSON
01-json处理--介绍json数据格式回顾:在pom.xml导入依赖在web.xml里面导入配置文件@ResponseBody 注解是将返回值作为文本返回到客户端了而不是字符串了当我们想返回bean对象的json数据的时候我们需要先导入jackson依赖在pom.xml里面然后创建User类,然后创建方法在方法上加入@ResponseBody注解用list存储json数据处了在方法上加@ResponseBody注解还可以在类上面把@
2024-09-06 14:19:48 853
原创 SpringMVC基于注解使用:响应处理
视图解析器ViewResolver在spring.xml里面设置ViewResolver作用是可以简化逻辑视图的名称没简化之前简化之后在spring-mvc.xml里面设置视图控制器的作用,如果你想访问根目录的话就会进入index.jsp里面,如果你想访问/tuling,就会进入main.jsp里面,path是写到地址栏里的main.jsp里面的内容main.jsp访问服务器演示index.jsp里面的内容index.jsp访问服务器演示
2024-08-28 20:11:07 502
原创 SpringMVC基于注解的使用
SpringMVC基于注解的使用首先导入spring-mvc的依赖文件然后配置上篇文章的web.xml文件在配置上篇文章的spring-mvc.xml文件创建一个ParamsContrller类写个方法方法里面的参数名可以用到客户端请求,且可以为参数写任意类型如果想改参数名可以用@RequestParam为参数名修改名字其完别名和如果你没在username的值会报错,如果你真不想用还不想报错的话就设置required=false就不会报错了注意一点传入的参数类
2024-08-27 21:19:21 927
原创 SpringAOP使用详解
@Before@After@AfterThrowing@AfterReturning@Around解释基于XML SChema(xml)方式的切面实现整篇文章是基于注解的切面实现
2024-08-23 20:57:30 615
原创 SpringAop介绍与使用
在不修改原有代码的情况下 增强跟主要业务没有关系的公共功能代码到 之前写好的方法中的指定位置 这种编程的方式叫AOP。
2024-08-23 17:20:31 957
原创 springioc的javaconfig使用
首先创建项目结构用mavenjavaconfig没有xml文件所以创建一个类当xml文件,类名为IoCjavaConfig此类必须得有@Configuration注解,@ComponentScan相当于xml里的扫描包用注解加xml文件配置spring上下文用第二种,javaconfig要用第四种方式在测试类里测试引入第三方bean在javaconfig的方法,用@bean在此方法中返回的对象为该类的类型,类后面的方法名为该bean的id名字用@Bea
2024-08-22 21:00:13 215
原创 springioc的注解使用
解在xml里用<context:component-scan base-package="cn.tulingxueyuan"></context:component-scan>总的来说最好在那个层用那个注解方便管理,还可以增强可读性。
2024-08-22 16:05:43 988
原创 Spring ioc简易代码实现过程
Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。
2024-08-20 20:06:57 658
原创 C++STL初始
学习目标:vector中存放自定义数据类型,并且打印输出2.5.3 Vector容器嵌套容器学习目标:容器中嵌套容器,我们将所有数据进行遍历输出。
2023-08-03 17:24:00 92
原创 C++提高编程 1模板
template <typename T>//声明一个模板,告诉编译器后面的代码中紧跟着的T不要报错,T是一个通用数据类型。·解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.cpp,hpp是约定的名称,并不是强制。总结:类模板和函数模板语法相似,在声明模板template后面加类,此类称为类模板。·当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型。//·函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换。cout << "func 调用" << endl;
2023-07-25 20:03:32 62
原创 C++核心编程
在上一个添加功能中,我们只是将所有的数据添加到内存中,一旦程序结束就无法保存了。代码区是共享的,共享的目的是对频繁可执行的程序,只需要在内存中有一份代码即可。堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete。堆区:由程序员分配和释放,若程序员不释放,程序结束时有操作系统回收。代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。
2023-06-09 20:58:18 94
原创 C++多态
将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商。多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码。在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容。利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶。创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口。静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态的函数地址晚绑定-运行阶段确定函数地址。
2023-06-08 21:03:14 58
原创 C++运算符重载
运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。作用:重载关系运算符,可以让两个自定义类型对象进行对比操作。总结:重载左移运算符配合友元可以实现输出自定义数据类型。由于重载后使用的方式非常像函数的调用,因此称为仿函数。4.赋值运算符operator=,对属性进行值拷贝。作用:通过重载递增运算符,实现自己的整型数据。3.默认拷贝构造函数,对属性进行值拷贝。1.默认构造函数(无参,函数体为空)2.默认析构函数(无参,函数体为空)函数调用运算符()也可以重载。
2023-06-04 23:00:24 44
原创 C++友元
在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术。客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去。生活中你的家有客厅(public),有你的卧室(private)友元的目的就是让一个函数或者类访问另一个类中私有成员。但是呢,你也可以允许你的好闺蜜好基友进去。友元的关键字为friend。
2023-06-04 14:26:02 46
原创 C++对象模型和this指针
this指针指向被调用的成员函数所属的对象。每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。C++中空指针也是可以调用成员函数的,但是也要注意有没有用到this指针。在类的非静态成员函数中返回对象本身,可以使用return*this。this指针是隐含每一个非静态成员函数内的一种指针。成员函数后加const后我们称为这个函数为常函数。我们知道在C++成员变量和成员函数是分开存储的。在c++中,类内的成员变量和成员函数分开存储。只有非静态成员函数才属于类的对象上。
2023-06-04 13:45:06 41
原创 C++构造函数与析构函数
对象的初始化和清理工作是编译器强制要我们做的事情,因此我们不提供构造和析构函数,编译器会提供编译器提供的构造函数和析构函数是空实现。一个对象或者变量没有初始状态,对其使用后果是未知同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题。C++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理操作。C++中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置。4.程序在调用对象时候会自动调用构造,无需手动调用,而且只会调用一次。
2023-06-03 21:58:02 65
原创 C++函数提高
C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置。在现阶段函数的占位参数存在意义不大,但是后面的课程中会用到该技术。在C++中,函数的参数列表中的形参是可以有默认值的。语法:返回值类型 函数名(参数=默认值){}语法:返回值类型 函数名 (数据类型){}注意:函数的返回值不可能作为函数重载的条件。函数参数类型不同或者个数不同或者顺序不同。作用:函数名可以相同,提高复用性。函数重载碰到函数默认参数。
2023-06-01 14:06:07 46
原创 c++引用
结论:C++推荐用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作编译器都帮我们做了。总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单。在函数形参列表中,可以加const修饰形参,防止形参改变实参。作用:函数传参时,可以利用引用的技术让形参修饰实参。本质:引用的本质在C++内部实现是一个指针常量。作用:常量引用主要用来修饰形参,防止误操作。语法:数据类型 &别名=原名。优点:可以简化指针修好实参。引用在初始化后,不可以改变。作用:不要返回局部变量引用。
2023-05-31 18:26:29 40
原创 C++类和对象
人可以作为对象,属性有姓名、年龄、身高、体重......,行为有走、跑、吃饭、唱歌....车也可以作为对象,属性有轮胎、方向盘、车灯......行为有载人、放音乐、放空调....在C++中struct和class唯一的区别就在于默认的访问权限不同。具有相同性质的对象,我们可以抽象为类,人属于人类,车属于车类。类在设计时,可以把属性和行为放在不同的权限下,加以控制。优点1:将所有成员属性设置为私有,可以自己控制读写权限。在设计类的时候,属性和行为写在一起,表现事物。将属性和行为加以权限控制。
2023-05-28 18:11:16 51
原创 C++文件操作
2、二进制文本-文本以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们。len是读写的字节数。例如:用二进制方式写文件ios::binary|ios::out。文件输出流对象,可以通过write函数,以二进制方式写数据。文件输入流对象 可以通过read函数,以二进制方式读数据。二进制方式写文件主要利用流对象调用成员函数write。二进制方式读文件主要利用流对象调用成员函数read。打开文件时候需要指定操作文件的路径,以及打开方式。读文件与写文件步骤相似,但是读取方式相对于比较多。
2023-05-27 01:52:45 48
原创 c++通讯录
cout << "****** 1、添加联系人 *****" << endl;cout << "****** 2、显示联系人 *****" << endl;cout << "****** 3、删除联系人 *****" << endl;cout << "****** 4、查找联系人 *****" << endl;cout << "****** 6、清空联系人 *****" << endl;cout << "****** 0、退出联系人 *****" << endl;
2023-05-21 22:06:10 91
原创 C++结构体
设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值最终打印老师数据以及老师所带的学生数据。语法:struct 结构体名 数组名{元素个数}={{},{},{},......{}}设计一个英雄的结构体,包括成员姓名,年龄,性别;例如:每个老师辅导一个学生,一个老师的结构体中,记录一个人学生的结构体。总结:结构体指针可以通过->操作符 来访问结构体中的成员。
2023-05-20 20:49:18 43
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人