Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
student
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
wzj
student
Commits
f94b4edb
提交
f94b4edb
authored
7月 07, 2022
作者:
wzj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
11
上级
89703846
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
568 行增加
和
19 行删除
+568
-19
StudentImpl.java
src/main/java/com/example/demo/service/Impl/StudentImpl.java
+568
-19
没有找到文件。
src/main/java/com/example/demo/service/Impl/StudentImpl.java
浏览文件 @
f94b4edb
...
@@ -11,10 +11,14 @@ import org.springframework.data.domain.Page;
...
@@ -11,10 +11,14 @@ import org.springframework.data.domain.Page;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
javax.persistence.criteria.*
;
import
java.util.Optional
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -22,40 +26,42 @@ import java.util.Optional;
...
@@ -22,40 +26,42 @@ import java.util.Optional;
*/
*/
@Service
@Service
@Slf4j
@Slf4j
//0-10 10-20 20-30
public
class
StudentImpl
implements
StudentService
{
public
class
StudentImpl
implements
StudentService
{
@Autowired
@Autowired
private
StudentDao
studentDao
;
private
StudentDao
studentDao
;
String
firstName
=
"张王李温"
;
String
studentName
=
"把豆腐干大范甘迪"
;
String
man
=
"男女"
;
@Override
@Override
public
Student
findOne
(
Integer
id
)
{
public
Student
findOne
(
Integer
id
)
{
//根据iD保存
Optional
<
Student
>
byId
=
studentDao
.
findById
(
id
);
Optional
<
Student
>
byId
=
studentDao
.
findById
(
id
);
if
(
byId
.
isPresent
()){
return
byId
.
orElse
(
null
);
Student
student
=
byId
.
get
();
return
student
;
}
return
null
;
}
}
@Override
@Override
public
List
<
Student
>
findAll
()
{
public
List
<
Student
>
findAll
()
{
//保存全部
return
studentDao
.
findAll
();
return
studentDao
.
findAll
();
}
}
@Override
@Override
public
Page
<
Student
>
findTj
(
Student
student
)
{
public
Page
<
Student
>
findTj
(
Student
student
)
{
PredicateBuilder
<
Student
>
builder
=
Specifications
.
and
();
PredicateBuilder
<
Student
>
builder
=
Specifications
.
and
();
//动态查询
//动态查询
builder
.
eq
(
student
.
getId
()
!=
null
,
"id"
,
student
.
getId
());
builder
.
eq
(
student
.
getId
()
!=
null
,
"id"
,
student
.
getId
());
builder
.
eq
(
student
.
getName
()
!=
null
,
"name"
,
student
.
getName
());
builder
.
eq
(
student
.
getName
()
!=
null
,
"name"
,
student
.
getName
());
builder
.
eq
(
student
.
getAge
()
!=
null
,
"age"
,
student
.
getAge
());
builder
.
eq
(
student
.
getAge
()
!=
null
,
"age"
,
student
.
getAge
());
builder
.
eq
(
student
.
getGender
()
!=
null
,
"gender"
,
student
.
getGender
());
builder
.
eq
(
student
.
getGender
()
!=
null
,
"gender"
,
student
.
getGender
());
builder
.
eq
(
student
.
getHeight
()
!=
null
,
"height"
,
student
.
getHeight
());
builder
.
eq
(
student
.
getHeight
()
!=
null
,
"height"
,
student
.
getHeight
());
//字段排序 分页
//字段排序 分页
Pageable
pageable1
=
PageRequest
.
of
(
0
,
8
,
Sort
.
by
(
"id"
));
Pageable
pageable1
=
PageRequest
.
of
(
0
,
8
,
Sort
.
by
(
"id"
));
//得到的是 分页的对象 并且里面的对象是有顺序的
//得到的是 分页的对象 并且里面的对象是有顺序的
return
studentDao
.
findAll
(
builder
.
build
(),
pageable1
);
return
studentDao
.
findAll
(
builder
.
build
(),
pageable1
);
...
@@ -63,25 +69,567 @@ public class StudentImpl implements StudentService {
...
@@ -63,25 +69,567 @@ public class StudentImpl implements StudentService {
@Override
@Override
public
Student
saveAll
(
Student
student
)
{
public
Student
saveAll
(
Student
student
)
{
//新增全部
return
studentDao
.
save
(
student
);
return
studentDao
.
save
(
student
);
}
}
@Override
@Override
public
List
<
Student
>
findFuzzy
(
String
name
)
{
public
List
<
Student
>
findFuzzy
(
String
name
)
{
//模糊查询
return
studentDao
.
findByNameContaining
(
name
);
return
studentDao
.
findByNameContaining
(
name
);
}
}
@Override
@Override
public
void
deleteOne
(
Integer
id
)
{
public
void
deleteOne
(
Integer
id
)
{
Student
student
=
studentDao
.
findById
(
id
).
get
();
//根据ID删除
Student
student
=
studentDao
.
findById
(
id
).
get
();
studentDao
.
delete
(
student
);
studentDao
.
delete
(
student
);
}
}
@Override
@Override
public
void
deleteAll
(
Student
student
)
{
public
void
deleteAll
()
{
studentDao
.
delete
(
student
);
//删除全部
studentDao
.
deleteAll
();
}
@Override
public
Student
saveRandomly
()
{
//创建学生对象
//随机生成出生年月日
Student
student
=
new
Student
();
//对学生对象进行赋值 name age gender height
String
fist
=
getRandomString
(
firstName
,
1
);
String
name
=
getRandomString
(
studentName
,
2
);
student
.
setName
(
fist
+
name
);
Integer
randomAge
=
randomAge
();
student
.
setAge
(
randomAge
+
20
);
String
gender
=
getRandomString
(
man
,
1
);
student
.
setGender
(
gender
);
student
.
setHeight
(
randomStringHeight
()
+
140
+
""
);
Random
rndYear
=
new
Random
();
int
year
=
rndYear
.
nextInt
(
22
)+
2000
;
Random
rndMonth
=
new
Random
();
int
month
=
rndMonth
.
nextInt
(
12
)+
1
;
String
s1
=
month
+
""
;
if
(
s1
.
length
()==
1
){
s1
=
"0"
+
month
;
}
Random
rndDay
=
new
Random
();
int
Day
=
rndDay
.
nextInt
(
30
)+
1
;
String
s2
=
Day
+
""
;
if
(
s2
.
length
()==
1
){
s2
=
"0"
+
Day
;
}
String
s
=
year
+
"-"
+
s1
+
"-"
+
s2
;
DateTimeFormatter
df
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
LocalDate
date
=
LocalDate
.
parse
(
s
,
df
);
student
.
setDate
(
date
);
//然后对学生对象进行保存
//随机保存姓名年龄等字段
return
studentDao
.
save
(
student
);
}
@Override
//查看各个年龄段个数
public
Map
<
String
,
List
<
Student
>>
findDigit
()
{
//新建一个map用来存键值 TreeMap<>();是map排序(升序)
Map
<
String
,
List
<
Student
>>
map
=
new
TreeMap
<>();
//先查询全部的Student 的age年龄
List
<
Student
>
result
=
studentDao
.
findAll
();
//遍历输出所有的age的字段
result
.
forEach
(
student
->
{
//获取age字段
int
age
=
student
.
getAge
();
//然后对age进行分组分为 0-10 11-20 21-30 31-40...
//然后设置查询条件
if
(
age
<=
20
){
//判断map里面的键值在0到20之间的
if
(
map
.
containsKey
(
"0-20"
)){
//新建一个集合来获取map中的指定键值
List
<
Student
>
students
=
map
.
get
(
"0-20"
);
//把得到的小于等20的student字段添加到students集合中
students
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"0-20"
,
students
);
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"0-20"
,
students
);
}
}
else
if
(
age
<=
40
){
if
(
map
.
containsKey
(
"21-40"
)){
List
<
Student
>
students
=
map
.
get
(
"21-40"
);
students
.
add
(
student
);
map
.
put
(
"21-40"
,
students
);
}
else
{
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"21-40"
,
students
);
}
}
else
if
(
age
<=
60
)
{
if
(
map
.
containsKey
(
"41-60"
))
{
List
<
Student
>
students
=
map
.
get
(
"41-60"
);
students
.
add
(
student
);
map
.
put
(
"41-60"
,
students
);
}
else
{
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"41-60"
,
students
);
}
}
else
if
(
age
<=
80
)
{
if
(
map
.
containsKey
(
"61-80"
))
{
List
<
Student
>
students
=
map
.
get
(
"61-80"
);
students
.
add
(
student
);
map
.
put
(
"61-80"
,
students
);
}
else
{
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"61-80"
,
students
);
}
}
else
if
(
age
<=
100
)
{
if
(
map
.
containsKey
(
"81-100"
))
{
List
<
Student
>
students
=
map
.
get
(
"81-100"
);
students
.
add
(
student
);
map
.
put
(
"81-100"
,
students
);
}
else
{
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"81-100"
,
students
);
}
}
});
return
map
;
}
@Override
//查看各个年龄段男女的个数
public
Map
<
String
,
List
<
Student
>>
findGender
()
{
//新建一个map用来存键值 TreeMap<>();是map排序(升序)
Map
<
String
,
List
<
Student
>>
map
=
new
TreeMap
<>();
//先查询全部的Student 的age年龄
List
<
Student
>
result
=
studentDao
.
findAll
();
//遍历输出所有的age的字段
result
.
forEach
(
student
->
{
int
age
=
student
.
getAge
();
if
(
age
<=
20
)
{
if
(
map
.
containsKey
(
"0-20"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
students
=
map
.
get
(
"0-20"
);
//把得到的小于等20的student字段添加到students集合中
students
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"0-20"
,
students
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"0-20"
,
students
);
}
}
if
(
age
>=
21
&&
age
<=
40
)
{
if
(
map
.
containsKey
(
"21-40"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
students
=
map
.
get
(
"21-40"
);
//把得到的小于等20的student字段添加到students集合中
students
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"21-40"
,
students
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"21-40"
,
students
);
}
}
if
(
age
>=
41
&&
age
<=
60
)
{
if
(
map
.
containsKey
(
"41-60"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
students
=
map
.
get
(
"41-60"
);
//把得到的小于等20的student字段添加到students集合中
students
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"41-60"
,
students
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"41-60"
,
students
);
}
}
if
(
age
>=
61
&&
age
<=
80
)
{
if
(
map
.
containsKey
(
"61-80"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
students
=
map
.
get
(
"61-80"
);
//把得到的小于等20的student字段添加到students集合中
students
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"61-80"
,
students
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"61-80"
,
students
);
}
}
if
(
age
>=
81
&&
age
<=
100
)
{
if
(
map
.
containsKey
(
"81-100"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
students
=
map
.
get
(
"81-100"
);
//把得到的小于等20的student字段添加到students集合中
students
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"81-100"
,
students
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
students
=
new
ArrayList
<>();
students
.
add
(
student
);
map
.
put
(
"81-100"
,
students
);
}
}
});
return
map
;
}
@Override
//查看男女各个年龄段的个数
public
Map
<
String
,
List
<
Student
>>
findDigitGender
()
{
Map
<
String
,
List
<
Student
>>
map
=
new
HashMap
<>();
//先查询全部的Student 的age年龄
List
<
Student
>
result
=
studentDao
.
findAll
();
//遍历输出所有的age的字段
result
.
forEach
(
student
->
{
String
gender
=
student
.
getGender
();
int
age
=
student
.
getAge
();
if
(
age
<=
20
&&
gender
.
equals
(
"男"
))
{
if
(
map
.
containsKey
(
"男:0-20"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentMan
=
map
.
get
(
"男:0-20"
);
//把得到的小于等20的student字段添加到students集合中
studentMan
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"男:0-20"
,
studentMan
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentMan
=
new
ArrayList
<>();
studentMan
.
add
(
student
);
map
.
put
(
"男:0-20"
,
studentMan
);
}
}
if
(
age
<=
20
&&
gender
.
equals
(
"女"
))
{
if
(
map
.
containsKey
(
"女:0-20"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentWoman
=
map
.
get
(
"女:0-20"
);
//把得到的小于等20的student字段添加到students集合中
studentWoman
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"女:0-20"
,
studentWoman
);
if
(
map
.
containsKey
(
"女"
))
{
List
<
Student
>
genders
=
map
.
get
(
"女"
);
map
.
put
(
"女"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentWoman
=
new
ArrayList
<>();
studentWoman
.
add
(
student
);
map
.
put
(
"女:0-20"
,
studentWoman
);
}
}
if
(
age
>
21
&&
age
<=
40
&&
gender
.
equals
(
"男"
))
{
if
(
map
.
containsKey
(
"男:21-40"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentMan
=
map
.
get
(
"男:21-40"
);
//把得到的小于等20的student字段添加到students集合中
studentMan
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"男:21-40"
,
studentMan
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentMan
=
new
ArrayList
<>();
studentMan
.
add
(
student
);
map
.
put
(
"男:21-40"
,
studentMan
);
}
}
if
(
age
>
21
&&
age
<=
40
&&
gender
.
equals
(
"女"
))
{
if
(
map
.
containsKey
(
"女:21-40"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentWoman
=
map
.
get
(
"女:21-40"
);
//把得到的小于等20的student字段添加到students集合中
studentWoman
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"女:21-40"
,
studentWoman
);
if
(
map
.
containsKey
(
"女"
))
{
List
<
Student
>
genders
=
map
.
get
(
"女"
);
map
.
put
(
"女"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentWoman
=
new
ArrayList
<>();
studentWoman
.
add
(
student
);
map
.
put
(
"女:21-40"
,
studentWoman
);
}
}
if
(
age
>
41
&&
age
<=
60
&&
gender
.
equals
(
"男"
))
{
if
(
map
.
containsKey
(
"男:41-60"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentMan
=
map
.
get
(
"男:41-60"
);
//把得到的小于等20的student字段添加到students集合中
studentMan
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"男:41-60"
,
studentMan
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentMan
=
new
ArrayList
<>();
studentMan
.
add
(
student
);
map
.
put
(
"男:41-60"
,
studentMan
);
}
}
if
(
age
>
41
&&
age
<=
60
&&
gender
.
equals
(
"女"
))
{
if
(
map
.
containsKey
(
"女:41-60"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentWoman
=
map
.
get
(
"女:41-60"
);
//把得到的小于等20的student字段添加到students集合中
studentWoman
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"女:41-60"
,
studentWoman
);
if
(
map
.
containsKey
(
"女"
))
{
List
<
Student
>
genders
=
map
.
get
(
"女"
);
map
.
put
(
"女"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentWoman
=
new
ArrayList
<>();
studentWoman
.
add
(
student
);
map
.
put
(
"女:41-60"
,
studentWoman
);
}
}
if
(
age
>
61
&&
age
<=
80
&&
gender
.
equals
(
"男"
))
{
if
(
map
.
containsKey
(
"男:61-80"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentMan
=
map
.
get
(
"男:61-80"
);
//把得到的小于等20的student字段添加到students集合中
studentMan
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"男:61-80"
,
studentMan
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentMan
=
new
ArrayList
<>();
studentMan
.
add
(
student
);
map
.
put
(
"男:61-80"
,
studentMan
);
}
}
if
(
age
>
61
&&
age
<=
80
&&
gender
.
equals
(
"女"
))
{
if
(
map
.
containsKey
(
"女:61-80"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentWoman
=
map
.
get
(
"女:61-80"
);
//把得到的小于等20的student字段添加到students集合中
studentWoman
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"女:61-80"
,
studentWoman
);
if
(
map
.
containsKey
(
"女"
))
{
List
<
Student
>
genders
=
map
.
get
(
"女"
);
map
.
put
(
"女"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentWoman
=
new
ArrayList
<>();
studentWoman
.
add
(
student
);
map
.
put
(
"女:61-80"
,
studentWoman
);
}
}
if
(
age
>
81
&&
age
<=
100
&&
gender
.
equals
(
"男"
))
{
if
(
map
.
containsKey
(
"男:81-100"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentMan
=
map
.
get
(
"男:81-100"
);
//把得到的小于等20的student字段添加到students集合中
studentMan
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"男:81-100"
,
studentMan
);
if
(
map
.
containsKey
(
"男"
))
{
List
<
Student
>
genders
=
map
.
get
(
"男"
);
map
.
put
(
"男"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentMan
=
new
ArrayList
<>();
studentMan
.
add
(
student
);
map
.
put
(
"男:81-100"
,
studentMan
);
}
}
if
(
age
>
81
&&
age
<=
100
&&
gender
.
equals
(
"女"
))
{
if
(
map
.
containsKey
(
"女:81-100"
))
{
//新建一个集合来获取map中的指定键值
List
<
Student
>
studentWoman
=
map
.
get
(
"女:81-100"
);
//把得到的小于等20的student字段添加到students集合中
studentWoman
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
"女:81-100"
,
studentWoman
);
if
(
map
.
containsKey
(
"女"
))
{
List
<
Student
>
genders
=
map
.
get
(
"女"
);
map
.
put
(
"女"
,
genders
);
}
}
else
{
//如果没有数据就新建一个集合
List
<
Student
>
studentWoman
=
new
ArrayList
<>();
studentWoman
.
add
(
student
);
map
.
put
(
"女:81-100"
,
studentWoman
);
}
}
});
return
map
;
}
//输出名字的时候三个字的名字第三个字打*
//两个字的名字第二个字打*
@Override
//替换最后一个字为*
public
List
<
Student
>
replaceName
()
{
List
<
Student
>
students
=
studentDao
.
findAll
();
students
.
forEach
(
student
->
{
String
fist
=
getRandomString
(
firstName
,
1
);
String
name
=
getRandomString
(
studentName
,
2
);
String
replaceTwo
=
name
.
substring
(
0
,
name
.
length
()
-
1
)+
"*"
;
student
.
setName
(
fist
+
replaceTwo
);
});
return
students
;
}
@Override
public
List
<
Student
>
replace
()
{
//替换中间字为*
List
<
Student
>
s
=
studentDao
.
findAll
();
s
.
forEach
(
student
->
{
String
fist
=
getRandomString
(
firstName
,
1
);
String
name
=
getRandomString
(
studentName
,
2
);
StringBuilder
sb
=
new
StringBuilder
(
name
);
sb
.
replace
(
0
,
1
,
"*"
);
student
.
setName
(
fist
+
sb
);
});
return
s
;
}
@Override
public
Map
<
String
,
List
<
Student
>>
findYear
()
{
//按年过滤出每年有那些人
Map
<
String
,
List
<
Student
>>
collect
=
studentDao
.
findAll
().
stream
().
collect
(
Collectors
.
groupingBy
(
student
->
{
DateTimeFormatter
df
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
LocalDate
date
=
student
.
getDate
();
String
strDate
=
date
.
format
(
df
);
return
strDate
.
substring
(
0
,
4
);
}));
//按年过滤出每年有那些人
Map
<
String
,
List
<
Student
>>
map
=
new
HashMap
<>();
List
<
Student
>
students
=
studentDao
.
findAll
();
students
.
forEach
(
student
->
{
DateTimeFormatter
df
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
LocalDate
date
=
student
.
getDate
();
String
strDate
=
date
.
format
(
df
);
String
s
=
strDate
.
substring
(
0
,
4
);
if
(
map
.
containsKey
(
s
)){
List
<
Student
>
stu
=
map
.
get
(
s
);
//把得到的小于等20的student字段添加到students集合中
stu
.
add
(
student
);
//插入"0-20"和students
map
.
put
(
s
,
stu
);
}
else
{
List
<
Student
>
list
=
new
ArrayList
<>();
//如果没有数据就新建一个集合
list
.
add
(
student
);
map
.
put
(
s
,
list
);
}
});
return
map
;
}
@Override
//分页查询 模糊查询名字 根据年份查询人数
public
Page
<
Student
>
findNameYear
(
String
name
,
Integer
page
,
Integer
pageSize
,
Integer
year
)
{
Specification
<
Student
>
studentSpecification
=
new
Specification
<
Student
>()
{
@Override
public
Predicate
toPredicate
(
Root
<
Student
>
root
,
CriteriaQuery
<?>
query
,
CriteriaBuilder
criteriaBuilder
)
{
Path
adminName
=
root
.
get
(
"name"
);
Predicate
predicate
=
criteriaBuilder
.
like
(
adminName
,
"%"
+
query
+
"%"
);
return
predicate
;
}
};
PageRequest
pageRequest
=
PageRequest
.
of
(
page
-
1
,
pageSize
);
Page
<
Student
>
page1
=
studentDao
.
findAll
(
studentSpecification
,
pageRequest
);
return
page1
;
}
public
static
String
getRandomString
(
String
str
,
Integer
length
){
Random
random
=
new
Random
();
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
length
;
i
++){
int
number
=
random
.
nextInt
(
str
.
length
());
sb
.
append
(
str
.
charAt
(
number
));
}
return
sb
.
toString
();
}
public
static
Integer
randomAge
(){
long
round
=
Math
.
round
(
Math
.
random
()
*
50
);
return
new
Long
(
round
).
intValue
();
}
public
static
Integer
randomStringHeight
(){
long
round
=
Math
.
round
(
Math
.
random
()
*
50
);
return
new
Long
(
round
).
intValue
();
}
public
static
void
main
(
String
[]
args
)
{
}
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论