如何废掉一个大学生
沾染上这几条(尤其最后 1 条),基本算是爹妈白养。
接受碎片信息,拒绝深度思考
沉迷于迅速获得成就感的事
毫无意义的熬夜与自我透支
无法专注做一件事
丧失目标和方向
潜意识中认为人生还没真正开始。
1、接受碎片信息,拒绝深度思考每天不停地刷知乎、刷微博、刷抖音、刷朋友圈,被动接受信息密度低的资讯,如娱乐八卦、花边新闻、沙雕视频,网综热剧等无须动脑的东西。
并且对这些碎片化的信息:只灌入,不输出。厌恶深度思考,拒绝梳理与总结知识,没有能够内化成为自己的价值体系,并且输出独特的观点见解。
仅凭这条,有被戳中的请双击屏幕!
2、沉迷于迅速获得成就感的事随便举两个栗子:日夜浸泡在网游中,通过虚拟的胜利赢得成就感,寻求更高段位来获得自我认同。亦或是 不停钻研如何求欢,以暧昧对象的人数当做自己的勋章 。
久而久之,对于 需要长期投入来获得更高回报的事情产生厌恶。 比如每天运动、看书写作、专业能力的提升、对未来的规划等等。
3、毫无意义的熬夜与自我透支见过太多的人,明明没有什么事,手机刷着刷着,就到凌晨两点了。到了第二天早上,开始挣扎在「摆脱困意去上课」与「旷课继续睡大觉」的两难选择中。
最 ...
3. SpringBoot 整合第三方技术
1. 整合Junit一般来说是不需要进行处理的 ,因为在创建SpringBoot 工程时 ,会自动整合junit的
要说怎么配置的话?也可以写一下相关的配置:以下就是SpringBoot 整合 Junit 相关步骤
导入相关依赖
12345<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency>
写 @SpringBootTest注解 , 也可以使用 classes 属性指定引导类的字节码对象。如 @SpringBootTest(classes = Springboot07TestApplication.class)
测试结果显示:
2. 整合MyBatis整合步骤如下:
创建SpringBoot 工程的时候 ,勾选SQL 下的 MyBa ...
2. 基础配置
1. 配置文件格式1.1 配置文件自动提示功能消失解决方案
1.2 SpringBoot配置文件加载顺序(了解)application.properties > application.yml > application.yaml
1.3 注意事项SpringBoot核心配置文件名为application
SpringBoot内置属性过多,且所有属性集中在一起修改,在使用时,通过提示键 + 关键字修改属性
不同配置文件中相同配置按照加载优先级相互覆盖 ,不同配置文件中不容配置全部保留
2. yaml2.1 yaml 的简单说明
YAML(YAML Ain’t Markup Language),一种数据序列化格式
优点:
容易阅读
容易与脚本语言交互
以数据为核心,重数据轻格式
YAML文件扩展名
.yml(主流)
.yaml
2.2 yaml 语法规则
大小写敏感
属性层级关系使用多行描述,每行结尾使用冒号结束
使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分 ...
1. SpringBoot 入门
1. SpringBoot 简介SpringBoot是由Pivotal团队提供的全新框架,可以帮助我们开发基于Spring的、独立的、生产级的应用程序。
其中SpringBoot的官网是:Spring Boot Reference Documentation
SpringBoot的主要目标是:
为所有Spring开发提供更快的入门体验
开箱即用,提供了自动配置
提供一系列大型项目通用的非功能性特性
外部化配置、嵌入式服务器、安全性、健康检查、指标
完全不需要代码生成,也不需要XML配置
注意:SpringBoot 并不是Spring功能上的增强,而是提供了一种快速使用Spring的方式。
2. SpringBoot入门2.1 入门案例开发步骤这里先采用的是手动创建的方式
新建Maven项目
引入依赖
123456789101112<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter ...
第09章 连接池
连接池的理解不使用连接池有啥问题Connection对象是重量级对象,创建Connection对象就是建立两个进程之间的通信,非常耗费资源。一次完整的数据库操作,大部分时间都耗费在连接对象的创建。第一个问题:每一次请求都创建一个Connection连接对象,效率较低。第二个问题:连接对象的数量无法限制。如果连接对象的数量过高,会导致mysql数据库服务器崩溃。
使用连接池来解决什么问题提前创建好N个连接对象,将其存放到一个集合中(这个集合就是一个缓存)。用户请求时,需要连接对象直接从连接池中获取,不需要创建连接对象,因此效率较高。另外,连接对象只能从连接池中获取,如果没有空闲的连接对象,只能等待,这样连接对象创建的数量就得到了控制。
javax.sql.DataSource连接池有很多,不过所有的连接池都实现了 javax.sql.DataSource 接口。也就是说我们程序员在使用连接池的时候,不管使用哪家的连接池产品,只要面向javax.sql.DataSource接口调用方法即可。
另外,实际上我们也可以自定义属于我们自己的连接池。只要实现DataSource接口即 ...
第08章 DAO
什么是DAODAO是:Data Access Object,翻译为:数据访问对象。一种JavaEE的设计模式,专门用来做数据增删改查的类。在实际的开发中,通常我们会将数据库的操作封装为一个单独的DAO去完成,这样做的目的是:提高代码的复用性,另外也可以降低程序的耦合度,提高扩展力。例如:操作用户数据的叫做UserDao,操作员工数据的叫做EmployeeDao,操作产品数据的叫做ProductDao,操作订单数据的叫做OrderDao等。
使用DAO改造员工信息管理定义Employee封装数据Employee类是一个Java Bean,专门用来封装员工的信息:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990package com.powernode.jdbc.beans;/** * Cl ...
第07章 JDBC实现员工管理
数据库表的准备1234567891011121314151617181920drop table if exists t_employee;create table t_employee( id bigint primary key auto_increment, name varchar(255), job varchar(255), hiredate char(10), salary decimal(10,2), address varchar(255));insert into t_employee(name,job,hiredate,salary,address) values('张三','销售员','1999-10-11',5000.0,'北京朝阳');insert into t_employee(name,job,hiredate,salary,address) values('李四','编码人员','1998-02-12 ...
第06章 JDBC调用存储过程
在MySQL中创建存储过程1234567891011create procedure mypro(in n int, out sum int)begin set sum := 0; repeat if n % 2 = 0 then set sum := sum + n; end if; set n := n - 1; until n <= 0 end repeat;end;
使用JDBC代码调用存储过程1234567891011121314151617181920212223242526272829303132333435363738394041package com.powernode.jdbc;import com.powernode.jdbc.utils.DbUtils;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.SQLException;import java.sql.Types;/** * ClassName: JDBCTest21 ...
第05章 JDBC事务
什么是事务事务是一个完整的业务,在这个业务中需要多条DML语句共同联合才能完成,而事务可以保证多条DML语句同时成功或者同时失败,从而保证数据的安全。例如A账户向B账户转账一万,A账户减去一万(update)和B账户加上一万(update),必须同时成功或者同时失败,才能保证数据是正确的。
另请参见老杜发布的2024版MySQL教学视频。在本套教程中详细讲解了数据库事务机制。
使用转账案例演示事务表和数据的准备t_act表:
实现转账功能1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package com.powernode.jdbc;import com.powernode.jdbc.utils.DbUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;/** * ClassName: JDBCTest ...
第04章 SQL注入
SQL注入问题SQL注入问题说的是:用户输入的信息中含有SQL语句关键字,和程序中的SQL语句进行字符串拼接,导致程序中的SQL语句改变了原意。(SQL注入问题是一种系统安全问题)接下来我们来演示一下SQL注入问题。以用户登录为例。使用表:t_user业务描述:系统启动后,给出登录页面,用户可以输入用户名和密码,用户名和密码全部正确,则登录成功,反之,则登录失败。分析一下要执行怎样的SQL语句?是不是这样的?
1select * from t_user where name = 用户输入的用户名 and password = 用户输入的密码;
如果以上的SQL语句能够查询到结果,说明用户名和密码是正确的,则登录成功。如果查不到,说明是错误的,则登录失败。代码实现如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475package com.power ...
第03章 JDBC的查询
JDBC的查询操作ResultSet 是 JDBC (Java 数据库连接) API 提供的接口,它用于表示 SQL 查询的结果集。ResultSet 对象中包含了查询结果的所有行,可以通过 next() 方法逐行地获取并处理每一行的数据。它最常用于执行 SELECT 语句查询出来的结果集。
ResultSet 的遍历是基于 JDBC 的流式处理机制的,即一行一行地获取结果,避免将所有结果全部取出后再进行处理导致内存溢出问题。
在使用 ResultSet 遍历查询结果时,一般会采用以下步骤:
执行 SQL 查询,获取 ResultSet 对象。
使用 ResultSet 的 next() 方法移动游标指向结果集的下一行,判断是否有更多的数据行。
如果有更多的数据行,则使用 ResultSet 对象提供的 getXXX() 方法获取当前行的各个字段(XXX 表示不同的数据类型)。例如,getLong(“id”) 方法用于获取当前行的 id 列对应的 Long 类型的值。
处理当前行的数据,例如将其存入 Java 对象中。
重复执行步骤 2~4,直到结果集中的所有行都被遍历完毕。
调 ...
第02章 JDBC的新增修改删除
JDBC编程六步JDBC编程的步骤是很固定的,通常包含以下六步:
第一步:注册驱动
作用一:将 JDBC 驱动程序从硬盘上的文件系统中加载到内存中。
作用二:使得 DriverManager 可以通过一个统一的接口来管理该驱动程序的所有连接操作。
第二步:获取数据库连接
获取java.sql.Connection对象,该对象的创建标志着mysql进程和jvm进程之间的通道打开了。
第三步:获取数据库操作对象
获取java.sql.Statement对象,该对象负责将SQL语句发送给数据库,数据库负责执行该SQL语句。
第四步:执行SQL语句
执行具体的SQL语句,例如:insert delete update select等。
第五步:处理查询结果集
如果之前的操作是DQL查询语句,才会有处理查询结果集这一步。
执行DQL语句通常会返回查询结果集对象:java.sql.ResultSet。
对于ResultSet查询结果集来说,通常的操作是针对查询结果集进行结果集的遍历。
第六步:释放资源
释放资源可以避免资源的浪费。在 JDBC 编程中,每次使用完 Conn ...