Java后端开发时的一些实用技巧 全球视讯

本篇文章分别在2022年6月21日、2022年6月30日、2022年7月4日,被分成三篇学习摘要笔记,发表于某平台。主要是在2022年5月份至7月份开发工作过程中学习到的新知识和技巧,现转载至B站。

Linux-使用SSH从服务器下载或上传文件

利用scp传输文件,实现从远程服务器下载文件或上传文件到服务器上,本地使用unix(linux/mac)命令行完成操作 


【资料图】

1. 从远程服务器下载文件到本地

下载文件到本地的桌面

下载文件夹到本机 

下载文件夹到本地的桌面

2. 从本地上传到服务器上

JDBC-ResultSet对象

()

可以配合while()循环语句遍历数据库返回值内容。next()方法支持数据指针的下移。

(int or string)

注意列是从左至右编号的,并且从列 1 开始。同时,用作 getXXX 方法的输入的列名不区分大小写。

()

关于 ResultSet 中列的信息,可通过调用方法 得到。返回的 ResultSetMetaData 对象将给出其 ResultSet 对象各列的编号、类型和属性。

如果列名已知,但不知其索引,则可用方法 findColumn 得到其列号。

ResultSet指针

NULL结果值

使用 方法检查该次读取是否返回 JDBC NULL。

当使用 方法读取 JDBC NULL 时,方法 wasNull 将返回下列值之一:

Java null 值:对于返回 Java 对象的 getXXX 方法(例如 getString、getBigDecimal、getBytes、getDate、getTime、getTimestamp、getAsciiStream、getUnicodeStream、getBinaryStream、getObject 等)。

零值:对于 getByte、getShort、getInt、getLong、getFloat 和 getDouble。

false 值:对于 getBoolean。

可选结果集或多结果集

通常使用 executeQuery(它返回单个 ResultSet)或 executeUpdate(它可用于任何数据库修改语句,并返回更新行数)可执行 SQL 语句。

但有些情况下,应用程序在执行语句之前不知道该语句是否返回结果集。此外,有些已存储过程可能返回几个不同的结果集和/或更新计数。

为了适应这些情况,JDBC 提供了一种机制,允许应用程序执行语句,然后处理由结果集和更新计数组成的任意集合。这种机制的原理是首先调用一个完全通用的execute方法,然后调用另外三个方法,getResultSetgetUpdateCountgetMoreResults。这些方法允许应用程序一次一个地研究语句结果,并确定给定结果是 ResultSet 还是更新计数。

用户不必关闭 ResultSet;当产生它的 Statement 关闭、重新执行或用于从多结果序列中获取下一个结果时,该 ResultSet 将被 Statement 自动关闭。

getRow()用法

需要注意的一点是,getRow()并不是获取总行数,而是返回当前指针所在函数。

1. 判断ResultSet行数是否为0

ResultSet表示select语句的查询结果集。ResultSet对象具有指向其当前数据行的指针,最初,指针被置于第一行记录之前,通过next()方法可以将指针移动到下一行记录。next()方法在ResultSet对象没有一行记录时返回false,因此可以在while循环中使用它来遍历结果集,也可以利用该方法判断结果集是否为空。

2. 获取行数

Java-想要在psvm中调用本类里的方法

在psvm中实例化自身即可。

Java-FileWriter对象

文件写入对象。

Java-Stream流的常用方法count

Linux-javac使用技巧

问:javac脚本的时候,发生未找到引用的类、未找到符号的错误,但是明明import了。

解决:可能是因为要引用类和本类不在一个包里,并且你也是在本目录下执行的javac指令,编译时系统没有检测到此目录之外的java类,即使你import它了。你需要退出路径至该项目的根目录下执行javac指令。

Linux-nohup指令

使用nohup可以将脚本挂在后台运行(不能存在中文字符),&后缀参数也可以实现同样的效果。

Java-获取当前时间

方法一

方法二

Java-使用线程池来处理大数据/多任务

Java-读取文件(以行的形式)

Java-写入文件

JDBC-通过ResultSet了解数据库是否存在指定表

JDBC-获取表数据量

JDBC-获取表字段数

JDBC-Statement的各个execute类型的区别

ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象。

int executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。

boolean execute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet 。

execute是executeQuery和executeUpdate的综合.

AtomicInteger

原子操作在单个任务单元中执行,而不受其他操作的干扰。 在多线程环境中,原子操作是必需的,以避免数据不一致。

printStackTrace()

通过try catch异常帮助程序员了解实际问题发生的位置。深层次的输出异常调用,作用就是把原始错误信息打印出来。

ExecutorService()

接口位于 包中。该接口代表了一种异步执行机制,可以在后台并发执行多个任务。执行程序服务框架有助于在应用程序中创建和管理线程。执行器框架执行以下任务。

线程创建: Executor服务提供了很多线程创建的方法。这有助于并发运行应用程序。

线程管理: Executor 服务也有助于管理线程生命周期。在提交任务执行之前,我们不必担心线程是处于活动状态、忙碌状态还是死状态。

