diff --git a/common/pom.xml b/common/pom.xml
index 58601bd..15b455b 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -17,4 +17,10 @@
UTF-8
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+
+
diff --git a/common/src/main/java/net/rzdata/demo/domain/Id.java b/common/src/main/java/net/rzdata/demo/domain/Id.java
new file mode 100644
index 0000000..8006ce3
--- /dev/null
+++ b/common/src/main/java/net/rzdata/demo/domain/Id.java
@@ -0,0 +1,8 @@
+package net.rzdata.demo.domain;
+
+public record Id(String id) {
+
+ public static Id of(String id) {
+ return new Id(id);
+ }
+}
diff --git a/common/src/main/java/net/rzdata/demo/trait/BaseRepository.java b/common/src/main/java/net/rzdata/demo/trait/BaseRepository.java
new file mode 100644
index 0000000..6ef7c4b
--- /dev/null
+++ b/common/src/main/java/net/rzdata/demo/trait/BaseRepository.java
@@ -0,0 +1,16 @@
+package net.rzdata.demo.trait;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public abstract class BaseRepository> {
+
+ private final transient M mapper;
+
+ public BaseRepository(M mapper) {
+ this.mapper = mapper;
+ }
+
+ public M get() {
+ return this.mapper;
+ }
+}
diff --git a/common/src/main/java/net/rzdata/demo/trait/IConverter.java b/common/src/main/java/net/rzdata/demo/trait/IConverter.java
new file mode 100644
index 0000000..7afe46f
--- /dev/null
+++ b/common/src/main/java/net/rzdata/demo/trait/IConverter.java
@@ -0,0 +1,11 @@
+package net.rzdata.demo.trait;
+
+/**
+ * 实体转换类
+ * @param 源类型
+ * @param 目标类型
+ */
+public interface IConverter {
+
+ T convert(S source);
+}
diff --git a/common/src/main/java/net/rzdata/demo/trait/IQuery.java b/common/src/main/java/net/rzdata/demo/trait/IQuery.java
new file mode 100644
index 0000000..faa8344
--- /dev/null
+++ b/common/src/main/java/net/rzdata/demo/trait/IQuery.java
@@ -0,0 +1,10 @@
+package net.rzdata.demo.trait;
+
+/**
+ * 请求实体类
+ * @param 核心模型类型
+ */
+public interface IQuery {
+
+ T into();
+}