java 메모장 만들기 관련 질문인데요

java 메모장 만들기 관련 질문인데요

작성일 2012.03.29댓글 1건
    게시물 수정 , 삭제는 로그인 필요

 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 메모장 쓰기

profile_image 익명 작성일 -

패키지 컴파일을 제대로 하지 못한건지 아니면 일부러 빼놓은건지
몇개의 클래스가 빠져있고 
제때 커넥션이 연결되지 않는군요.

다른클래스를 만들어서 첨부합니다.
DriverManager.getConnection() <--이부분에 자신의 DB에 맞는 데이타베이스나 인스턴스를 채워넣으면
될것입니다.
또 sql부분도 오라클인지 mysql인지 선택하여 살리면 될것입니다.
test <-- 테이블 이름만 자신의 테이블 이름으로 바꾸면 될겁니다.
create table test
(memono int auto_increment primary key,
name varchar(20),
content varchar(100),
memodate timestamp);

테이블은 요정도로 만들면 됩니다.

실행화면


 메모 목록
 6 bdddddddd fdsafsdfasdffdsafdsf  (2012-03-30 00:58)
 5 bbbssss xxxxfdsafd  (2012-03-30 00:56)
 4 dddd fdsafsdafsafsd  (2012-03-30 00:49)
 3 ccc fdsafsdafdsafsd  (2012-03-30 00:49)
 1 dsf fdsafd  (2012-03-30 00:45)
+---------------------------------------------------------+
| 메모장 (Ver 1.3) |
+---------------------------------------------------------+
|1-입력 | 2-목록 | 3-최신글 | 4-수정 | 5-삭제 | 9-종료                 |
+---------------------------------------------------------+
메뉴를 선택하세요3


 메모 목록
 6 bdddddddd fdsafsdfasdffdsafdsf  (2012-03-30 00:58)
 5 bbbssss xxxxfdsafd  (2012-03-30 00:56)
 4 dddd fdsafsdafsafsd  (2012-03-30 00:49)
+---------------------------------------------------------+
| 메모장 (Ver 1.3) |
+---------------------------------------------------------+
|1-입력 | 2-목록 | 3-최신글 | 4-수정 | 5-삭제 | 9-종료                 |
+---------------------------------------------------------+
메뉴를 선택하세요


JAVA 메모장 질문입니다.

import java.io.*; import java.awt.*; import java.awt.... newfile = new JMenuItem("새로만들기"); open... GoodMemo(" 메모장 "); ab.setBounds(300,200,600...

java메모장 만들기 인데요 궁금한...

... 질문하신 분도 자바가 객체지향적 언어라는 것을 아실 거라 생각합니다. 그래서... 메모장 보시면, 있는 게 파일메뉴에.. (새로만들기,열기,저장,다른이름으로저장...

메모장 홈피만들기 관련질문.. 내공...

메모장에 테그다 적었는데요 볼려면 어떻게해요??? 그러니까 해놓은걸 볼려면요..... ①우선 메모장을 키세요. ②키셨으면, 메모장에 하고 싶은 태그를 쓰세요. ③자, 그럼...

java로 jsp웹페이지 만들기 질문

... document.Form.submit(); } Controller.java @Controller public class Controller { /** Service, impl 관련*/ @Resource(name="Service") private Service Service;...

java관련질문인데요

... 영어를 메모장에 쓴 후 c:\youngsim에 Hello.java... 그것도 관련있다는데 고수님들 제발 가르쳐주세요..... 만약에 PATH가 없다면 새로만들기를 누르시고요....

Java관련 질문여....

... 있는데여....Java관련 책을 읽게 되었습니다...... 대충 읽어보니...메모장이나 DOS프로그램에 책의... 새로만들기 클릭 변수이름 : JAVA_HOME (사실...

[JAVA] 메모장에서 짠 소스를 이클립스로...

JAVA 초보예요. 안녕하세요. 메모장에 짜여진 소스를... 예를들면 제가 알맞게 질문드리고 있는지 모르겠는데... 실행이 되면 새로만들기에서 프로젝트->자바프로젝트 로...