Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
Mybatis Jpa Extra
提交
d67e13c7
M
Mybatis Jpa Extra
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
Mybatis Jpa Extra
8 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
Mybatis Jpa Extra
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d67e13c7
编写于
8月 05, 2023
作者:
M
MaxKey
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update README.md
上级
18aecef6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
169 addition
and
169 deletion
+169
-169
README.md
README.md
+169
-169
未找到文件。
README.md
浏览文件 @
d67e13c7
...
...
@@ -2,9 +2,9 @@
**MyBatis JPA Extra**
对MyBatis扩展JPA功能
1.
Jakarta JPA 3注释
**简化CUID操作**
;
2.
Interceptor实现数据库
**SELECT分页查询**
;
3.
**链式**
Query查询条件构造器;
4.
提供starter,
**简化SpringBoot集成**
;
...
...
@@ -40,33 +40,33 @@
@Entity
@Table
(
name
=
"STUDENTS"
)
public
class
Students
extends
JpaEntity
implements
Serializable
{
@Id
@Column
@GeneratedValue
private
String
id
;
@Column
private
String
stdNo
;
@Column
private
String
stdName
;
@Column
@ColumnDefault
(
"'M'"
)
private
String
stdGender
;
@Column
private
int
stdAge
;
@Column
private
String
stdMajor
;
@Column
private
String
stdClass
;
@Column
private
byte
[]
images
;
@Column
(
insertable
=
false
)
@GeneratedValue
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Id
@Column
@GeneratedValue
private
String
id
;
@Column
private
String
stdNo
;
@Column
private
String
stdName
;
@Column
@ColumnDefault
(
"'M'"
)
private
String
stdGender
;
@Column
private
int
stdAge
;
@Column
private
String
stdMajor
;
@Column
private
String
stdClass
;
@Column
private
byte
[]
images
;
@Column
(
insertable
=
false
)
@GeneratedValue
@Temporal
(
TemporalType
.
TIMESTAMP
)
private
LocalDateTime
modifyDate
;
@ColumnLogic
@Column
(
name
=
"is_deleted"
)
private
int
isDeleted
;
//getter setter
@ColumnLogic
@Column
(
name
=
"is_deleted"
)
private
int
isDeleted
;
//getter setter
}
```
## 2、基本操作
...
...
@@ -74,64 +74,64 @@ public class Students extends JpaEntity implements Serializable{
## 2.1、CURD
```
java
//新增数据
@Test
void
insert
()
throws
Exception
{
Students
student
=
new
Students
();
student
.
setStdNo
(
"10024"
);
student
.
setStdGender
(
"M"
);
student
.
setStdName
(
"司马昭"
);
student
.
setStdAge
(
20
);
student
.
setStdMajor
(
"政治"
);
student
.
setStdClass
(
"4"
);
service
.
insert
(
student
);
}
//查询数据实体并更新
@Test
void
update
()
throws
Exception
{
Students
student
=
service
.
get
(
"317d5eda-927c-4871-a916-472a8062df23"
);
student
.
setStdMajor
(
"政治"
);
service
.
update
(
student
);
}
//根据实体查询并更新
@Test
void
merge
()
throws
Exception
{
Students
student
=
new
Students
();
student
.
setStdMajor
(
"政治"
);
student
.
setStdClass
(
"4"
);
service
.
merge
(
student
);
}
//根据ID查询
@Test
void
get
()
throws
Exception
{
Students
student
=
service
.
get
(
"317d5eda-927c-4871-a916-472a8062df23"
);
}
//根据实体查询
@Test
void
query
()
throws
Exception
{
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
List
<
Students
>
listStudents
=
service
.
query
(
student
);
}
//查询所有记录
@Test
void
findAll
()
throws
Exception
{
List
<
Students
>
listStudents
=
service
.
findAll
();
}
//根据ID删除
@Test
void
remove
()
throws
Exception
{
service
.
remove
(
"921d3377-937a-4578-b1e2-92fb23b5e512"
);
}
//根据ID集合批量删除
@Test
void
batchDelete
()
throws
Exception
{
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
idList
.
add
(
"ab7422e9-a91a-4840-9e59-9d911257c918"
);
//...
service
.
deleteBatch
(
idList
);
}
//新增数据
@Test
void
insert
()
throws
Exception
{
Students
student
=
new
Students
();
student
.
setStdNo
(
"10024"
);
student
.
setStdGender
(
"M"
);
student
.
setStdName
(
"司马昭"
);
student
.
setStdAge
(
20
);
student
.
setStdMajor
(
"政治"
);
student
.
setStdClass
(
"4"
);
service
.
insert
(
student
);
}
//查询数据实体并更新
@Test
void
update
()
throws
Exception
{
Students
student
=
service
.
get
(
"317d5eda-927c-4871-a916-472a8062df23"
);
student
.
setStdMajor
(
"政治"
);
service
.
update
(
student
);
}
//根据实体查询并更新
@Test
void
merge
()
throws
Exception
{
Students
student
=
new
Students
();
student
.
setStdMajor
(
"政治"
);
student
.
setStdClass
(
"4"
);
service
.
merge
(
student
);
}
//根据ID查询
@Test
void
get
()
throws
Exception
{
Students
student
=
service
.
get
(
"317d5eda-927c-4871-a916-472a8062df23"
);
}
//根据实体查询
@Test
void
query
()
throws
Exception
{
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
List
<
Students
>
listStudents
=
service
.
query
(
student
);
}
//查询所有记录
@Test
void
findAll
()
throws
Exception
{
List
<
Students
>
listStudents
=
service
.
findAll
();
}
//根据ID删除
@Test
void
remove
()
throws
Exception
{
service
.
remove
(
"921d3377-937a-4578-b1e2-92fb23b5e512"
);
}
//根据ID集合批量删除
@Test
void
batchDelete
()
throws
Exception
{
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
idList
.
add
(
"ab7422e9-a91a-4840-9e59-9d911257c918"
);
//...
service
.
deleteBatch
(
idList
);
}
//根据ID批量删除
@Test
void
batchDeleteByIds
()
throws
Exception
{
...
...
@@ -142,47 +142,47 @@ public class Students extends JpaEntity implements Serializable{
## 2.2、逻辑删除
```
java
//根据ID删除或者ID字符串分隔符,批量逻辑删除
@Test
void
logicDelete
()
throws
Exception
{
service
.
logicDelete
(
"2"
);
service
.
logicDelete
(
"2,639178432667713536"
);
}
//根据IDS批量逻辑删除
@Test
void
logicBatchDelete
()
throws
Exception
{
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
idList
.
add
(
"ab7422e9-a91a-4840-9e59-9d911257c918"
);
//...
service
.
logicDelete
(
idList
);
}
//根据IDS字符串和分割符批量逻辑删除
@Test
void
logicDeleteSplit
()
throws
Exception
{
service
.
logicDeleteSplit
(
"2,639178432667713536"
,
","
);
}
@Test
void
logicDelete
()
throws
Exception
{
service
.
logicDelete
(
"2"
);
service
.
logicDelete
(
"2,639178432667713536"
);
}
//根据IDS批量逻辑删除
@Test
void
logicBatchDelete
()
throws
Exception
{
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
idList
.
add
(
"ab7422e9-a91a-4840-9e59-9d911257c918"
);
//...
service
.
logicDelete
(
idList
);
}
//根据IDS字符串和分割符批量逻辑删除
@Test
void
logicDeleteSplit
()
throws
Exception
{
service
.
logicDeleteSplit
(
"2,639178432667713536"
,
","
);
}
```
## 2.3、Find查询和Qruey构造器
```
java
//SpringJDBC的查询方式 where StdNo = '10024' or StdNo = '10004'
@Test
void
find
()
throws
Exception
{
List
<
Students
>
listStudents
=
service
.
find
(
" StdNo = ? or StdNo = ? "
,
new
Object
[]{
"10024"
,
"10004"
},
new
int
[]{
Types
.
VARCHAR
,
Types
.
INTEGER
}
);
}
//根据链式条件构造器查询
//WHERE (stdMajor = '政治' and STDAGE > 30 and stdMajor in ( '政治' , '化学' ) or ( stdname = '周瑜' or stdname = '吕蒙' ) )
@Test
void
queryByCondition
()
throws
Exception
{
List
<
Students
>
listStudents
=
service
.
query
(
new
Query
().
eq
(
"stdMajor"
,
"政治"
).
and
().
gt
(
"STDAGE"
,
30
).
and
().
in
(
"stdMajor"
,
new
Object
[]{
"政治"
,
"化学"
})
.
or
(
new
Query
().
eq
(
"stdname"
,
"周瑜"
).
or
().
eq
(
"stdname"
,
"吕蒙"
)));
}
//SpringJDBC的查询方式 where StdNo = '10024' or StdNo = '10004'
@Test
void
find
()
throws
Exception
{
List
<
Students
>
listStudents
=
service
.
find
(
" StdNo = ? or StdNo = ? "
,
new
Object
[]{
"10024"
,
"10004"
},
new
int
[]{
Types
.
VARCHAR
,
Types
.
INTEGER
}
);
}
//根据链式条件构造器查询
//WHERE (stdMajor = '政治' and STDAGE > 30 and stdMajor in ( '政治' , '化学' ) or ( stdname = '周瑜' or stdname = '吕蒙' ) )
@Test
void
queryByCondition
()
throws
Exception
{
List
<
Students
>
listStudents
=
service
.
query
(
new
Query
().
eq
(
"stdMajor"
,
"政治"
).
and
().
gt
(
"STDAGE"
,
30
).
and
().
in
(
"stdMajor"
,
new
Object
[]{
"政治"
,
"化学"
})
.
or
(
new
Query
().
eq
(
"stdname"
,
"周瑜"
).
or
().
eq
(
"stdname"
,
"吕蒙"
)));
}
```
## 2.4、单表分页查询
...
...
@@ -216,7 +216,7 @@ public class Students extends JpaEntity implements Serializable{
@Test
void
fetchPageResults
()
throws
Exception
{
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
student
.
setStdGender
(
"M"
);
student
.
setPageSize
(
10
);
student
.
calculate
(
21
);
JpaPageResults
<
Students
>
results
=
service
.
fetchPageResults
(
student
);
...
...
@@ -236,63 +236,63 @@ public class Students extends JpaEntity implements Serializable{
```
xml
<mapper
namespace=
"org.apache.mybatis.jpa.test.dao.persistence.StudentsMapper"
>
<sql
id=
"sql_condition"
>
WHERE 1 =
1
<if
test=
"id != null"
>
AND ID =
'${id}'
</if>
<if
test=
"stdName != null and stdName != '' "
>
AND STDNAME like '%${stdName}%'
</if>
<if
test=
"stdGender != null and stdGender != '' "
>
AND STDGENDER =
#{stdGender}
</if>
<if
test=
"stdMajor != null"
>
<![CDATA[AND STDMAJOR
= #{stdMajor}]]>
</if>
</sql>
<sql
id=
"sql_condition"
>
WHERE 1 =
1
<if
test=
"id != null"
>
AND ID =
'${id}'
</if>
<if
test=
"stdName != null and stdName != '' "
>
AND STDNAME like '%${stdName}%'
</if>
<if
test=
"stdGender != null and stdGender != '' "
>
AND STDGENDER =
#{stdGender}
</if>
<if
test=
"stdMajor != null"
>
<![CDATA[AND STDMAJOR
= #{stdMajor}]]>
</if>
</sql>
<select
id=
"fetchPageResults"
parameterType=
"Students"
resultType=
"Students"
>
SELECT
ID
,
STDNO ,
STDNAME ,
STDGENDER ,
STDAGE ,
STDMAJOR ,
STDCLASS
FROM STUDENTS
<include
refid=
"sql_condition"
/>
SELECT
ID
,
STDNO ,
STDNAME ,
STDGENDER ,
STDAGE ,
STDMAJOR ,
STDCLASS
FROM STUDENTS
<include
refid=
"sql_condition"
/>
</select>
<select
id=
"fetchPageResults1"
parameterType=
"Students"
resultType=
"Students"
>
SELECT
ID
,
STDNO ,
STDNAME ,
STDGENDER ,
STDAGE ,
STDMAJOR ,
STDCLASS
FROM STUDENTS
<include
refid=
"sql_condition"
/>
SELECT
ID
,
STDNO ,
STDNAME ,
STDGENDER ,
STDAGE ,
STDMAJOR ,
STDCLASS
FROM STUDENTS
<include
refid=
"sql_condition"
/>
</select>
<select
id=
"queryBy"
parameterType=
"Students"
resultType=
"Students"
>
SELECT
ID
,
STDNO ,
STDNAME ,
STDGENDER ,
STDAGE ,
STDMAJOR ,
STDCLASS
FROM ROLES
<include
refid=
"sql_condition"
/>
SELECT
ID
,
STDNO ,
STDNAME ,
STDGENDER ,
STDAGE ,
STDMAJOR ,
STDCLASS
FROM ROLES
<include
refid=
"sql_condition"
/>
</select>
<delete
id=
"delete"
parameterType=
"Students"
>
DELETE FROM STUDENTS WHERE ID=#{id}
DELETE FROM STUDENTS WHERE ID=#{id}
</delete>
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录