package memberManagerV2;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/*
* 끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝
* 끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝끝
*/
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
DB db = new DB();
db.loadGlobal();
MemberDao memberDao = new MemberDao(db);
ArticleDao articleDao = new ArticleDao(db);
MemberService memberService = new MemberService(memberDao);
ArticleService articleService = new ArticleService(articleDao);
TotalController controller = new TotalController(memberService, articleService);
controller.setScanner(scanner);
while (true) {
controller.shwHelp();
System.out.print(" > ");
String cmd = scanner.next().trim();
if (cmd.equals("join")) {
scanner.nextLine();
controller.doCommandJoin();
} else if (cmd.equals("help")) {
controller.shwHelp();
} else if (cmd.equals("mmodify")) {
scanner.nextLine();
controller.doCommandModify();
} else if (cmd.equals("mlist")) {
scanner.nextLine();
controller.doCommandList();
} else if (cmd.equals("login")) {
scanner.nextLine();
controller.doCommandLogIn();
} else if (cmd.equals("logout")) {
scanner.nextLine();
controller.doCommandLogOut();
} else if (cmd.equals("signout")) {
scanner.nextLine();
// 게시판 ==============
controller.doCommandSignOut();
} else if (cmd.equals("add")) {
scanner.nextLine();
controller.doCommandAdd();
} else if (cmd.equals("alist")) {
scanner.nextLine();
controller.doCommandartList();
} else if (cmd.equals("amodify")) {
scanner.nextLine();
controller.doCommandartModify();
} else if (cmd.equals("detail")) {
scanner.nextLine();
controller.doCommandDetail();
} else if (cmd.equals("delete")) {
scanner.nextLine();
controller.doCommandDelete();
} else if (cmd.equals("exit")) {
System.out.println("프로그램을 종료합니다.");
break;
} else {
System.out.println("일치하는 명령어가 없습니다.");
}
}
scanner.close();
}
}
class TotalController {
MemberService memberService;
Scanner scanner;
Member loggedInMember;
ArticleService articleService;
TotalController(MemberService memberService, ArticleService articleService) {
this.memberService = memberService;
this.articleService = articleService;
loggedInMember = null;
}
// 게시물 영역 ================================================================
public void doCommandDelete() {
System.out.printf("삭제하실 게시물의 번호를 입력해 주십시오 : ");
int num = scanner.nextInt();
int logOwnId = loggedInMember.ownId;
if (loggedInMember == null) {
System.out.println("로그인이 필요한 서비스 입니다.");
} else {
articleService.toDelete(num, logOwnId);
}
}
public void doCommandDetail() {
System.out.printf("조회하실 게시물의 번호를 입력해 주십시오 : ");
int num = scanner.nextInt();
articleService.printDetail(num);
}
public void doCommandartModify() {
System.out.printf("수정하실 게시물의 번호를 입력해 주십시오 : ");
int num = scanner.nextInt();
String title = null;
String body = null;
int logOwnId = loggedInMember.ownId;
if (loggedInMember == null) {
System.out.println("로그인이 필요한 서비스입니다.");
} else {
while (true) {
System.out.printf("제목을 입력해 주십시오.%n");
System.out.printf(" >");
title = scanner.next().trim();
if (title.length() == 0) {
System.out.println("제목을 입력해 주십시요.");
continue;
}
if (title.length() < 2) {
System.out.println("제목은 2자 이상이어야 합니다.");
continue;
}
break;
}
while (true) {
System.out.println("내용을 입력해주십시오 : ");
System.out.printf(" >");
body = scanner.next().trim();
if (body.length() == 0) {
System.out.println("내용을 입력해 주십시요.");
continue;
}
if (body.length() < 5) {
System.out.println("내용은 5자 이상이어야 합니다.");
continue;
}
break;
}
System.out.println("이대로 수정하시겠습니까? y / n");
System.out.print("> ");
String yn = scanner.next().trim();
if (yn.equals("y")) {
articleService.artModify(num, title, body, logOwnId);
}
}
}
public void doCommandAdd() {// 게시물 추가
String title = null;
String body = null;
int writerOwnId = 0;
String writer = null;
if (loggedInMember == null) {
System.out.println("로그인이 필요한 서비스입니다.");
} else {
while (true) {
System.out.printf("제목을 입력해 주십시오.%n");
System.out.printf(" >");
title = scanner.next().trim();
if (title.length() == 0) {
System.out.println("제목을 입력해 주십시요.");
continue;
}
if (title.length() < 2) {
System.out.println("제목은 2자 이상이어야 합니다.");
continue;
}
break;
}
while (true) {
System.out.println("내용을 입력해주십시오 : ");
System.out.printf(" >");
body = scanner.next().trim();
if (body.length() == 0) {
System.out.println("내용을 입력해 주십시요.");
continue;
}
if (body.length() < 5) {
System.out.println("내용은 5자 이상이어야 합니다.");
continue;
}
break;
}
System.out.println("이대로 작성하시겠습니까? y / n");
System.out.print("> ");
String yn = scanner.next().trim();
writerOwnId = loggedInMember.ownId;
writer = loggedInMember.nickName;
if (yn.equals("y")) {
articleService.add(title, body, writer, writerOwnId);
}
}
}
public void doCommandartList() {
articleService.printList();
}
//멤버 영역 =======================================================================
public void doCommandList() {
memberService.printList();
}
public void doCommandSignOut() {
if (loggedInMember == null) {
System.out.println("로그인이 필요한 서비스 입니다.");
} else {
// 아이디 비밀번호를 다시 한번 확인한다.
System.out.println("본인 확인을 위해 다시한번 아이디와 비밀번호를 입력해 주십시오.");
System.out.println("아이디 : ");
System.out.print(" >");
String ckId = scanner.next().trim();
System.out.println("비밀번호 : ");
System.out.print(" >");
String ckPw = scanner.next().trim();
if (loggedInMember.id.equals(ckId) && loggedInMember.pw.equals(ckPw)) {
System.out.print("정말 계정을 삭제하시겠습니까?");
System.out.printf("\ty or n : ");
String asr = scanner.next().trim();
if (asr.equals("y")) {
memberService.deleteId(loggedInMember);
}
}
}
loggedInMember = null;
}
public void doCommandModify() {
if (loggedInMember == null) {
System.out.println("로그인이 필요한 서비스 입니다.");
} else {
// 아이디 비밀번호를 다시 한번 확인한다.
System.out.println("본인 확인을 위해 다시한번 아이디와 비밀번호를 입력해 주십시오.");
System.out.println("아이디 : ");
System.out.print(" >");
String ckId = scanner.next().trim();
System.out.println("비밀번호 : ");
System.out.print(" >");
String ckPw = scanner.next().trim();
String cgPw = null;
String cgNN = null;
if (loggedInMember.id.equals(ckId) && loggedInMember.pw.equals(ckPw)) {
System.out.println("변경하실 비밀번호와 닉네임을 입력해주십시오.");
System.out.println("비밀번호 :");
System.out.print(" >");
String pw = scanner.next().trim();
System.out.println("닉네임 :");
System.out.print(" >");
String nickName = scanner.next().trim();
cgPw = pw;
cgNN = nickName;
memberService.login(ckId, ckPw).pw = cgPw;
memberService.login(ckId, ckPw).nickName = cgNN;
loggedInMember.pw = cgPw;
loggedInMember.nickName = cgNN;
} else {
System.out.println("입력하신 정보가 계정과 일치하지 않습니다.");
}
memberService.memberModify(loggedInMember.id, cgPw, cgNN, loggedInMember);
}
loggedInMember = null;
}
public void doCommandLogOut() {
if (loggedInMember == null) {
System.out.println("로그인이 필요합니다.");
} else {
System.out.printf("%s님 또 뵙길 기원합니다.%n", loggedInMember.nickName);
loggedInMember = null;
System.out.println("로그아웃 되었습니다.");
}
}
public void doCommandLogIn() {
System.out.println("== 로그인 ==");
System.out.printf("아이디를 입력해 주십시오.%n");
System.out.printf(">");
String id = scanner.next().trim();
System.out.printf("비밀번호를 입력해 주십시오.%n");
System.out.printf(">");
String pw = scanner.next().trim();
Member logginIn = memberService.login(id, pw);
if (logginIn != null) {
loggedInMember = logginIn;
System.out.println("로그인 되었습니다.");
System.out.printf("%s님 환영합니다.%n", loggedInMember.nickName);
} else {
System.out.println("로그인에 실패했습니다.");
}
}
public void doCommandJoin() {
System.out.println("== 회원가입 ==");
String id;
String pw;
String pwCheck;
String nickName;
while (true) {
System.out.printf("사용하실 아이디를 입력해 주십시오.%n");
System.out.printf(" >");
id = scanner.next().trim();
if (id.length() == 0) {
System.out.println("아이디를 입력해 주십시요.");
continue;
}
if (id.length() < 3) {
System.out.println("아이디는 3자 이상이어야 합니다.");
continue;
}
if (memberService.isUsedId(id) == true) {
System.out.println("이미 사용중인 아이디 입니다.");
continue;
}
break;
}
while (true) {
boolean pwValid = true;
while (true) {
System.out.printf("사용하실 비밀번호를 입력해 주십시오.%n");
System.out.printf(" >");
pw = scanner.next().trim();
if (pw.length() == 0) {
System.out.println("비밀번호를 입력해 주십시요.");
continue;
}
if (pw.length() < 4) {
System.out.println("비밀번호는 4자 이상이어야 합니다.");
continue;
}
break;
}
while (true) {
System.out.println("로그인 비밀번호 확인 : ");
System.out.printf(" >");
pwCheck = scanner.next().trim();
if (pwCheck.length() == 0) {
System.out.println("비밀번호 확인을 위해 비밀번호를 다시 입력해주십시오.");
continue;
}
if (pwCheck.equals(pw) == false) {
System.out.println("입력한 비밀번호가 일치하지 않습니다.");
pwValid = false;
break;
}
break;
}
if (pwValid) {
break;
}
}
System.out.printf("사용하실 닉네임을 입력해 주십시오.%n");
System.out.printf(" >");
nickName = scanner.next().trim();
System.out.printf("아이디 : %s 비밀번호 : %s 닉네임 : %s%n", id, pw, nickName);
System.out.println("이대로 진행하시겠습니까? y / n");
System.out.print("> ");
String yn = scanner.next().trim();
if (yn.equals("y")) {
memberService.join(id, pw, nickName);
System.out.printf("%s님의 회원가입을 환영합니다.%n%n", nickName);
}
}
public void shwHelp() {
System.out.println("== 회원 관리 프로그램 ==");
System.out.printf("help- 명령어 리스트%n");
System.out.printf("join- 회원가입%n");
System.out.printf("login- 로그인%n");
System.out.printf("logout- 로그아웃%n");
System.out.printf("signout- 회원탈퇴%n");
System.out.printf("mlist- 회원 리스트%n");
System.out.printf("mmodify- 회원 정보 수정%n");
System.out.printf("==== 게시판 프로그램 ====%n");
System.out.printf("add- 게시물 작성%n");
System.out.printf("alist- 게시물 리스트%n");
System.out.printf("amodify- 게시물 수정%n");
System.out.printf("detail- 게시물 디테일%n");
System.out.printf("delete- 게시물 삭제%n");
System.out.printf("exit- 프로그램 종료%n");
}
public void setScanner(Scanner scanner) {
this.scanner = scanner;
}
}
class ArticleService {
ArticleDao articleDao;
ArticleService(ArticleDao articleDao) {
this.articleDao = articleDao;
}
public void toDelete(int num, int logOwnId) {
articleDao.delete(num, logOwnId);
}
public void printDetail(int num) {
articleDao.detail(num);
}
public void artModify(int num, String title, String body, int logOwnId) {
articleDao.modify(num, title, body, logOwnId);
}
public void printList() {
articleDao.printList();
}
public void add(String title, String body, String writer, int writerOwnId) {
articleDao.writeArticle(title, body, writer, writerOwnId);
}
}
class MemberService {
MemberDao memberDao;
MemberService(MemberDao articleDao) {
this.memberDao = articleDao;
}
public void printList() {
memberDao.printList();
}
void deleteId(Member loggedInMember) {
memberDao.deleteId(loggedInMember);
}
void memberModify(String id, String pw, String nickName, Member member) {
memberDao.modify(id, pw, nickName, member);
}
boolean checkId(String id) {
if (isUsedId(id)) {
return true;
}
return false;
}
boolean isUsedId(String id) { // true = 가입된 아이디, false = 가입되지 않은 아이디.
return memberDao.isUsedId(id);
}
Member login(String id, String pw) {
Member loggingIn = memberDao.login(id, pw);
return loggingIn;
}
public void join(String id, String pw, String nickName) {
memberDao.join(id, pw, nickName);
}
}
class ArticleDao {
DB db;
Article[] articles;
int articlesLastIndex;
int articlesLastId;
ArticleDao(DB db) {
this.db = db;
articles = db.getArticlesFromFiles();
for (int i = 0; i < articles.length; i++) {
if (articles[i] == null) {
articlesLastIndex = i - 1;
break;
}
}
articlesLastId = db.getLastMemberOwnId();
}
public void delete(int num, int logOwnId) {
Article article = getArticleById(num);
if (article.writerOwnId == logOwnId) {
String articleFilePath = "article/" + num + ".txt";
db.deleteArticle(articleFilePath);
}else {
System.out.println("본인이 작성한 게시물만 수정이 가능합니다.");
}
}
void detail(int num) {
Article article = getArticleById(num);
System.out.println(article);
}
void modify(int num, String title, String body, int logOwnId) {
Article article = getArticleById(num);
article.title = title;
article.body = body;
if (article.writerOwnId == logOwnId) {
String articleFilePath = "article/" + num + ".txt";
db.writeArticleJsonFile(articleFilePath, article);
System.out.println("게시물이 수정되었습니다.");
} else {
System.out.println("본인이 작성한 게시물만 수정이 가능합니다.");
}
}
Article getArticleById(int num) {
int index = getArticleIndexById(num);
if (index >= 0) {
return articles[index];
}
return null;
}
int getArticleIndexById(int num) {
for (int i = 0; i <= articlesLastIndex; i++) {
if (articles[i].id == num) {
return i;
}
}
return -1;
}
public void printList() {
System.out.println(db.getartList());
}
public void writeArticle(String title, String body, String writer, int writerOwnId) {
int id = articlesLastId + 1;
String regDate = Util.getNowDateStr();
Article article = new Article(id, regDate, title, body, writer, writerOwnId);
articlesLastIndex++;
articles[articlesLastIndex] = article;
String articleFilePath = "article/" + article.id + ".txt";
db.writeArticleJsonFile(articleFilePath, article);
articlesLastId++;
db.updateLastArticleId(articlesLastId);
}
}
class MemberDao {
DB db;
Member[] members;
Article[] articles;
int lastMemberIndex;
int lastMemberOwnId;
int ArticlesLastIndex;
int ArticlesLastOwnId;
MemberDao(DB db) {
this.db = db;
members = db.getMembersFromFiles();
for (int i = 0; i < members.length; i++) {
if (members[i] == null) {
lastMemberIndex = i - 1;
break;
}
}
lastMemberOwnId = db.getLastMemberOwnId();
}
public void printList() {
System.out.println(db.getList());
}
public void deleteId(Member loggedInMember) {
Member toDelete = loggedInMember;
db.deleteMember(toDelete);
}
public void modify(String id, String pw, String nickName, Member member) {
db.memberModifier(id, pw, nickName, member);
}
boolean isUsedId(String id) {// 멤버가 널일때 false = 사용된 아이디가 아니다.
Member member = db.getMemberById(id);
if (member == null) {
return false;
}
return true;
}
Member login(String id, String pw) {
Member loggingInMember = new Member();
loggingInMember.id = id;
loggingInMember.pw = pw;
Member m = db.getMemberById(id);
if (m == null) {
System.out.println("가입되지 않은 회원입니다.");
} else if (m.id.equals(loggingInMember.id) && m.pw.equals(loggingInMember.pw)) {
return m;
}
return null;
}
public void join(String id, String pw, String nickName) {
int ownId = lastMemberOwnId + 1;
String regDate = Util.getNowDateStr();
Member member = new Member(id, pw, nickName, regDate, ownId);
lastMemberIndex++;
members[lastMemberIndex] = member;
String memberFilePath = "member/" + member.ownId + ".txt";
db.writeMemberJsonFile(memberFilePath, member);
lastMemberOwnId++;
db.updateLastMemberOwnId(lastMemberOwnId);
}
}
class Member {
public String id;
public String pw;
public String nickName;
public int ownId;
public String regDate;
public Member() {
}
public Member(String id, String pw, String nickName, String regDate, int ownId) {
this.id = id;
this.pw = pw;
this.nickName = nickName;
this.regDate = regDate;
this.ownId = ownId;
}
@Override
public String toString() {
return String.format("%n<Member List> %nnickName : %s%nownId : %s%nid : %s%nregDate : %s%n", nickName, ownId,
id, regDate);
}
}
class Article {
public int id;
public String regDate;
public String title;
public String body;
public String writer;
public int writerOwnId;
public Article() {
}
public Article(int id, String regDate, String title, String body, String writer, int writerOwnId) {
this.id = id;
this.regDate = regDate;
this.title = title;
this.body = body;
this.writer = writer;
this.writerOwnId = writerOwnId;
}
@Override
public String toString() {
return String.format("%n<Article List> %nid : %s%nregDate : %s%n" + "wirter = %s%ntitle : %s%nbody : %s%n", id,
regDate, writer, title, body);
}
}
class DB {
Global global;
void init() {// 일치
loadGlobal();
}
public void deleteArticle(String articleFilePath) {
String fileNm = articleFilePath;
File file = new File(fileNm);
if (file.exists()) {
if (file.delete()) {
System.out.println("게시물이 삭제 되었습니다.");
} else {
System.out.println("게시물 삭제가 실패하였습니다.");
}
} else {
System.out.println("게시물이 존재하지 않습니다.");
}
}
// article =======
List<Article> getartList() {
List<Article> articleList = getArticles();
return articleList;
}
List<Article> getArticles() {
List<Article> articles = new ArrayList<>();
int lastId = getArticlesLastId();
for (int i = 1; i < lastId + 1; i++) {
String filePath = "article/" + i + ".txt";
Article article = readArticleFromJsonFile(filePath);
if (article != null) {
articles.add(article);
}
}
return articles;
}
Article[] getArticlesFromFiles() {
Article[] articles = new Article[100];
int articlesLastId = getArticlesLastId();
int articlesIndex = 0;
for (int i = 1; i < articlesLastId; i++) {
String fileName = "article/" + i + ".txt";
Article article = readArticleFromJsonFile(fileName);
if (article != null) {
articles[articlesIndex] = article;
articlesIndex++;
}
}
return articles;
}
private Article readArticleFromJsonFile(String fileName) {
ObjectMapper om = new ObjectMapper();
Article article = null;
try {
article = om.readValue(new File(fileName), Article.class);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
} catch (IOException e) {
e.printStackTrace();
}
return article;
}
int getArticlesLastId() {
return global.articlesLastId;
}
public void updateLastArticleId(int articlesLastId) {
global.articlesLastId = articlesLastId;
writeGlobalJsonFile("global.txt", global);
}
public void writeArticleJsonFile(String articleFilePath, Article article) {
String folderPath = "article";// 멤버폴더 먼저 만들기
File Folder = new File(folderPath);
if (!Folder.exists()) {
Folder.mkdir();
}
ObjectMapper om = new ObjectMapper();
try {
om.writeValue(new File(articleFilePath), article);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// member ===========
List<Member> getList() {
List<Member> memberList = getMembers();
return memberList;
}
public void memberModifier(String id, String pw, String nickName, Member m) {
Member member = new Member();
member.regDate = m.regDate;
member.ownId = m.ownId;
member.id = id;
member.pw = pw;
member.nickName = nickName;
String fileNm = "member/" + member.ownId + ".txt";
File file = new File(fileNm);
if (file.exists()) {
if (file.delete()) {
System.out.println("기존 정보가 삭제되었습니다.");
}
} else {
System.out.println("회원이 존재하지 않습니다.");
}
ObjectMapper om = new ObjectMapper();
try {
om.writeValue(new File(fileNm), member);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("회원정보가 수정되었습니다.");
}
public void deleteMember(Member toDelete) {
String fileNm = "member\\" + toDelete.ownId + ".txt";
File file = new File(fileNm);
if (file.exists()) {
if (file.delete()) {
System.out.println("회원탈퇴 성공");
} else {
System.out.println("회원탈퇴 실패");
}
} else {
System.out.println("회원이 존재하지 않습니다.");
}
}
Member getMemberByOwnId(int ownId) {
List<Member> members = getMembers();
for (Member member : members) {
if (member.ownId == ownId) {
return member;
}
}
return null;
}
Member getMemberById(String id) {
List<Member> members = getMembers();
for (Member member : members) {
if (member.id.equals(id)) {
return member;
}
}
return null;
}
List<Member> getMembers() {
List<Member> members = new ArrayList<>();
int lastId = getLastMemberOwnId();
for (int i = 1; i < lastId + 1; i++) {
String filePath = "member/" + i + ".txt";
Member member = readMemberFromJsonFile(filePath);
if (member != null) {
members.add(member);
}
}
return members;
}
public void loadGlobal() {// 일치
global = readGlobalFromJsonFile("global.txt");
}
Global readGlobalFromJsonFile(String filePath) {// 일치
ObjectMapper om = new ObjectMapper();
Global global = null;
try {
global = om.readValue(new File(filePath), Global.class);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
global = new Global();
writeGlobalJsonFile(filePath, global);
}
return global;
}
void writeGlobalJsonFile(String filePath, Global global) {// 일치
ObjectMapper om = new ObjectMapper();
try {
om.writeValue(new File(filePath), global);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void updateLastMemberOwnId(int lastMemberOwnId) {// 일치
global.lastMemberOwnId = lastMemberOwnId;
writeGlobalJsonFile("global.txt", global);
}
void writeMemberJsonFile(String filePath, Member member) {// 일치
String folderPath = "member";// 멤버폴더 먼저 만들기
File Folder = new File(folderPath);
if (!Folder.exists()) {
Folder.mkdir();
}
ObjectMapper om = new ObjectMapper();
try {
om.writeValue(new File(filePath), member);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public int getLastMemberOwnId() {// 일치
return global.lastMemberOwnId;
}
Member[] getMembersFromFiles() {// 일치
Member[] members = new Member[100];
int lastMemberOwnId = getLastMemberOwnId();
int membersIndex = 0;
for (int i = 1; i < lastMemberOwnId; i++) {
String fileName = "member/" + i + ".txt";
Member member = readMemberFromJsonFile(fileName);
if (member != null) {
members[membersIndex] = member;
membersIndex++;
}
}
return members;
}
Member readMemberFromJsonFile(String filePath) {// 일치
ObjectMapper om = new ObjectMapper();
Member member = null;
try {
member = om.readValue(new File(filePath), Member.class);
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
} catch (IOException e) {
e.printStackTrace();
}
return member;
}
}
class Util {
static String getNowDateStr() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat Date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = Date.format(cal.getTime());
return dateStr;
}
}
abstract class Table {
Global global;
}
class ArticleTable extends Table {
}
class MemberTable extends Table {
}
class Global {
public int articlesLastId;
public int lastMemberOwnId;
Global() {
lastMemberOwnId = 0;
articlesLastId = 0;
}
}
수업관련