java 메모장 만들기 관련 질문인데요
-
게시물 수정 , 삭제는 로그인 필요
package memo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Memo {
public void init(){
while(true){ // 무한 루틴
menu(); // 같은 클래스 안에서는 메소드를 제약 없이 호출
}
}
public void menu(){
int cnt = 3; // 최신글 갯수
pl("+---------------------------------------------------------+");
pl("| 메모장 (Ver 1.3) |");
pl("+---------------------------------------------------------+");
pl("|1-입력 | 2-목록 | 3-최신글 | 4-수정 | 5-삭제 | 9-종료 |");
pl("+---------------------------------------------------------+");
//------------------------------------------------
int menu = 0;
try {
menu = InputData.readInt("메뉴를 선택하세요"); // 입력 대기 상태로 기다림.
if (menu == 1) { // 입력
create();
}else if(menu == 2){ // 화면 출력
list();
}else if(menu == 3){ // 최신글 출력
listTop(cnt);
}else if(menu == 4){ // 수정
list();
update();
}else if(menu == 5){ // 삭제
list();
delete();
}else if(menu == 9){ // 종료
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
}
catch (Exception e) {
System.out.println("Error: " + e.toString());
}
}
// throws Exception: 예외를 이메소드에서 처리하지 않음을 선언.
public void create() throws Exception{
System.out.println("메모 입력");
Connection con = null;
PreparedStatement pstmt=null;
int ret = 0; // 추가 레코드 수
StringBuffer sql = null; // SQL
String name = ""; // 성명
String content = ""; // 내용
name = InputData.readString("이름 입력(exit: 취소) ☞ "); // 이름 입력
name = name.toLowerCase(); // 소문자로 변경
if (name.equals("exit")){
pl(" 등록을 취소 했습니다.");
return; // 메소드의 실행을 취소, 리턴 값은 없음
}
content = InputData.readString("내용 입력 ☞ "); // 내용 입력
pstmt = con.prepareStatement(sql.toString());
pstmt.setString(1, name);
pstmt.setString(2, content);
ret = pstmt.executeUpdate();
if (ret == 1){
System.out.println("\n메모를 추가했습니다.\n");
}else{
System.out.println("\n메모 추가에 실패 했습니다. 다시 입력해 주세요.\n");
}
DBClose.close(con, pstmt);
}
public void update() throws Exception{
Connection con = null;
PreparedStatement pstmt=null;
int ret = 0; // 추가 레코드 수
StringBuffer sql = null; // SQL
String name = ""; // 성명
String content = ""; // 내용
int memono = 0; // 메모 번호
memono = InputData.readInt("수정할 메모 번호를 입력 하세요(EXIT: 999). ☞ ");
if (memono == 999){
pl(" 수정을 취소 했습니다.");
return;
}
name = InputData.readString("이름 입력 ☞ ");
content = InputData.readString("내용 입력 ☞ ");
pstmt = con.prepareStatement(sql.toString());
pstmt.setString(1, name);
pstmt.setInt(3, memono);
ret = pstmt.executeUpdate();
if (ret == 1){
System.out.println("메모를 수정했습니다.");
}else{
System.out.println("메모 수정에 실패 했습니다. 다시 입력해 주세요.");
}
DBClose.close(con, pstmt);
}
public void delete() throws Exception{
Connection con = null;
PreparedStatement pstmt=null;
int ret = 0; // 추가 레코드 수
StringBuffer sql = null; // SQL
int memono = 0; // 메모 번호
con = DBConnect.getConnection();
memono = InputData.readInt("삭제할 메모 번호 입력(EXIT: 999) ☞ ");
if (memono == 999){
pl(" 삭제를 취소 했습니다.");
return;
}
pstmt = con.prepareStatement(sql.toString());
pstmt.setInt(1, memono);
ret = pstmt.executeUpdate();
if (ret == 1){
System.out.println("메모를 삭제했습니다.");
}else{
System.out.println("메모 삭제에 실패 했습니다. 다시 입력해 주세요.");
}
DBClose.close(con, pstmt);
}
public void list() throws Exception{
System.out.println("\n");
System.out.println(" 메모 목록");
Connection con = null;
PreparedStatement pstmt=null;
ResultSet rs = null;
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
while(rs.next()){
// 기준 출력 문자열 갯수: 80
// printf("%20s", ""): 문자열 출력폭을 고정할수 없음.
System.out.print(" ");
System.out.print(rs.getInt("memono"));
System.out.print("\t" + rs.getString("name"));
System.out.print("\t" + rs.getString("content"));
String memodate = rs.getString("memodate");
System.out.print(" (" + memodate.substring(0, 16) + ")" );
System.out.println("");
}
DBClose.close(con, pstmt, rs);
}
public void listTop(int cnt) throws Exception{
System.out.println("\n");
System.out.println(" 메모 목록");
Connection con = null;
PreparedStatement pstmt=null;
ResultSet rs = null;
con = DBConnect.getConnection();
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
while(rs.next()){
// 기준 출력 문자열 갯수: 80
// printf("%20s", ""): 문자열 출력폭을 고정할수 없음.
System.out.print(" ");
System.out.print(rs.getInt("memono"));
System.out.print("\t" + rs.getString("name"));
System.out.print("\t" + rs.getString("content"));
String memodate = rs.getString("memodate");
System.out.print(" (" + memodate.substring(0, 16) + ")" );
System.out.println("");
}
DBClose.close(con, pstmt, rs);
}
// 출력후 라인 변경
public void pl(String inData){
System.out.println(inData);
}
// 출력후 라인을 변경하지 않음
public void p(String inData){
System.out.print(inData);
}
}
--------------------------------------------------------
오류가 잡혀서 실행이 되지 않는데요 ㅠㅠ
고수님들 좀 잡아주세요
package memo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Memo {
public void init(){
while(true){ // 무한 루틴
menu(); // 같은 클래스 안에서는 메소드를 제약 없이 호출
}
}
public void menu(){
int cnt = 3; // 최신글 갯수
pl("+---------------------------------------------------------+");
pl("| 메모장 (Ver 1.3) |");
pl("+---------------------------------------------------------+");
pl("|1-입력 | 2-목록 | 3-최신글 | 4-수정 | 5-삭제 | 9-종료 |");
pl("+---------------------------------------------------------+");
//------------------------------------------------
int menu = 0;
try {
menu = InputData.readInt("메뉴를 선택하세요"); // 입력 대기 상태로 기다림.
if (menu == 1) { // 입력
create();
}else if(menu == 2){ // 화면 출력
list();
}else if(menu == 3){ // 최신글 출력
listTop(cnt);
}else if(menu == 4){ // 수정
list();
update();
}else if(menu == 5){ // 삭제
list();
delete();
}else if(menu == 9){ // 종료
System.out.println("프로그램을 종료합니다.");
System.exit(0);
}
}
catch (Exception e) {
System.out.println("Error: " + e.toString());
}
}
// throws Exception: 예외를 이메소드에서 처리하지 않음을 선언.
public void create() throws Exception{
System.out.println("메모 입력");
Connection con = null;
PreparedStatement pstmt=null;
int ret = 0; // 추가 레코드 수
StringBuffer sql = null; // SQL
String name = ""; // 성명
String content = ""; // 내용
name = InputData.readString("이름 입력(exit: 취소) ☞ "); // 이름 입력
name = name.toLowerCase(); // 소문자로 변경
if (name.equals("exit")){
pl(" 등록을 취소 했습니다.");
return; // 메소드의 실행을 취소, 리턴 값은 없음
}
content = InputData.readString("내용 입력 ☞ "); // 내용 입력
pstmt = con.prepareStatement(sql.toString());
pstmt.setString(1, name);
pstmt.setString(2, content);
ret = pstmt.executeUpdate();
if (ret == 1){
System.out.println("\n메모를 추가했습니다.\n");
}else{
System.out.println("\n메모 추가에 실패 했습니다. 다시 입력해 주세요.\n");
}
DBClose.close(con, pstmt);
}
public void update() throws Exception{
Connection con = null;
PreparedStatement pstmt=null;
int ret = 0; // 추가 레코드 수
StringBuffer sql = null; // SQL
String name = ""; // 성명
String content = ""; // 내용
int memono = 0; // 메모 번호
memono = InputData.readInt("수정할 메모 번호를 입력 하세요(EXIT: 999). ☞ ");
if (memono == 999){
pl(" 수정을 취소 했습니다.");
return;
}
name = InputData.readString("이름 입력 ☞ ");
content = InputData.readString("내용 입력 ☞ ");
pstmt = con.prepareStatement(sql.toString());
pstmt.setString(1, name);
pstmt.setInt(3, memono);
ret = pstmt.executeUpdate();
if (ret == 1){
System.out.println("메모를 수정했습니다.");
}else{
System.out.println("메모 수정에 실패 했습니다. 다시 입력해 주세요.");
}
DBClose.close(con, pstmt);
}
public void delete() throws Exception{
Connection con = null;
PreparedStatement pstmt=null;
int ret = 0; // 추가 레코드 수
StringBuffer sql = null; // SQL
int memono = 0; // 메모 번호
con = DBConnect.getConnection();
memono = InputData.readInt("삭제할 메모 번호 입력(EXIT: 999) ☞ ");
if (memono == 999){
pl(" 삭제를 취소 했습니다.");
return;
}
pstmt = con.prepareStatement(sql.toString());
pstmt.setInt(1, memono);
ret = pstmt.executeUpdate();
if (ret == 1){
System.out.println("메모를 삭제했습니다.");
}else{
System.out.println("메모 삭제에 실패 했습니다. 다시 입력해 주세요.");
}
DBClose.close(con, pstmt);
}
public void list() throws Exception{
System.out.println("\n");
System.out.println(" 메모 목록");
Connection con = null;
PreparedStatement pstmt=null;
ResultSet rs = null;
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
while(rs.next()){
// 기준 출력 문자열 갯수: 80
// printf("%20s", ""): 문자열 출력폭을 고정할수 없음.
System.out.print(" ");
System.out.print(rs.getInt("memono"));
System.out.print("\t" + rs.getString("name"));
System.out.print("\t" + rs.getString("content"));
String memodate = rs.getString("memodate");
System.out.print(" (" + memodate.substring(0, 16) + ")" );
System.out.println("");
}
DBClose.close(con, pstmt, rs);
}
public void listTop(int cnt) throws Exception{
System.out.println("\n");
System.out.println(" 메모 목록");
Connection con = null;
PreparedStatement pstmt=null;
ResultSet rs = null;
con = DBConnect.getConnection();
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
while(rs.next()){
// 기준 출력 문자열 갯수: 80
// printf("%20s", ""): 문자열 출력폭을 고정할수 없음.
System.out.print(" ");
System.out.print(rs.getInt("memono"));
System.out.print("\t" + rs.getString("name"));
System.out.print("\t" + rs.getString("content"));
String memodate = rs.getString("memodate");
System.out.print(" (" + memodate.substring(0, 16) + ")" );
System.out.println("");
}
DBClose.close(con, pstmt, rs);
}
// 출력후 라인 변경
public void pl(String inData){
System.out.println(inData);
}
// 출력후 라인을 변경하지 않음
public void p(String inData){
System.out.print(inData);
}
}
--------------------------------------------------------
오류가 잡혀서 실행이 되지 않는데요 ㅠㅠ
고수님들 좀 잡아주세요
#java 메모장 만들기 #java 메모장 실행 #java 메모장 읽기 #java 메모장 #java 메모장 저장 #java 메모장 쓰기