- 博客(25)
- 收藏
- 关注
原创 Mybatis框架-接口绑定方案
Myabaits会自动讲接口与xml文件进行绑定,实际上就是Mybatis互根据接口和对应的xml文件创建一个接口的实现类,换言之,就是可以得到接口实现类的一个对象,方便方法的调用。b) 映射文件中提供对应的标签. 此时, SQL 语句中获取方式有两种, 通过#{arg+数字}或#{param+数字}的方式.b) 映射文件中提供对应的标签. 此时, SQL 语句中获取方式有两种, 通过#{参数名称}或#{param+数字}的方式.用于在 SQL 语句中遍历集合参数, 在 in 查询中使用。
2023-03-23 20:13:06 585
原创 MyBatis框架学习
在Mybatis中,推荐使用mappers作为包名,我们只需要写一个映射配置文件就可以,UserMapper.xml,用于。selectList("命名空间.id") 用户查询多条数据情况,返回一个List集合, 没有查到数据返回空集合,不是。selectMap("命名空间.id",key的字段名) 用于查询多条记录情况, 返回Map集合, 需要指定那个属性。作为key, sql查询结果作为value,指定的字段值作为key, 如果查不到, 返回一个空map集合,不是null。
2023-03-22 20:25:11 194
原创 数据库学习day2--表连接(笔记)
执行流程:from ->where ->group by ->having ->select ->order by。--自然连接:自动做等值连接(同名字段|主外键字段)natural join。--外连接:某一个数据中的数据不满足连接条件的时候也能显示。--表连接条件:过滤通过连表产生的不满足要求的表连接数据。--主表:主表中的数据无论是否满足连接条件都能显示。--外连接:主表中的数据无论是否满足连接条件都显示。--左外连接 | 左连接:from后面主表在左边。
2023-03-18 17:46:53 138
原创 数据库学习day1--Oracle基础语句查询操作
法),重点掌握 to_date,to_char (字符和日期的转换)根据函数的返回结果,我们将函数分为单。create:创建;Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;Minus,差集(减去重复) 对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序;Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序;
2023-03-17 20:43:39 161
原创 Java学习day23--网络编程
网页编程 : 关注上层应用网络编程 : 关注底层数据的传输IP地址 : 定位网络中的节点...(电脑,手机....)端口号 : 区分软件URL : 同一资源定位符传输层协议 : (标准,合同,规范) UDP : 邮寄包裹|写信 不安全,协议简单,开销小,效率高 大小限制一般不超过60k TCP : 打电话 基于连接 安全,效率低 没有大小限制IP : 定位网络中的节点...(电脑,手机....) IPV4 4个字节32位 IPV6128位 特殊的IP :
2023-03-13 20:38:03 82
原创 Java学习day22--多线程
线程:cpu调度与执行最小单位,一个进程至少含有1~n个线程,同一个进程的多个线程共享这个进程的代码,数据空间,每个线程都有自己的程序计数器。TIMED_WAITING : 与时间相关的等待 sleep(ms),join(ms),wait(ms)..注意 : 当前线程如果被其他线程插队,当前线程就会进入到阻塞状态,等待插队线程执行完毕|等待指定时间接触阻塞。线程状态 : Thread.State getState() 返回此线程的状态。正在等待另一个线程执行最多指定等待时间的操作的线程处于此状态。
2023-03-10 20:01:29 71
原创 Java学习day19--集合
扩容机制 : 通过Arrays.copyOf方法实现创建新数组拷贝数据,每次扩容原容量的1.5倍 int newCapacity = oldCapacity + (oldCapacity >> 1);所有实现了Collection接口的容器类都有一个 iterator 方法用以返回一个实现了Iterator接口的对象。特点 : 根据索引查询效率高,做增删效率低,因为大量的涉及到新数组创建,数据的拷贝。引用场景 : 适合应用在存储多个单个值的数据的集合,去重的,自动升序排序的场景。底层用数组实现的List。
2023-03-07 22:31:32 104
原创 Java学习day18--序列化、认识集合、泛型
ObjectOutputStream(OutputStream):创建一个可以写入指定的OutputStream的ObjectOutputStream。1)编译期间无法对集合中存储数据的类型进行检查,可以实现存储任意引用数据类型的数据。,可以使用流的文件来实现对象的永久存储,如果流是网络套接字流,则可以在另一个主机或者进程中重构对象。4.有些集合有序,有些集合无序,有些可以根据索引进行操作,有些不可以。3.可以任意引用数据类型的数据,存储的多个数据类型可以不同。2.集合长度的跟随数据的增删进行改动。
2023-03-07 14:21:10 227
原创 Java学习day17--IO
输出流写出数据时,如果源文件存在并且有内容,会默认覆盖,如果想要实现追加,使用重载构造器,boolean append->true追加,false覆盖(默认)abstract void write(char[] cbuf, int off, int len) 写一个字符数组的一部分。void write(String str, int off, int len) 写一个字符串的一部分。1、使用read()一个字节一个字节读取,重复读取多个字节数据,可以使用循环。FileReader : 文件字符输入流。
2023-03-05 14:35:41 69
原创 Java学习day16--StringBuilder与StringBuffer、枚举
一个可变的字符序列,此类提供与StringBuffer兼容的API,但不保证同步,在可能情况下,建议使用此类优先于StringBuilder类,因为它支持所有的相同的操作,但速度更快,因为它不支持同步。通常应优先使用StringBuilder类,因为它支持所有相同的操作,但速度更快,因为它不执行同步。枚举类型的实例是由枚举类内部提供,不允许外部创建,只能获取使用-->所以枚举类默认构造器是private修饰。枚举是一种特殊的类型,定义特殊,特点特殊,使用特殊。:线程安全,可变字符序列,可供多个线程使用。
2023-03-02 20:35:07 107
原创 Java学习day15--异常、Java中的常用类
String(char[] value, int offset, int count) 分配一个新的 String ,其中包含字符数组参数的子数组中的字符。try中代码一旦遇到异常,try后面的代码不再执行,从上到下执行catch判断哪一个catch所捕获的异常类型满足,执行对应的catch后的语句体。需求 : 想要输出对象的字符串表现形式时|引用时,输出的是对象所有的属性值---->子类中进行重写toString。异常一旦出现: 1)程序无法执行 2)终止程序的继续执行,抛出异常的信息展示给程序猿。
2023-02-28 20:18:40 59
原创 Java学习day14--内部类、接口与抽象类区别
内部类定义在外部类的成员位置,可以被成员修饰符所修饰,可以继承其他父类,实现需要的接口,具有成员的特点,具有类的特点。在所在外部类中需要通过成员内部类的对象访问其成员(包括私有成员),可以通过类名访问其静态的常量。在所在外部类中可以通过类名访问静态内部类中的静态内容,需要通过对象访问静态内部类中的非静态成员。只能在所在的方法中通过对象访问局部内部类的成员,在外部类中的其他方法中|其他类中都无法使用局部内部类。在其他类中可以通过new 外部类类名.内部类类名()的内部类对象访问静态内部类中的成员内容。
2023-02-27 23:04:18 111
原创 Java学习day13--二维数组遍历、list集合概念和HashSet集合概念
数据类型[][] 数组名 = new 数据类型[][]{{值列表},{值列表},....};数据类型[][] 数组名 = new 数据类型[外层二维数组长度][内层一维数组长度];数据类型[][] 数组名 = {{值列表},{值列表},....};数据类型[][] 数组名 = new 数据类型[外层二维数组长度][];数组名[二维数组的索引] = new 一维数组[]{数据值....};数组名[二维数组的索引] = new 一维数组[长度];数组名[外层二维数组索引][内层一维数组索引]
2023-02-26 20:16:46 331
原创 Java学习day12--转型、抽象类、接口
被abstract修饰的类-->抽象类被abstract修饰的方法-->抽象方法特点:没有方法体必须定义在抽象类中注意 :1.抽象类不能实例化2.抽象类中可以定义 : 属性,构造器,功能,抽象方法...3.抽象方法必须定义在抽象类中(接口)4.抽象方法使用之前必须被重写5.抽象类需要根据具体子类对象进行使用 :具体子类 : 重写所有的抽象方法 + 按需新增抽象子类 : 按需重写 + 按需新增6.abstract不能与private,static,final与native一起使用。
2023-02-24 20:53:29 84
原创 Java学习day11--面向对象之继承、封装、多态
在异包下的子类中,通过继承关系访问,即不能通过父类对象访问-->不能访问父类中被protected修饰的成员,因为不是通过继承关系访问(父类的私生子,要通过创建异包子类对象访问protected修饰的成员)不能在子类构造器的首行同时通过this(实参)与super(实参)调用其他构造器,可以先执行this(实参),调用本类中其他构造器后,在其他构造器的首行通过super(实参)调用父类构造器。3.被static修饰的方法不能被重写。通过子类对象,调用子类中重写的方法,对父类中的被重写的方法进行屏蔽。
2023-02-23 20:07:14 136
原创 Java学习day10--静态代码块、局部代码块及Java中包和导包
-> 模糊导入,模糊匹配当前包下的所有类型,只会影响编译效率,不会影响运行效率。构造块会被编译到要执行的构造器内部,构造器代码的上面,先于构造器代码的执行。为什么在创建类的时候需要给当前类指定包?区分不同的类,管理不同的类。import static 包名.类名.静态变量|方法;1、导包就是为了使用类,在使用类的时候需要通过包名.类名去确定。一般命名规则: 公司域名倒着写 com.xxx。静态块在第一次加载完成之后执行,并且只执行一次。做成员的初始,先于构造器的统一初始。import 包名.类名;
2023-02-22 20:00:46 95
原创 Java学习day9--Java中的构造器、static修饰符、this关键字用法
被static修饰的方法(或者变量),隶属于类,类只要加载,就会加载内存的静态区中,并且只有一份可以被多个对象共用,优先于对象(实例)存在内存中。成员变量在对象的堆内存中,有对象,才有堆内存,就有成员变量,有多少对象,就有多少块对象的堆内存,就有多少分成员变量。成员成员在执行到new对象的时候,才会开辟对象的堆内存,在会存在成员变量。指代当前对象(构造器中指代当前new的对象|在成员方法中指代调用成员方法的对象)不被static修饰的成员变量 -->成员变量|实例变量。
2023-02-20 23:35:47 86
原创 Java学习day8--面向对象基本概念
Java面向对象是一种编程范式,它强调把程序组织成对象,每个对象具有特定的属性和方法,使用这种编程模型可以更快、更容易地编写出可维护的代码。用面向对象思维解决:张三具有把大象装进冰箱里的功能,让张三帮我把大象装进冰箱里,大象被装进冰箱了,问题解决。面向对象->”我该找谁实现?“,只关心对象,实现结果,不关心实现的过程。注意 : 成员是属于对象的,需要跟随对象使用成员(成员变量|成员方法)行驶 跑(成员方法:定义在类中方法外,不被static修饰的方法):抽取了一系列对象的共性-->图纸|模板|实体类。
2023-02-19 15:39:44 92
原创 Java学习day6--Java中方法的重载、递归调用、认识数组
引用数据类型 [](基本数据类型的数据为对应类型数据值 ,引用数据类型的数据为对象数据 )参数列表不同 | 方法签名不同(参数个数不同、参数类型不同、不同类型的参数顺序不同)数据类型[] 数组名 = new 数据类型[]{数据1,数据2,数据3....};递归前进段:从第一次调用方法,到临界条件之间,不停的自己调用自己的过程。数据类型[] 数组名 = {数据1,数据2,数据3....};有序的,索引,根据根据索引区分数组中的每一个空间。间接递归:A方法中调用B方法,B方法中调用方法。
2023-02-17 20:50:29 97 1
原创 学习Java第5天--Java中的循环、嵌套循环、方法
分析功能执行完毕之后是否需要得到一个结果,如果需要就定义为有返回值类型的方法,如果不需要就定义为没有返回值类型的方法。: 分析方法执行过程中|定义时,是否存在位置的数据|有可能改变的数据|不确定的数据,如果存在,定义在方法的参数列表中。在重复执行多次代码的时候,如果能够确定循环次数|确定变量变化的区间与规律---->for循环。不确定循环次数 | 变量的变化情况,根据条件判决循环是否结束 | 执行。作用域:从变量的声明开始,到包裹他的离他最近的}结束(实际参数(实参) : 调用方法时候()中的参数。
2023-02-16 21:18:31 251
原创 学习Java第4天--Java中的变量、数据类型及类型转换
实际开发中也会存在long类型存储不下的情况,解决方案就是修改单位,如果这种大数运批次很高,欢迎修改技术栈,不要用java。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。变量:就是程序运行期间,其值可以发生改变,需要先声明变量的类型,声明一个变量后,这个变量可以理解为用来存储数据的容器。原因在于,使用补码,可以将符号位和数值域统一处理;当将一个超过了int范围的字面值赋值给long类型的变量的时候,需要将这个字面值后加L(推荐)或者是l。
2023-02-11 13:37:22 134 1
原创 学习Java的第1天--Java历史、概述、JDK安装
编写的java文件/程序,通过编译器(javac.exe)将其转换为对应的字节码文件(.class),通过解释器(java.exe)将其交由JVM解释执行。跨平台的基石是JVM,真正和平台无关的文件是(字节码文件)。java虚拟机,他是一个虚拟的计算机。hotspot是基于这个标准实现的产品,目前主流的java虚拟机都是hotspot。目前Oracle公司发行Java语言的版本是1年2个版本,3月份发布一次和6月份发布一次。SUN这家公司是Java语言的老东家,是由 詹姆斯 · 高斯林 开发。
2023-02-10 20:21:14 99
原创 学习Java第3天--关于static修饰符、静态代码块
一旦使用 static 修饰成员方法,那么这就成为静态方法,静态方法不属于对象,而是属于类的。静态不能直接访问非静态 原因(因为在静态中是【先】有的静态内容,【后】有的非静态内容-------"先人不知道后人,但是后人知道先人"):当第一次用到本类时,静态代码块执行唯一的一次,静态代码块总是优先于非静态,所以静态代码块比构造方法先执行。:当 new一个对象,传递到方法中作为方法中的参数时,实际传递进去的是对象的地址值。只有方法中才可以使用,除了方法不能再用成员变量:整个类中全都可以使用。
2023-02-08 00:00:00 225
原创 学习Java第7天--Date类、File类、流
File getParentFile() 返回此抽象路径名父项的抽象路径名,如果此路径名未指定父目录,则返回 null。getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。String getParent() 返回此抽象路径名父项的路径名字符串,如果此路径名未指定父目录,则返回 null。String[] list() 返回一个字符串数组,用于命名此抽象路径名表示的目录中的文件和目录。File[] listFiles() 返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。
2023-02-05 15:29:09 174 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人