Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
Mybatis Jpa Extra
提交
b87b4183
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 搜索 >>
提交
b87b4183
编写于
8月 22, 2022
作者:
M
MaxKey
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
readme
上级
30dd35db
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
111 addition
and
110 deletion
+111
-110
README.md
README.md
+91
-103
mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java
...t/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java
+20
-7
未找到文件。
README.md
浏览文件 @
b87b4183
...
...
@@ -11,6 +11,7 @@
## 1、JPA 2.1注释
## 1.1、注释
仅支持6个注释
> * @Entity
> * @Table
...
...
@@ -19,29 +20,17 @@
> * @GeneratedValue
> * @Transient
主键策略
## 1.2、
主键策略
支持3种主键策略
,4种AUTO自动主键策略
支持3种主键策略
1.
**AUTO**
snowflakeid
uuid
uuid.hex
serial
2.
**SEQUENCE**
generator值为数据库序列名
3.
**IDENTITY**
generator无,根据数据库自动生成方式
| 序号 | 策略 | 支持 |
| --------| :----- | :---- |
| 1 |
**AUTO**
| 4种主键自动填充策略
<br>
snowflakeid(雪花ID-推荐)
<br>
uuid(UUID)
<br>
uuid.hex(UUID十六进制)
<br>
serial(JPA Extra序列) |
| 2 |
**SEQUENCE**
| 数据库序列生成,generator值为数据库序列名 |
| 3 |
**IDENTITY**
| 数据库表自增主键 |
## 1
、JPA
注释
## 1
.3、Java Bean
注释
```
java
...
...
@@ -53,7 +42,7 @@ public class Students extends JpaBaseEntity implements Serializable{
@Column
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
,
generator
=
"snowflakeid"
)
//@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="SEQ_MYBATIS_STUD")
//@GeneratedValue(strategy=GenerationType.IDENTITY
,generator="SEQ_MYBATIS_STUD"
)
//@GeneratedValue(strategy=GenerationType.IDENTITY)
private
String
id
;
@Column
...
...
@@ -84,8 +73,9 @@ public class Students extends JpaBaseEntity implements Serializable{
//...
}
```
## 2、基本操作
## 2
、CURD、Qruey构造器和分页查询
## 2
.1、CURD
```
java
//新增数据
...
...
@@ -105,6 +95,25 @@ public class Students extends JpaBaseEntity implements Serializable{
_logger
.
info
(
"insert id "
+
student
.
getId
());
}
//查询数据实体并更新
@Test
public
void
update
()
throws
Exception
{
_logger
.
info
(
"get..."
);
Students
student
=
service
.
get
(
"317d5eda-927c-4871-a916-472a8062df23"
);
System
.
out
.
println
(
"Students "
+
student
);
_logger
.
info
(
"Students "
+
student
);
_logger
.
info
(
"update..."
);
student
.
setImages
(
null
);
service
.
update
(
student
);
_logger
.
info
(
"updateed."
);
student
.
setImages
(
"ssss"
.
getBytes
());
service
.
update
(
student
);
_logger
.
info
(
"updateed2."
);
}
//根据实体查询并更新
@Test
public
void
merge
()
throws
Exception
{
...
...
@@ -122,24 +131,7 @@ public class Students extends JpaBaseEntity implements Serializable{
Thread
.
sleep
(
1000
);
_logger
.
info
(
"merge id "
+
student
.
getId
());
}
//springJDBC 的查询方式
@Test
public
void
find
()
throws
Exception
{
_logger
.
info
(
"find..."
);
_logger
.
info
(
"find by filter "
+
service
.
find
(
" StdNo = '10024' or StdNo = '10004'"
)
);
_logger
.
info
(
"find by filter with args "
+
service
.
find
(
" StdNo = ? or StdNo = ? "
,
new
Object
[]{
"10024"
,
"10004"
},
new
int
[]{
Types
.
VARCHAR
,
Types
.
INTEGER
}
)
);
}
//根据ID查询
@Test
public
void
get
()
throws
Exception
{
...
...
@@ -149,23 +141,24 @@ public class Students extends JpaBaseEntity implements Serializable{
_logger
.
info
(
"Students "
+
student
);
}
//
查询数据实体并更新
//
根据实体查询
@Test
public
void
update
()
throws
Exception
{
_logger
.
info
(
"get..."
);
Students
student
=
service
.
get
(
"317d5eda-927c-4871-a916-472a8062df23"
);
System
.
out
.
println
(
"Students "
+
student
);
_logger
.
info
(
"Students "
+
student
);
_logger
.
info
(
"update..."
);
student
.
setImages
(
null
);
service
.
update
(
student
);
_logger
.
info
(
"updateed."
);
student
.
setImages
(
"ssss"
.
getBytes
());
service
.
update
(
student
);
_logger
.
info
(
"updateed2."
);
public
void
query
()
throws
Exception
{
_logger
.
info
(
"query..."
);
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
List
<
Students
>
listStudents
=
service
.
query
(
student
);
//...
}
//查询所有记录
@Test
public
void
findAll
()
throws
Exception
{
_logger
.
info
(
"findAll..."
);
List
<
Students
>
listStudents
=
service
.
findAll
();
//...
}
//根据ID删除
@Test
public
void
remove
()
throws
Exception
{
...
...
@@ -205,22 +198,54 @@ public class Students extends JpaBaseEntity implements Serializable{
service
.
deleteBatch
(
"2,639178432667713536"
);
}
//分页查询
```
## 2.2、Find查询和Qruey构造器
```
java
//springJDBC 的查询方式
@Test
public
void
find
()
throws
Exception
{
_logger
.
info
(
"find by filter StdNo = '10024' or StdNo = '10004'"
);
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
public
void
filterByQuery
()
throws
Exception
{
_logger
.
info
(
"filterByQuery..."
);
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.3、分页查询并count数据量
```
java
//根据实体分页查询
@Test
public
void
queryPageResults
()
throws
Exception
{
_logger
.
info
(
"queryPageResults..."
);
Students
student
=
new
Students
();
//student.setId("af04d610-6092-481e-9558-30bd63ef783c");
//student.setStdGender("M");
//student.setStdMajor(政治");
student
.
setPageSize
(
10
);
//student.setPageNumber(2);
student
.
calculate
(
21
);
List
<
Students
>
listStudents
=
service
.
queryPageResults
(
student
).
getRows
();
for
(
Students
s
:
listStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
JpaPageResults
<
Students
>
results
=
service
.
queryPageResults
(
student
);
List
<
Students
>
rowsStudents
=
results
.
getRows
();
long
records
=
results
.
getRecords
();
//当前页记录数量
long
totalPage
=
results
.
getTotalPage
();
//总页数
long
total
=
results
.
getTotal
();
//总数据量
long
page
=
results
.
getPage
();
//当前页
//...
}
//mapper id分页查询
...
...
@@ -232,51 +257,14 @@ public class Students extends JpaBaseEntity implements Serializable{
//student.setStdMajor(政治");
student
.
setPageSize
(
10
);
student
.
setPageNumber
(
2
);
List
<
Students
>
listStudents
=
service
.
queryPageResults
(
"queryPageResults1"
,
student
).
getRows
();
for
(
Students
s
:
listStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
//根据实体查询
@Test
public
void
query
()
throws
Exception
{
_logger
.
info
(
"query..."
);
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
List
<
Students
>
listStudents
=
service
.
query
(
student
);
for
(
Students
s
:
listStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
JpaPageResults
<
Students
>
results
=
service
.
queryPageResults
(
"queryPageResults1"
,
student
);
//...
}
//根据链式条件构造器查询
//WHERE (stdMajor = '政治' and STDAGE > 30 and stdMajor in ( '政治' , '化学' ) or ( stdname = '周瑜' or stdname = '吕蒙' ) )
@Test
public
void
filterByQuery
()
throws
Exception
{
_logger
.
info
(
"filterByQuery..."
);
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"
,
"吕蒙"
)));
for
(
Students
s
:
listStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
//查询所有记录
@Test
public
void
findAll
()
throws
Exception
{
_logger
.
info
(
"findAll..."
);
List
<
Students
>
listStudents
=
service
.
findAll
();
for
(
Students
s
:
listStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
//...
```
## 3、
映射文件
配置
## 3、
mapper
配置
```
xml
<mapper
namespace=
"org.apache.mybatis.jpa.test.dao.persistence.StudentsMapper"
>
...
...
mybatis-jpa-extra-core/src/test/java/org/apache/mybatis/jpa/test/MyBatisTestRunner.java
浏览文件 @
b87b4183
...
...
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import
java.util.Date
;
import
java.util.List
;
import
org.apache.mybatis.jpa.persistence.JpaPageResults
;
import
org.apache.mybatis.jpa.query.Query
;
import
org.apache.mybatis.jpa.test.dao.service.StudentsService
;
import
org.apache.mybatis.jpa.test.entity.Students
;
...
...
@@ -157,15 +158,20 @@ public class MyBatisTestRunner {
_logger
.
info
(
"queryPageResults..."
);
Students
student
=
new
Students
();
//student.setId("af04d610-6092-481e-9558-30bd63ef783c");
//student.setStdGender("M");
//student.setStdMajor(政治");
student
.
setPageSize
(
10
);
//student.setPageNumber(2);
student
.
calculate
(
21
);
List
<
Students
>
allListStudents
=
service
.
queryPageResults
(
student
).
getRows
();
for
(
Students
s
:
allListStudents
)
{
JpaPageResults
<
Students
>
results
=
service
.
queryPageResults
(
student
);
List
<
Students
>
rowsStudents
=
results
.
getRows
();
long
records
=
results
.
getRecords
();
//当前页记录数量
long
totalPage
=
results
.
getTotalPage
();
//总页数
long
total
=
results
.
getTotal
();
//总数据量
long
page
=
results
.
getPage
();
//当前页
_logger
.
info
(
"records {} , totalPage {} , total {} , page {} "
,
records
,
totalPage
,
total
,
page
);
for
(
Students
s
:
rowsStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
...
...
@@ -180,9 +186,16 @@ public class MyBatisTestRunner {
student
.
setPageSize
(
10
);
student
.
setPageNumber
(
2
);
List
<
Students
>
allListStudents
=
service
.
queryPageResults
(
"queryPageResults1"
,
student
).
getRows
();
for
(
Students
s
:
allListStudents
)
{
JpaPageResults
<
Students
>
results
=
service
.
queryPageResults
(
"queryPageResults1"
,
student
);
List
<
Students
>
rowsStudents
=
results
.
getRows
();
long
records
=
results
.
getRecords
();
//当前页记录数量
long
totalPage
=
results
.
getTotalPage
();
//总页数
long
total
=
results
.
getTotal
();
//总数据量
long
page
=
results
.
getPage
();
//当前页
_logger
.
info
(
"records {} , totalPage {} , total {} , page {} "
,
records
,
totalPage
,
total
,
page
);
for
(
Students
s
:
rowsStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录