- 博客(71)
- 收藏
- 关注
原创 Java - JDBC 结构优化3
在DAO层中,对数据库表的增、删、改、查操作存在代码冗余。可对其进行抽取封装DbUtils工具类实现复用。公用的增删改方法公用的查询方法。
2024-02-01 20:25:58
447
原创 JDBC 结构优化2
在释放资源的方法中,连接对象关闭后,提供threadLocal.remove()。**目的:**DAO提高数据操作的重用性,Service提高业务功能的重用性。在Service中,调用了多次DAO操作。每一个业务功能都要控制事务。原因:Service控制事务和DAO访问数据库时的连接对象,并非同一个。将关闭后的连接从当前ThreadLocal中移除。程序设计角度: 每一个步骤都是一个方法。服务者角度: 业务包含多个步骤。用户角度: 功能即业务。
2024-01-31 20:47:32
991
原创 JDBC - 结构优化1
*三层架构:**将程序划分为表示层, 业务逻辑层, 数据访问层三层,各层之间采用接口相互访问,并通过实体类对象作为数据传递的载体。表示(界面)层(User Interface Layer)。业务逻辑(服务)层(Business Logic Layer)。数据访问(持久)层(Data Access Layer)。**调用关系:**表示层调用业务层,业务层调用数据访问层。**目的:**是为了实现“高内聚低耦合”的思想。
2024-01-31 20:44:00
1017
原创 HTML标签 - 1
一门使用标记标签来描述网页,展示信息给用户的语言。超文本:页面内可以包含图片、链接、音乐、程序等非文字元素标记:即标签,不同的标签实现不同的功能语言:人与计算机的交互工具。
2024-01-31 20:01:37
962
原创 Java - JDBC
JDBC(Java DataBase Connectivity)Java数据库连接,SUN公司定义的一套连接数据库的规范(标准)。使用JDBC连接数据库完成CRUD操作。JDBC中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。由数据库厂商提供驱动实现类(Driver数据库驱动)。
2024-01-29 20:41:41
1075
原创 SQL - 事务控制
这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻读” 行。这种隔离级别出现不可重复读(Nonrepeatable Read)问题,因为同一事务的其他实例在该实例处理期间可能会有新的commit,所以同一select可能返回不同结果。最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。用数据库操作来模拟现实转账。
2024-01-25 21:13:36
2173
原创 SQL - 数据控制语句
数据控制语言:Data Control Language。用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视。比如常见的授权、取消授权、回滚、提交等等操作。
2024-01-25 21:11:51
891
原创 SQL - 数据定义语句
DDL(Data Definition Language), 即数据定义语句。定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、聚簇、索引、视图、函数、存储过程和触发器等等。数据定义语言是由SQL语言集中负责数据结构定义与数据库对象定义的语言,并且由CREATE、ALTER、DROP和TRUNCATE四个语法组成。
2024-01-25 21:09:38
1676
原创 SQL - 数据操作语句
*语法: **INSERT INTO 表名(列1, 列2, 列3…) VALUES(值1, 值2, 值3…DELETE是清空整张表的数据,不释放空间;TRUNCATE是把表销毁,再按照原表的结构创建一张新表,释放空间。UPDATE 表名 SET 列1=新值1 ,列2 = 新值2,…DELETE属于DML语句,可以回滚,TRUNCATE属于DDL语句,不可以回滚。**语法: **DELETE FROM 表名 WHERE 条件;注: MySQL中每条记录最大长度64k。TRUNCATE TABLE 表名;
2024-01-25 21:07:46
2078
原创 SQL语句 - 查询语句
SELECT 列名FROM 表名WHERE 条件GROUP BY 分组HAVING 过滤条件ORDER BY 排序列(ASC|DESC)LIMIT 起始行,数据个数FROM: 指定数据来源表WHERE:对查询数据做第一次过滤GROUP BY:分组HAVING:对分组后数据做第二次过滤SELECT:查询各字段的值ORDER BY:排序LIMIT:限定查询结果。
2024-01-24 19:52:09
1001
原创 从零学Java MySQL
按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。数据库的分类:结构描述网状结构以节点形式存储和访问。层次结构定向有序的树状结构实现存储和访问。关系结构Oracle、DB2、MySQL、SQL Server,以表格(Table)存储,多表间建立关联关系,通过分类、合并、连接、选取等运算实现访问。非关系结构【NoSQL】
2024-01-23 19:33:55
1112
1
原创 设计模式 简单工厂模式
开发中有一个非常重要的原则“开闭原则”,对拓展开放、对修改关闭。工厂模式主要负责对象创建的问题。可通过反射进行工厂模式的设计,完成动态的对象创建。
2024-01-23 10:20:20
363
原创 Java 基础 - 反射
类的对象:基于某个类 new 出来的对象,也称为实例对象。类对象:类加载的产物,封装了一个类的所有信息(类名、父类、接口、属性、方法、构造方法、包) ,每个类只有一个类对象。反射:把Java类中的各种成分映射成单独的Java对象进行操作。注意:每个类加载到内存都会生成一个唯一的类对象。
2024-01-23 10:19:02
868
1
原创 JDK8 New Time API
之前时间API存在问题:线程安全问题、设计混乱。LocalDate: 本地日期LocalTime: 本地时间LocalDateTime: 本地日期时间Instant:时间戳。ZoneId:时区。Date、Instant、LocalDateTime的转换。DateTimeFormatter:格式化类。
2024-01-23 10:16:47
403
原创 从零学Java - Lambda表达式
Lambda表达式:特殊的匿名内部类,语法更简洁。允许把函数作为一个方法的参数(函数作为方法参数传递),将代码像数据一样传递。如果一个接口只有一个抽象方法,则该接口称之为函数式接口,函数式接口可以使用Lambda表达式,Lambda表达式会被匹配到这个抽象方法上。@FunctionalInterface 注解检测接口是否符合函数式接口。代码示例:@FunctionalInterface //函数式接口: 只有一个抽象方法//匿名内部类@Override。
2024-01-22 19:56:10
1077
原创 从零学Java 单例模式
单例(Singleton):保证只能创建一个该类的对象。实现单例三个步骤私有化构造方法在类内部创建一个对象在类中添加一个公开的方法,返回单例对象。
2024-01-22 19:42:39
660
原创 计算机网络编程
概念:由点和线构成,表示诸多对象间的相互联系。概念:计算机网络是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路和通信设备连接起来的一种计算机系统。作用:在网络操作系统、网络管理软件及网络通信协议的协同管理下,可以实现资源的共享和信息的高效传递。常见的计算机网络互联网:(Internet)点与点相连万维网:(WWW – World Wide Web)端与端相连物联网:( IoT - Internet of things) 物与物相连网络编程。
2024-01-18 20:54:21
2302
原创 从零学Java 多线程的三个特性
synchronized可保证原子性和可见性。volatile可保证可见性和有序性。(1)读取i的值 (2)执行加1操作(3)修改i的值。多线程要保证并发线程正确执行,必须要保证三个特性。i++是原子操作吗?使用原子操作类解决。
2024-01-16 20:28:52
423
原创 从零学Java 线程的状态
主线程main()或独立线程run()结束,进入终止状态,并释放持有的时间片。: 调用start()之后,进入就绪状态。等待OS选中,并分配时间片。: 线程对象被创建,即为初始状态。只在堆中开辟内存,与常规对象无异。需求:A线程将“Hello”存入数组;B线程将“World”存入数组。: 获得时间片之后,进入运行状态,如果时间片到期,则回到就绪状态。当多线程并发访问临界资源时,如果破坏原子操作,可能会造成数据不一致。:多个线程并发同时执行。:一个线程接着一个线程。
2024-01-15 18:02:15
875
原创 从零学Java 多线程(基础)
进: 正在进行;程: 程序程序:程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念;进程:进程是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位程序是静止的,只有真正运行时的程序,才被称为进程。目前操作系统都是支持多进程,可以同时执行多个进程,通过进程ID区分。概念: 线程,又称轻量级进程(Light Weight Process)。进程中的一个执行路径,同时也是CPU的基本调度单位。进程由多个线程组成,彼此间完成不同的工作,抢占式执行,称为多线程。
2024-01-15 09:08:32
1161
原创 从零学Java Map集合
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。: 双向链表保存HashMap的顺序,有顺序的HashMap。: 哈希表,键重复依据hashCode和equals方法。2 定制Comparator比较器。: 红黑树,重复依据排序实现。1 实现Comparable接口。
2024-01-13 09:56:17
888
原创 从零学Java Set集合
特点元素自身提供的比较规则称为自然排序。Comparator可以实现定制比较规则。compare(o1,o2),如果返回值为0,则为重复元素。使用Comparator比较器,元素类型可不实现Comparable接口,并且优先级高于Comparable接口。//创建比较器,定制比较规则@Overriden2:n1;//创建集合练习TreeSet实现字符串按照长度排序,如果长度相同,按照编码顺序。//练习:TreeSet实现字符串按照长度排序,如果长度相同,按照编码顺序。
2024-01-11 20:20:17
417
原创 从零学Java 泛型
Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递。常见形式有泛型类、泛型接口、泛型方法。语法<T,…> :T称为类型占位符,表示一种引用数据类型(一般使用一个大写字母表示)。多个占位符之间使用逗号隔开。好处提高代码的重用性防止类型转换异常, 提高代码的安全性。
2024-01-11 20:18:55
478
原创 389.找不同
思路: 拿到这个题目,本能的你会使用排序(数字文字我们常常需要排序),排序后可以来判断是否数字成对出现,思路很明显,但是排序的算法上限是 O(nlogn),不符合题目要求;版权声明:本文为优快云博主「来老铁干了这碗代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。最最常出现的面试题:一个整型数组里除了N这个数字之外,其他的数字都出现了两次,找出这N个数字;比如,从{1, 2, 3, 4, 5, 3, 2, 4, 5}中找出单个的数字: 1。**方法三:**异或。
2024-01-11 08:59:42
406
原创 1768. 交替合并字符串
StringBuffer/StringBuilder 类包含append()方法,append()方法相当于“+”,将指定的字符串追加到此字符序列。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。StringBuffer/StringBuilder.append()追加的字符串在同一个内存地址。charAt(i) 函数 是获取字符串中i+1位置的字符。:可在内存中创建可变的缓冲空间,存储频繁改变的字符串。求两个字符串较短的那个,以它作为循环的限制;的起始下标,非负的整数。
2024-01-11 08:09:17
454
原创 从零学Java 集合概述
概念:对象的容器,定义了对多个对象进行操作的常用方法;可实现数组的功能。和数组区别数组长度固定,集合长度不固定。数组可以存储基本类型和引用类型,集合只能存储引用类型。
2024-01-10 19:18:51
605
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人