diff --git a/src/main/java/database/DataManagerInterface.java b/src/main/java/database/DataManagerInterface.java
index c1df413..357b81f 100644
--- a/src/main/java/database/DataManagerInterface.java
+++ b/src/main/java/database/DataManagerInterface.java
@@ -7,6 +7,7 @@
 import entity.Seed;
 import entity.User;
 import entity.UserPT;
+import entity.PostReply;
 public interface DataManagerInterface{
 //DB1
 
@@ -51,6 +52,8 @@
     public void SettleBeg();//结算所有求种信息，求种信息中需要增加Beg截止日期，默认14天，期间投票>的则Beg成功，否则Beg失败，并发放对应奖励
 
     public Post[] GetPostList();//获取用户的帖子列表
+    public Post GetPost(String postid);//获取一个帖子的详细信息
+    public PostReply[] GetPostReplyList(String postid);//获取一个帖子的回复列表
     public int AddPost(Post post);//添加一个新的帖子，返回状态：0 success，1 重复，2其他原因
     public int UpdatePost(Post post);//更新一个帖子，返回状态：0 success，1 不存在,2其他原因
     public int DeletePost(String postid);//删除一个帖子，返回状态：0 success，1 不存在,2其他原因
diff --git a/src/main/java/database/Database1.java b/src/main/java/database/Database1.java
index 030abdd..0689e69 100644
--- a/src/main/java/database/Database1.java
+++ b/src/main/java/database/Database1.java
@@ -26,6 +26,8 @@
 import entity.UserPT;
 import entity.UserStar;
 import entity.config;
+import entity.PostReply;
+import entity.QPostReply;
 
 public class Database1 implements DataManagerInterface {
     @PersistenceContext
@@ -608,5 +610,20 @@
         return posts.toArray(new Post[0]);
     }
 
+    @Override
+    public Post GetPost(String postid) {
+        JPAQuery<Post> query = new JPAQuery<>(entitymanager);
+        QPost p = QPost.post;
+        Post post = query.select(p).from(p).where(p.postid.eq(postid)).fetchOne();
+        return post;
+    }
+
+    @Override
+    public PostReply[] GetPostReplyList(String postid) {
+        JPAQuery<PostReply> query = new JPAQuery<>(entitymanager);
+        QPostReply p = QPostReply.postReply;
+        List<PostReply> replies = query.select(p).from(p).where(p.postid.eq(postid)).fetch();
+        return replies.toArray(new PostReply[0]);
+    }
 }
 
diff --git a/src/main/java/database/Database2.java b/src/main/java/database/Database2.java
index 7a58953..d7c5eee 100644
--- a/src/main/java/database/Database2.java
+++ b/src/main/java/database/Database2.java
@@ -1106,4 +1106,14 @@
     public Post[] GetPostList(){
         return null;
     }
+
+    @Override
+    public Post GetPost(String postid) {
+        return null;
+    }
+
+    @Override
+    public PostReply[] GetPostReplyList(String postid) {
+        return null;
+    }
 }
\ No newline at end of file
