- 博客(50)
- 收藏
- 关注
原创 Java 原生MyBatis开发
xml文件头部的声明可以从官方文档中获取<settings> 运行时常量配置<setting name="logImpl" value="STDOUT_LOGGING"/> 在控制台上输出所执行的SQL语句<typeAliases> 类型别名的声明<typeAlias type="com.yan.entity.User" alias="User"/> type是具体的类型名称,alias是别名,在映射元文件中可以使用别名来替代全名,简写配置。
2024-04-02 15:29:44
245
原创 数据库事务编程
事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态到另一种一致性状态。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。:多个事务并发执行时,每个事务对其他事务的操作应该互不干扰,各自独立运作,避免数据交叉影响。读取未提交: 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。:事务被视为一个不可分割的原子操作,要么全部执行成功,要么全部失败回滚,不会存在。
2024-03-27 20:06:36
328
原创 数据库触发器
触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。trigger_stmt:触发器的程序体,可以是一条 SQL 语句或者是用 BEGIN 和 END 包含的多条语句。trigger_event:触发事件,为 INSERT、DELETE 或者 UPDATE。tb_name:表示建立触发器的表明,就是在哪张表上建立触发器。trigger_name:触发器的名称。
2024-03-27 20:01:06
292
原创 MySQL 练习三
select sname,sex,class from student; select distinct depart from teacher; select * from student; select * from score where degree between 60 and 80; select * from score where degree in(85,86,88); select * from student where class=’95031’or se
2024-03-26 21:24:59
1757
2
原创 MySQL 练习一
有一个“学生-课程”数据库,数据库中包括三个表:(1) “学生”表Student由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。(2) “课程”表Course由课程号Cno、课程名Cname、选修课号Cpno、学分Ccredit四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。(3) “学生选课”表SC由学号
2024-03-20 20:17:02
2005
原创 MySQL 运算符
查询学生信息,要求按照年龄倒排序,如果年龄相等,则按照姓名排序。聚集函数用于对于一个集合中的数据进行处理,不是一行一行的数据。、注意默认按照指定列的自然序排序,如果需要倒序则使用关键字。、如果不使用分组,聚集函数则用于处理所有查询结果数据。、如果使用分组,则分别作用于各个分组查询的结果数据。运算符时指定的值是离散的数据,不是连续值。用于判断某个列的取值是否为指定的值,使用。用于判断数据是否在指定的范围内,连续值。逻辑或,如果参与计算的双反,只要一方为。逻辑与,如果参与计算的两个操作数为。
2024-03-18 21:17:20
489
1
原创 MySQL 相关英文单词
Non-Transactional:非事务性的。between and 在……梯状的,分等级的;(计算机的)端口;显示配置信息命令 …prepare 的过去分词);有区别的,不同的,清楚的;动作,活动,行动,作用。
2024-03-15 14:00:18
1027
原创 服务器段的连接端口和监听端口编程实现
服务器段的连接端口和监听端口1、主线程一直处于阻塞等待状态,如果一旦链接成功则启动一个新线程对外提供服务。2、启动工作线程时将链接对象 Socket 传递过去,在 run 方法中执行处理逻辑。
2024-03-12 20:52:05
604
原创 简单的 Client/Server 程序
C/S 架构全称为客户端/服务器体系结构,它是一种网络体系结构,其中客户端是用户运行应用程序的 PC 端或者工作站,客户端要依靠服务器来获取资源。C/S 架构是通过提供查询响应而不是总文件传输来减少了网络流量。它允许多用户通过 GUI 前端更新到共享数据库,在客户端和服务器之间通信一般采用远程调用 RPC 或标准查询语言 SQL 语句。
2024-03-12 20:46:00
594
原创 Java Map接口实现类之 HashMap
定义public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable{ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //默认初始化容积,就是默认数组的长度为 16 static final int MAXIMUM_CAPACITY = 1 <<
2024-03-08 21:11:28
394
原创 Java Map接口
定义 map 对象时需要指定 key 和 value 对应的类型,必须是复杂类型,不能使用int 之类的简单类型数据。具体存储map 接口中有一个内部接口为其中用于封装一个 key-value 对。Entry 接口中的方法:K getKey();另外 Entry 接口中通过静态方法提供了一组比较器的默认实现,用于规范其中存放数据的规则,map 中所存放的数据将给封装为一个一个的 Entry,一个 key/value 对对应一个 Entry 对象。Map接口中常见方法。
2024-03-08 20:35:31
364
原创 Java Collections 工具类
T的子类对象,而且必须是可比较大小的,即支持自然排序的。而且集合也事先必须是有序的,否则结果不确定。返回指定列表支持的同步(线程安全的)列表。集合中找出最大的元素,集合中的对象必须是。集合中找出最大的元素,集合中的对象必须是。比较器规则进行排序过的,否则结果不确定。的子类对象,而且集合也事先必须是按照。集合元素进行随机排序,类似洗牌。集合中查找某个元素的下标,但是。集合中查找某个元素的下标,但是。返回指定列表的不可修改视图。根据元素的自然顺序对指定。的子类对象,按照比较器。集合元素进行排序。
2024-03-08 19:54:23
461
原创 Java 重写和重载
重写重写一定是在父子类之间,不可能在一个类中。要求:1、方法名一致2、方法名称一致,参数类型列表一致,返回结果类型一致3、子类方法的范围限定词需要大于等于父类的范围4、子类方法不能比父类方法抛出更多的异常。
2024-03-07 20:01:55
331
原创 Java中List接口常见的实现类
ArrayList:数组实现,随机访问速度快,增删慢,轻量级;(线程不安全)LinkedList:双向链表实现,增删快,随机访问慢 (线程不安全)Vector:数组实现,重量级 (线程安全、使用少)
2024-03-06 19:14:18
2214
原创 Java 异常的捕获和处理
Java 异常的捕获和处理:语法规则、常见的三种输出异常的用法、特殊情况导致finally执行出现问题、自动关闭资源(JDK1.7+)、最佳异常相关编程实践、异常处理建议规则
2024-03-05 10:43:40
963
原创 Java 异常的分类
Java异常可以分为三类:1、Error及其子类2、RuntimeException及其子类3、Exception及其子类中除了RuntimeException及其子类之外的其它异常
2024-03-05 09:45:24
941
原创 Java集合之 List接口 & Set接口
List 接口是 Collection 接口的子接口,用于定义有序、允许重复的集合。Set 接口是 Collection 接口的子接口,用于定义无序,不允许重复的集合。
2024-03-04 20:33:16
482
原创 Java集合之 Collection接口
数组中实际上是不能直接获取其中存储的元素个数,集合中可以分为两个概念:容积。接口中定义的方法,获取迭代器对象用于遍历集合中的所有元素。获取集合中的存储元素个数,由于具体实现类的区别,所以。注意:只判断集合中是否没有元素,并不会判断集合是否为。将集合转换为 Object 类型的数组。使用泛型将集合转换为特定类型的数组。判断集合是否删除过数据,删除了返回。,如果需要判断集合变量是否为。判断集合中的元素个数是否为。判断集合中是否包含指定元素。的元素个数,类似于集合的。表示实际存储的元素个数。
2024-03-04 20:07:44
353
原创 Java IO流之文件字母数统计
2、不能使用定长数组,需要自定义一种数据结构,可以按照需要进行变长。1、定义一个类用于存储字符和该字符出现的次数。
2024-03-02 11:55:19
439
1
原创 Java IO流之汉字文件读写与换行
例:编写一个程序实现如下功能,文件fin.txt是无行结构(无换行符)的汉语文件,从fin中读取字符,写入文件fou.txt中,每40个字符一行(最后一行可能少于40个字)
2024-03-02 11:41:37
444
1
原创 Java 生产者消费者模式
生产/消费者问题涉及到的对象包括生产者、消费者、仓库和产品。他们之间的关系如下:生产者仅仅在仓储未满时候生产,仓满则停止生产。消费者仅仅在仓储有产品时候才能消费,仓空则等待。当消费者发现仓库没产品可消费时候会通知生产者生产。生产者在生产出可消费产品时候,应该通知等待的消费者去消费。生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。定义生产数据的生产者线程定义消费数据的消费者线程。
2024-03-01 21:12:18
526
1
原创 Java 线程 wait方法&sleep方法
无参数则表示等待到其他线程调用此对象的 notify() 方法或 notifyAll()方法,当前线程被唤醒,进入就绪状态。wait(long timeout)让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的notify()方法或 notifyAll() 方法,或者超过指定的时间量”,当前线程被唤醒(进入“就绪状态”)。让当前线程进入等待状态,当别的其他线程调用notify()或者notifyAll()方法时,当前线程进入就绪状态。,并进入等待队列,其他线程就可以尝试获取对象上的锁资源。
2024-03-01 21:06:12
357
1
原创 Java 线程状态迁移
(三)、其它堵塞:执行的线程执行sleep()或join()方法,或者发出了I/O请求时。2、就绪状态(Runnable):线程对象创建后,其它线程调用了该对象的start()方法。3、执行状态(Running):就绪状态的线程获取了CPU,执行程序代码run()。(二)、同步堵塞:执行的线程在获取对象的同步锁时,若该同步锁被别的线程占用。(一)、等待堵塞:执行的线程执行wait()方法,JVM会把该线程放入等待池中。该状态的线程位于可执行线程池中,变得可执行,等待获取CPU的使用权。
2024-03-01 20:49:37
408
1
原创 Java 线程池的具体实现类ThreadPoolExecutor
线程池中的核心线程数。当提交一个任务时,线程池创建一个新线程执行任务,直到当前线程数等于corePoolSize;如果当前线程数为corePoolSize,继续提交的任务被保存到阻塞队列中,等待被执行。
2024-02-28 21:28:49
386
原创 Java 创建线程的4种方法
缺点:提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固有化的性质,不应该随着内部状态的变化而变化,否则会造成系统的混乱。//会阻塞当前执行线程,并等待子线程执行完成后获取返回值。缺点:在run方法内部需要获取到当前线程的Thread对象后才能使用Thread中的方法。缺点:继承Thread类之后就不能继承其他的类,Java的单根继承体系。优点:大大减少对象的创建,降低系统内存的使用,以提高程序的执行效率。//启动线程,执行A2的run方法。//如何获取线程的执行结果。
2024-02-28 21:26:13
441
原创 Java 文件遍历之筛选文件后缀
方法2:过滤器接口FilenameFilter & FileFilter。例:遍历windows下的所有后缀为.ini的文件。
2024-02-27 21:25:20
396
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人