Keep and carry on.

IDEA创建Java EE项目,使用Spring + Spring MVC + MyBatis框架,使用maven管理依赖。项目当前的环境是:

  • Tomat 10.1.28
  • Maven 3.6.3
  • JDK 17

项目的功能:读取数据库的report表中的数据,返回一个List集合对象reportList在JSP页面上,使用EL表达式+JSTL标签库,遍历集合,显示每一条report信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h3>欢迎登录,${sessionScope.get("user").name}</h3>

<div>
<table>
<c:forEach items="${reportList}" var="report">
<tr>
<td>报告编号:</td><td>${report.id}</td>
<td>报告名称:</td><td>${report.reportName}</td>
<td>报告内容:</td><td>${report.reportContext}</td>
<td>报告截止提交日期:</td><td>${report.deadlineTime}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
Read More

在Minio文件服务器部署成功后(参考上篇文章《Minio文件服务器:安装]》)接下来我们通过SpringBoot框架写一个接口,来实现文件的上传功能:文件通过SpringBoot接口,上传到Minio文件服务器。并且,如果上传的文件是图片类型,也要实现能够预览上传后的图片。

Read More
post @ 2024-10-26

目前,云中有许多文件存储选项,如 Aws S3、Google Storage 等。而且,很少有人有预算购买云服务,只是为了在云上保存文件。因此,在本教程中,我们将在 Centos 7 上设置 minio 服务器,并设置 Nginx 以安全连接 minio 服务器和您的应用程序

Read More

背景:我想校验一个指定的String字符串,是否存在于另一个String数组中,选择Arrays.binarySearch()方法实现,代码如下:

1
2
3
4
5
6
String[] item = {"0","1","16","1591","1594","1596"};
if (Arrays.binarySearch(item, "1591") > 0) {
System.out.println("exists");
} else {
System.out.println("not exists");
}

运行结果:

1
not exists

很直观的能看到item数组里面存在字符串1591,为什么程序运行的结果却是找不到该元素呢?

Read More

泛型定义以及其带来的好处

泛型使类型(类和接口)能够在定义类、接口和方法时成为参数。与方法声明中使用的更熟悉的形式参数非常相似,类型参数为您提供了一种通过不同输入重复使用相同代码的方法。区别在于形式参数的输入是值,而类型参数的输入是类型。

使用泛型的代码比非泛型代码有很多好处:

  1. 编译时更强的类型检查。 Java 编译器对泛型代码应用强类型检查,如果代码违反类型安全,则会发出错误。修复编译时错误比修复运行时错误更容易,后者很难发现。
Read More

1.Double类型

在Java中,将两个double值转换为String类型,然后使用equals方法进行比较是一个常见的做法,但是这种方法并不是完全可靠,特别是在涉及浮点数的精度时仍然可能会遇到问题。

浮点数在内部以二进制表示,有时会存在舍入误差,这可能会导致两个在数值上非常接近的浮点数在转换为字符串后变得稍有不同。因此,尽管你可以使用字符串比较来避免直接比较浮点数时的精度问题,但这种方法并不是绝对可靠的。

Read More
post @ 2023-08-25

GROUP_CONCAT()函数

创建表person_info,并插入数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

CREATE TABLE `person_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`family` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;


INSERT INTO niffler.person_info (name, family) VALUES('张三', '张三爸');
INSERT INTO niffler.person_info (name, family) VALUES('张三', '张三妈');
INSERT INTO niffler.person_info (name, family) VALUES('李四', '李四爸');
INSERT INTO niffler.person_info (name, family) VALUES('李四', '李四妈');
INSERT INTO niffler.person_info (name, family) VALUES('李四', '李四大哥');
INSERT INTO niffler.person_info (name, family) VALUES('王二', '王二爷爷');
INSERT INTO niffler.person_info (name, family) VALUES('王二', '王二姐姐');
Read More

Integer经典面试问题:两个Integer对象都赋值为128,这两个对象比较是否相同?为什么?

回答这个问题,首先我们要知道,在Java中,当你写Integer a = 1; 实际上是调用了Java的自动装箱功能。这会将整数 1 自动装箱为Integer对象,然后将这个对象赋值给变量a。

自动装箱功能是由编译器自动插入的,实际上它相当于执行了如下的代码:

1
Integer a = Integer.valueOf(1);

这里的valueOf方法是Integer类的一个静态方法,它的作用就是将传入的参数(通常是基本数据类型)自动转换为对应的包装类对象。对于Integer类来说,就是将整数值转换为Integer对象。

Read More

InnoDB is a general-purpose storage engine that balances high reliability and high performance. In MySQL 8.0, InnoDB is the default MySQL storage engine. Unless you have configured a different default storage engine, issuing a CREATE TABLE statement without an ENGINE clause creates an InnoDB table.

InnoDB是一种平衡高可靠性和高性能的通用存储引擎。在MySQL 8.0中,InnoDB是MySQL默认的存储引擎。除非您配置了不同的默认存储引擎,否则发出不带 ENGINE 子句的 CREATE TABLE 语句将创建一个 InnoDB 表。

Read More

GROUP_CONCAT()函数输出的结果,发现被截取了一部分,并没有显示完整,原来GROUP_CONCAT() 默认的输出长度为1024字节,超出的部分会被截掉不显示。

Read More
⬆︎TOP