任务提交与执行: Executor 框架还提供了在线程池中提交任务的方法。它还提供了决定线程是否执行的权力。

额外知识点:newFixedThreadPool() 线程池

参考:/allway2/article/details/118793216

getColumnCount()

(SQLServerResultSetMetaData)列计数 返回int

getColumnName(int)

获取列名 返回string

(int,int)

截取字符串

split() 

根据匹配给定的正则表达式来拆分字符串。 

. 、 $、 | 和 * 等转义字符,必须得加 \。

注意:多个分隔符,可以用 | 作为连字符。

语法

参数

regex -- 正则表达式分隔符。

limit -- 分割的份数。

返回值

字符串数组。

(0,1)

例子:

concat ()

用于连接两个或多个数组。

ASC和DESC

select … ORDER BY xxx ASC(升序,默认就是,不需要写)/DESC(降序)

额外知识点:ExpireDate是失效时间的意思。

ResultSet

数据库结果集的数据表,通常通过执行查询数据库的语句生成。ResultSet是数据中查询结果返回的一种对象。

获取字段的值

ResultSet对象常用的一些方法

将光标移动到此 ResultSet对象中的给定行号。

将光标移动到这个 ResultSet对象的末尾,就在最后一行之后。

将光标移动到这个 ResultSet对象的正面,就在第一行之前。

取消对此 ResultSet对象中当前行的更新。

清除此 ResultSet对象上报告的所有警告。

ResultSet释放此 ResultSet对象的数据库和JDBC资源,而不是等待其自动关闭时发生。

从此 ResultSet对象和底层数据库中删除当前行。

将给定的 ResultSet列标签映射到其 ResultSet列索引。

将光标移动到此 ResultSet对象中的第一行。

将该 ResultSet对象的当前行中指定列的值作为Java编程语言中的 Array对象检索。

将此 ResultSet对象的当前行中指定列的值作为Java编程语言中的 Array对象检索

ResultSetMetaData

可以根据 () 方法获得 ResultSetMetaData

通过该对象可以得到表的结构,包括 列名,列的个数,列数据类型

获取列名

获取列个数

获得列类型

应用场景

获取每个列的值和对应的列名

shell语法初识

定义以开头:#!/bin/bash

#!用来声明脚本由什么shell解释,否则使用默认shell

单个"#"号代表注释当前行

加上可执行权限

三种执行方式的不同点(./ bash . )

./ :先按照 文件中#!指定的解析器解析

如果#!指定指定的解析器不存在 才会使用系统默认的解析器

bash :指明先用bash解析器解析

如果bash不存在 才会使用默认解析器

. 直接使用默认解析器解析

定义变量

引用变量

清除变量

read从键盘获取值

在一行上显示和添加提示 需要加上-p

readonly只读变量

echo内的双引号和单引号

双引号:可以解析变量的值

单引号:不能解析变量的值

想在PATH变量中 追加一个路径写法

export PATH=$PATH:/需要添加的路径

预设变量

shell直接提供无需定义的变量

案例

控制语句

格式一:

格式二:

条件测试

test命令:用于测试字符串、文件状态和数字 test命令有两种格式: test condition 或[ condition ](结果:1:否;0:是) 使用方括号时,要注意在条件两边加上空格。

文件测试

字符串测试

数值测试

符合语句测试

单百分号%和双百分号%%的作用

使用百分号将变量的内容从变量的后面删除,并从变量的尾部删除。

不同的是,一个%号表示从尾部最近的匹配删除,两个%%从尾部最远的匹配删除。同时支持使用通配符。

比如:

先声明一个变量:

使用一个百分号截取尾部bb

结果:

可以看到是截取了最后面的bbccdd。

使用两个百分号截取尾部bb

结果:

可以看到是截取的最前面的匹配的到的bb。

expr指令全解

expr命令可以实现数值运算、数值或字符串比较、字符串匹配、字符串提取、字符串长度计算等功能。它还具有几个特殊功能,判断变量或参数是否为整数、是否为空、是否为0等。

shell的时间参数含义

shell 中 “<”“>“ 与 “>>“ 的区别

“ > ” 在shell中代表的意义

“ > ” ,我们常用的用法是用来记录 log 日志,它也有其他的用法,如:

这是将 "hello world"写入到 日志中,但是如果中有内容的话,它会将其清空再重新写入,这个用法有点像写入文件时用的 "w" 用法。

“ >> ” 在shell中代表的意义

“ >> ”, 我们也是常用来记录 log 日志,但是它与 " > "还是有区别的,下面就来讲讲区别吧!

如:

这是将 hello world!写入到中,但是没有清空中原有的内容,而是追加到的末尾,这跟文件写入的 " a+ "一样。

“<”在shell中代表的意义

从文件中读取内容,然后作为输入。

关键词:
图片版权归原作者所有,如有侵权请联系我们,我们立刻删除。
新化月报网报料热线:886 2395@qq.com

相关文章

你可能会喜欢

最近更新

推荐阅读