자바 GUI - 일기장 만들기 (MYSQL 연동)

2024. 1. 17. 17:43Full Stack Course 풀스택과정/JAVA 자바

728x90

배울내용:

자바 데이터베이스 연동

자바 스윙

자바 MYSQL 연동

자바 일기장만들기

자바로 게시판 만들기

자바 GUI 만들기

자바 GUI

GUI 만들기 자바

자바 스윙 쓰는법 

 

 

 

 

 

 

이번시간에는 앞에 썼던 기능들이 다합쳐진 최종본2 라고 볼수있다 

좀더 간결하게 쓰려했지만 맨마지막에 잘못써서 코드가 길어졌다 

 

고칠순있었지만 귀찮아서 그냥 올렸다 

 

 

 

 

 

 

먼저 완성본 모습이다

 

 

 

일기장실시간 시간을 추가했다 

 

 

 

 

 

 

 

 

로그인하기 누르면 이렇게 나오고 

 

 

 

 

로그인하기를 눌러야한다 

그러나 로그인이 안되있어서 로그인 으로가서 로그인후에 

 

 

로그인하기 눌러주면 

 

 

 

 

 

 

 

 

이런식으로 나온다 

이런건 어디서 나오냐면 이전시간에 MYSQL 하고 연동을 해봤었다 

 

 

 

 

 

 

 

DB 에 가보면 이렇게 되어있다 

tt 는 title 제목의 줄인말이고 그외에도 

다른 목적에 필요한 컬럼을 넣어줬다 

 

 

 

 

 

만약 이 위에서 

 

 

마우스 커서를 가져다 되면 버튼을 누를수있는데 누르게 되면 

ID 와 PW를 확인후 DB 에서 자료를 불러온다

 

 

 

 

 

 

 

 

 

 

다른걸 클릭해도 바뀌는걸 볼수있다

 

 

 

 

 

 

 

 

 

 

그리고 

 

 

 

 

 

 

일기장 작성 버튼을 누르면 

 

 

 

 

 

 

 

 

이렇게 새로 작성하는 칸이 나오고 옵션을 적용한뒤에 

제목과 글을 쓰고 저장하기 누르면

 

 

 

 

 

 

 

이렇게 저장되었다고 JOption 알람이 뜨면서 

MYsql 에 있는 해당하는  테이블로 가보면 

 

 

 

 

 

 

 

 

 

이렇게 새롭게 추가가 된걸 볼수있다

 

그리고 

 

 

 

 

 

 

일기장 목록에서 또한

 

 

새롭게 추가 된걸 볼수있다

 

 

그외에 

 

 

 

수정하기 버튼

 

 

 

 

눌르면 다시 Label 에서 수정할수있는 TextArea 로 바뀌면서 

수정이 가능하다 그리고 그걸 저장도 할수있게 Mysql 쿼리문도 수정해줬다

 

 

 

 

 

 

 

 

 

 

DB에서도 확인하면 

 

 

 

 

제대로 바뀐걸 볼수있다

 

 

 

 

당연히 삭제하기 또한 가능하다

 

 

 

 

 

 

이렇게 한번 실수로 누르는걸 방지해 알람창 뛰워주고 

삭제를 한번더 누르면 

 

 

이렇게 알람이뜨고

 

 

 

 

이렇게 삭제가 되있는걸 볼수있다

 

 

 

 

 

또한 로그아웃을 하게되면 다시

 

 

이렇게 되는데 이때 일기장이 다 안보이게 되어 다시로그인을 해야지 보이게 할수있다

 

 

 

 

 

 

 

 

자 이렇게 완성본이 끝이 났다

다음시간에는 프로젝트 하는 느낌으로 

한번 처음부터 다 포스팅 해보겠다 

 

 

 

 

이와같이 점점 기능이 늘고 세밀한 점이 많아지고 하면 

계획을 세우고 코드를 짜야한다는 필요성을 크게 느끼게 된다

 

앞에선 코드를 복잡하지않게 잘 짯지만 이번 일기장에서 조금 복잡하고 조잡하게써

실제 기능할수있는것도 넣을순있지만 너무 많고 조잡해서 

필자는 몇몇 기능은 얌체로 썻다 

그러다 여기에 보여진 기능을 잘활용하면 충분히 구현할수있는 기능이다 

 

 

 

 

 

 

 

참고로 MYSQL은 보안에 문제가 많은데 

그중에서 SQL Injection 이라고 있다

 

 

https://www.google.com/search?q=sql+injection+%EC%9D%B4%EB%9E%80&sca_esv=599065716&bih=1159&biw=1283&hl=en&sxsrf=ACQVn09ifAVK2zsHyM3I7Soa7Phx0i8wEw%3A1705480560533&source=hp&ei=cJGnZb_MHqGPvr0P3d-_oAw&iflsig=ANes7DEAAAAAZaefgK_0M48y9lh_NoDZBxG-PaBQx5qx&ved=0ahUKEwi_xOuXguSDAxWhh68BHd3vD8QQ4dUDCA0&uact=5&oq=sql+injection+%EC%9D%B4%EB%9E%80&gs_lp=Egdnd3Mtd2l6IhRzcWwgaW5qZWN0aW9uIOydtOuegDIFEAAYgAQyBhAAGAgYHkihJlBGWOMlcAV4AJABAZgBfqAB8A6qAQQwLjE3uAEDyAEA-AEBqAIKwgIHECMY6gIYJ8ICChAjGIAEGIoFGCfCAgQQIxgnwgIREC4YgAQYsQMYgwEYxwEY0QPCAgsQABiABBixAxiDAcICCBAAGIAEGLEDwgILEAAYgAQYigUYkQLCAgsQLhjHARjRAxiABMICCxAuGIAEGMcBGNEDwgIFEC4YgATCAggQABiABBjLAQ&sclient=gws-wiz

 

SQL injection

In computing, SQL injection is a code injection technique used to attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution.

www.google.com

 

 

 

궁금하면 위에를 들어가보고 

 

이걸 우리는 방지하기위해서 

sql 코드도 이런식으로 써줘야한다 

 

 

 

 

위와같이 Update diay.... Set tt= ? 이런식으로 tt 가 ~~인것임이 아니라 ? 를주고

PreparedStatement 를 이용해 setString(넘버, 어떤컬럼) 

으로 값을 안전하게 주고 받을수있었다 

 

 

추가적으로 

 자세히보면 ID 를 고정시켜줬는데 이것또한 DB로 연결시켜줄수있다 

그러나 필자는 지친 체력으로 더이상 못하겠으니 한번 고쳐보길 바란다 

 

 

 

참고로 이런식으로

 

 

 

출력을 함으로 제대로 실행시켜지는지도 확인하면 좋다

 

 

 

 

 

다음시간에 Main 에 이때까지 만든 기능을 넣고 좀더 프로젝트 발표개념으로 한번 

설명해보겠다

 

아래는 실행 영상과 코드들이다 

 

 

 

package CARLOS1;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;

public class _5_Diary extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	public static String FilePath = "..\\ProjectTest_CARLOS\\images\\";;
	
	// Diary 전용 =========================

	private int DI_Ck = 0;
	private JPanel Diary_Panel_1; 
	public static JLabel DI_Main_Label;
	public static JLabel DI_L_List_1;
	public static JLabel DI_L_List_2;
	public static JLabel DI_L_List_3;
	public static JLabel DI_L_List_4;
	public static JLabel DI_L_List_5;
	public static JLabel DI_L_List_1_date;
	public static JLabel DI_L_List_2_date;
	public static JLabel DI_L_List_3_date;
	public static JLabel DI_L_List_4_date;
	public static JLabel DI_L_List_5_date;
	public static JPanel DI_P_C_panel1;
	public static JPanel DI_P_C_panel2;
	public static JPanel DI_P_C_panel3;
	public static JLabel DI_L_Title;
	public static JButton DI_B_Write_New;
	public static JButton DI_B_Alternate;
	public static JButton DI_B_Delete;
	public static JButton DI_B_Save;
	private JTextArea DI_TF_Main2;
	private JTextField DI_TF_Title2;

	public static String Diary_Title = "";
	public static String Diary_ID = "admin";	//임시 ID
	public static String Diary_PW = "123456";	//임시 PW 이거 수정시 코드수정해야함 
	public static String DI_B_Save_tmp = "저장하기";
	public static boolean DI_LogInOK = false;
	public static int DI_LogInCnt = 0;
	
	// ================================

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					new Database();
					_5_Diary frame = new _5_Diary();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public _5_Diary() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(0, 0, 1400, 1000);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

		setContentPane(contentPane);
		contentPane.setLayout(null);

		/////////
		// Diary MAIN
		/////////
		Diary_Panel_1 = new JPanel();
		Diary_Panel_1.setBackground(new Color(204, 255, 255));
		Diary_Panel_1.setBorder(new LineBorder(new Color(255, 0, 0), 3, true));
		Diary_Panel_1.setBounds(140, 69, 615, 831);
		contentPane.add(Diary_Panel_1);
		Diary_Panel_1.setLayout(null);

		JButton DI_B_CommentWrite = new JButton("댓글쓰기");
		DI_B_CommentWrite.setOpaque(true);
		DI_B_CommentWrite.setBorderPainted(false);
		DI_B_CommentWrite.setBackground(new Color(133, 241, 233));
		DI_B_CommentWrite.setForeground(new Color(51, 153, 255));
		DI_B_CommentWrite.setFont(new Font("맑은 고딕", Font.BOLD, 18));
		DI_B_CommentWrite.setBounds(479, 497, 113, 34);

		JScrollPane DI_Main_scroll1 = new JScrollPane();
		DI_Main_scroll1.setBounds(25, 77, 567, 410);

		DI_Main_Label = new JLabel("");
		DI_Main_Label.setOpaque(true);
		DI_Main_Label.setBackground(new Color(255, 255, 204));
		DI_Main_Label.setHorizontalAlignment(SwingConstants.CENTER);
		DI_Main_Label.setFont(new Font("굴림체", Font.PLAIN, 15));
		DI_Main_scroll1.setViewportView(DI_Main_Label);

		DI_L_Title = new JLabel("Title : ");
		DI_L_Title.setForeground(new Color(51, 51, 255));
		DI_L_Title.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_L_Title.setBounds(30, 25, 550, 34);

		JLabel DI_L_Info_comment = new JLabel("댓글");
		DI_L_Info_comment.setForeground(new Color(102, 102, 255));
		DI_L_Info_comment.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_L_Info_comment.setBounds(25, 508, 63, 34);

		JPanel DI_P_Comment = new JPanel();
		DI_P_Comment.setBackground(new Color(255, 255, 204));
		DI_P_Comment.setBounds(25, 542, 567, 279);

		DI_P_C_panel1 = new JPanel();
		DI_P_C_panel1.setBounds(0, 10, 567, 80);
		
		JLabel DI_P_C_content1 = new JLabel("부장님 내안에 박혔다");
		DI_P_C_content1.setBounds(22, 28, 388, 53);
		DI_P_C_content1.setVerticalAlignment(SwingConstants.TOP);

		JLabel DI_P_C_name1 = new JLabel("박살이 [ 회원 ]");
		DI_P_C_name1.setBounds(12, 8, 237, 15);
		DI_P_C_name1.setFont(new Font("굴림", Font.BOLD, 15));

		JLabel DI_P_C_L_LikeOrNot1 = new JLabel("♥ : 52   ⅹ : 0");
		DI_P_C_L_LikeOrNot1.setBounds(426, 8, 129, 15);
		DI_P_C_L_LikeOrNot1.setFont(new Font("굴림", Font.BOLD, 15));

		JButton DI__P_B_comment_1 = new JButton("답글");
		DI__P_B_comment_1.setOpaque(true);
		DI__P_B_comment_1.setForeground(new Color(51, 153, 255));
		DI__P_B_comment_1.setFont(new Font("맑은 고딕", Font.BOLD, 10));
		DI__P_B_comment_1.setBorderPainted(false);
		DI__P_B_comment_1.setBackground(new Color(133, 241, 233));
		DI__P_B_comment_1.setBounds(498, 28, 57, 42);

		JButton DI_P_B_bad1 = new JButton("X");
		DI_P_B_bad1.setBackground(new Color(250, 240, 230));
		DI_P_B_bad1.setFont(new Font("굴림", Font.PLAIN, 10));
		DI_P_B_bad1.setBounds(451, 28, 41, 42);

		JButton DI_P_B_good1 = new JButton("♥");
		DI_P_B_good1.setBackground(new Color(250, 240, 230));
		DI_P_B_good1.setFont(new Font("굴림", Font.PLAIN, 10));
		DI_P_B_good1.setBounds(406, 28, 41, 42);

		DI_P_C_panel2 = new JPanel();
		DI_P_C_panel2.setLayout(null);
		DI_P_C_panel2.setBounds(0, 100, 567, 80);

		JLabel DI_P_C_content2 = new JLabel("너무잘부른다 ㄹㅇ ");
		DI_P_C_content2.setVerticalAlignment(SwingConstants.TOP);
		DI_P_C_content2.setBounds(22, 28, 385, 53);

		JLabel DI_P_C_name2 = new JLabel("사리머스 [ 관리자 ]");
		DI_P_C_name2.setFont(new Font("굴림", Font.BOLD, 15));
		DI_P_C_name2.setBounds(12, 8, 247, 15);

		JLabel DI_P_C_L_LikeOrNot2 = new JLabel("♥ : 21   ⅹ : 2");
		DI_P_C_L_LikeOrNot2.setFont(new Font("굴림", Font.BOLD, 15));
		DI_P_C_L_LikeOrNot2.setBounds(426, 8, 129, 15);

		JButton DI__P_B_comment_2 = new JButton("답글");
		DI__P_B_comment_2.setOpaque(true);
		DI__P_B_comment_2.setForeground(new Color(51, 153, 255));
		DI__P_B_comment_2.setFont(new Font("맑은 고딕", Font.BOLD, 10));
		DI__P_B_comment_2.setBorderPainted(false);
		DI__P_B_comment_2.setBackground(new Color(133, 241, 233));
		DI__P_B_comment_2.setBounds(498, 28, 57, 42);

		JButton DI_P_B_bad2 = new JButton("X");
		DI_P_B_bad2.setBackground(new Color(250, 240, 230));
		DI_P_B_bad2.setFont(new Font("굴림", Font.PLAIN, 10));
		DI_P_B_bad2.setBounds(451, 28, 41, 42);

		JButton DI_P_B_good2 = new JButton("♥");
		DI_P_B_good2.setBackground(new Color(250, 240, 230));
		DI_P_B_good2.setFont(new Font("굴림", Font.PLAIN, 10));
		DI_P_B_good2.setBounds(406, 28, 41, 42);

		DI_P_C_panel3 = new JPanel();
		DI_P_C_panel3.setLayout(null);
		DI_P_C_panel3.setBounds(0, 190, 567, 80);

		JLabel DI_P_C_content3 = new JLabel("<html> 내가 더 잘부를듯  ㅋ <br><br> 라고할뻔 ㅋ </html>");
		DI_P_C_content3.setVerticalAlignment(SwingConstants.TOP);
		DI_P_C_content3.setBounds(22, 28, 382, 53);

		JLabel DI_P_C_name3 = new JLabel("벨코즈멸치볶음 [ 회원 ]");
		DI_P_C_name3.setFont(new Font("굴림", Font.BOLD, 15));
		DI_P_C_name3.setBounds(12, 5, 249, 15);

		JButton DI_P_B_good3 = new JButton("♥");
		DI_P_B_good3.setBackground(new Color(250, 240, 230));
		DI_P_B_good3.setFont(new Font("굴림", Font.PLAIN, 10));
		DI_P_B_good3.setBounds(406, 28, 41, 42);

		JButton DI_P_B_bad3 = new JButton("X");
		DI_P_B_bad3.setBackground(new Color(250, 240, 230));
		DI_P_B_bad3.setFont(new Font("굴림", Font.PLAIN, 10));
		DI_P_B_bad3.setBounds(451, 28, 41, 42);

		JLabel DI_P_C_L_LikeOrNot3 = new JLabel("♥ : 2   ⅹ : 32");
		DI_P_C_L_LikeOrNot3.setFont(new Font("굴림", Font.BOLD, 15));
		DI_P_C_L_LikeOrNot3.setBounds(426, 5, 129, 15);

		JButton DI__P_B_comment_3 = new JButton("답글");
		DI__P_B_comment_3.setOpaque(true);
		DI__P_B_comment_3.setForeground(new Color(51, 153, 255));
		DI__P_B_comment_3.setFont(new Font("맑은 고딕", Font.BOLD, 10));
		DI__P_B_comment_3.setBorderPainted(false);
		DI__P_B_comment_3.setBackground(new Color(133, 241, 233));
		DI__P_B_comment_3.setBounds(498, 28, 57, 42);

		JButton DI_B_Exit = new JButton(">");
		DI_B_Exit.setOpaque(true);
		DI_B_Exit.setForeground(new Color(51, 153, 255));
		DI_B_Exit.setFont(new Font("맑은 고딕", Font.BOLD, 17));
		DI_B_Exit.setBorderPainted(false);
		DI_B_Exit.setBackground(new Color(133, 241, 233));
		DI_B_Exit.setBounds(545, 25, 47, 42);

		DI_B_Alternate = new JButton("수정하기");
		DI_B_Alternate.setOpaque(true);
		DI_B_Alternate.setForeground(new Color(51, 153, 255));
		DI_B_Alternate.setFont(new Font("맑은 고딕", Font.BOLD, 18));
		DI_B_Alternate.setBorderPainted(false);
		DI_B_Alternate.setBackground(new Color(133, 241, 233));
		DI_B_Alternate.setBounds(354, 497, 113, 34);

		JButton m_Diary_button = new JButton("일기장");
		m_Diary_button.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		m_Diary_button.setBounds(788, 253, 214, 70);

		JLabel DI_L_LoginState = new JLabel("로그인 상태 :");
		DI_L_LoginState.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_LoginState.setBounds(767, 349, 96, 22);

		JButton DI_B_Login = new JButton("로그인 하기");
		DI_B_Login.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_B_Login.setBounds(788, 381, 214, 51);

		JLabel DI_L_List = new JLabel("일기장 목록 :");
		DI_L_List.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List.setBounds(767, 442, 96, 22);

		JLabel DI_L_List_LastDate = new JLabel("최종수정날짜");
		DI_L_List_LastDate.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_LastDate.setBounds(1217, 442, 96, 22);

		DI_B_Delete = new JButton("삭제하기");
		DI_B_Delete.setOpaque(true);
		DI_B_Delete.setForeground(new Color(51, 153, 255));
		DI_B_Delete.setFont(new Font("맑은 고딕", Font.BOLD, 18));
		DI_B_Delete.setBorderPainted(false);
		DI_B_Delete.setBackground(new Color(133, 241, 233));
		DI_B_Delete.setBounds(229, 497, 113, 34);

		DI_L_List_1_date = new JLabel(" ");
		DI_L_List_2_date = new JLabel(" ");
		DI_L_List_3_date = new JLabel(" ");
		DI_L_List_4_date = new JLabel(" ");
		DI_L_List_5_date = new JLabel(" ");

		DI_L_List_1_date.setBounds(1214, 477, 145, 22);
		DI_L_List_2_date.setBounds(1214, 509, 145, 22);
		DI_L_List_3_date.setBounds(1214, 541, 145, 22);
		DI_L_List_4_date.setBounds(1214, 573, 145, 22);
		DI_L_List_5_date.setBounds(1214, 606, 145, 22);

		DI_L_List_1_date.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_2_date.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_3_date.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_4_date.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_5_date.setFont(new Font("맑은 고딕", Font.BOLD, 15));

		JLabel DI_L_List_N_1 = new JLabel("1 . ");
		JLabel DI_L_List_N_2 = new JLabel("2 . ");
		JLabel DI_L_List_N_3 = new JLabel("3 . ");
		JLabel DI_L_List_N_4 = new JLabel("4 . ");
		JLabel DI_L_List_N_5 = new JLabel("5 . ");

		DI_L_List_N_1.setBounds(767, 479, 96, 22);
		DI_L_List_N_2.setBounds(767, 511, 96, 22);
		DI_L_List_N_3.setBounds(767, 543, 96, 22);
		DI_L_List_N_4.setBounds(767, 576, 96, 22);
		DI_L_List_N_5.setBounds(767, 608, 96, 22);

		DI_L_List_N_1.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_N_2.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_N_3.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_N_4.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_N_5.setFont(new Font("맑은 고딕", Font.BOLD, 15));

		DI_L_List_1 = new JLabel("");
		DI_L_List_2 = new JLabel("");
		DI_L_List_3 = new JLabel("");
		DI_L_List_4 = new JLabel("");
		DI_L_List_5 = new JLabel("");

		DI_L_List_1.setOpaque(true);
		DI_L_List_2.setOpaque(true);
		DI_L_List_3.setOpaque(true);
		DI_L_List_4.setOpaque(true);
		DI_L_List_5.setOpaque(true);

		DI_L_List_1.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_2.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_3.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_4.setFont(new Font("맑은 고딕", Font.BOLD, 15));
		DI_L_List_5.setFont(new Font("맑은 고딕", Font.BOLD, 15));

		DI_L_List_1.setBounds(794, 479, 408, 22);
		DI_L_List_2.setBounds(794, 511, 409, 22);
		DI_L_List_3.setBounds(794, 543, 409, 22);
		DI_L_List_4.setBounds(794, 576, 409, 22);
		DI_L_List_5.setBounds(794, 608, 409, 22);

		DI_L_List_2.setBackground(Color.LIGHT_GRAY);
		DI_L_List_3.setBackground(Color.LIGHT_GRAY);
		DI_L_List_4.setBackground(Color.LIGHT_GRAY);
		DI_L_List_5.setBackground(Color.LIGHT_GRAY);

		DI_L_List_1.setOpaque(true);
		DI_L_List_2.setOpaque(true);
		DI_L_List_3.setOpaque(true);
		DI_L_List_4.setOpaque(true);
		DI_L_List_5.setOpaque(true);

		DI_L_List_1.setBackground(Color.LIGHT_GRAY);
		DI_L_List_2.setBackground(Color.LIGHT_GRAY);
		DI_L_List_3.setBackground(Color.LIGHT_GRAY);
		DI_L_List_4.setBackground(Color.LIGHT_GRAY);
		DI_L_List_5.setBackground(Color.LIGHT_GRAY);

		Diary_Panel_1.add(DI_B_Delete);
		Diary_Panel_1.add(DI_B_CommentWrite);
		Diary_Panel_1.add(DI_Main_scroll1);
		Diary_Panel_1.add(DI_P_Comment);
		Diary_Panel_1.add(DI_L_Info_comment);
		Diary_Panel_1.add(DI_L_Title);
		DI_P_Comment.add(DI_P_C_panel1);
		DI_P_C_panel1.add(DI_P_C_content1);
		DI_P_C_panel1.add(DI_P_C_name1);
		DI_P_C_panel1.add(DI_P_C_L_LikeOrNot1);
		DI_P_C_panel1.add(DI__P_B_comment_1);
		DI_P_C_panel1.add(DI_P_B_bad1);
		DI_P_C_panel1.add(DI_P_B_good1);
		DI_P_Comment.add(DI_P_C_panel2);
		DI_P_C_panel2.add(DI_P_C_content2);
		DI_P_C_panel2.add(DI_P_C_name2);
		DI_P_C_panel2.add(DI_P_C_L_LikeOrNot2);
		DI_P_C_panel2.add(DI__P_B_comment_2);
		DI_P_C_panel2.add(DI_P_B_bad2);
		DI_P_C_panel2.add(DI_P_B_good2);
		DI_P_Comment.add(DI_P_C_panel3);
		DI_P_C_panel3.add(DI_P_C_content3);
		DI_P_C_panel3.add(DI_P_C_name3);
		DI_P_C_panel3.add(DI_P_B_good3);
		DI_P_C_panel3.add(DI_P_B_bad3);
		DI_P_C_panel3.add(DI_P_C_L_LikeOrNot3);
		DI_P_C_panel3.add(DI__P_B_comment_3);
		Diary_Panel_1.add(DI_B_Exit);
		Diary_Panel_1.add(DI_B_Alternate);
		contentPane.add(m_Diary_button);
		contentPane.add(DI_L_LoginState);
		contentPane.add(DI_B_Login);
		contentPane.add(DI_L_List);
		contentPane.add(DI_L_List_1_date);
		contentPane.add(DI_L_List_2_date);
		contentPane.add(DI_L_List_3_date);
		contentPane.add(DI_L_List_4_date);
		contentPane.add(DI_L_List_5_date);
		contentPane.add(DI_L_List_N_1);
		contentPane.add(DI_L_List_N_2);
		contentPane.add(DI_L_List_N_3);
		contentPane.add(DI_L_List_N_4);
		contentPane.add(DI_L_List_N_5);
		contentPane.add(DI_L_List_1);
		contentPane.add(DI_L_List_2);
		contentPane.add(DI_L_List_3);
		contentPane.add(DI_L_List_4);
		contentPane.add(DI_L_List_5);
		contentPane.add(DI_L_List_LastDate);

		DI_P_Comment.setLayout(null);
		DI_P_C_panel1.setLayout(null);

		DI_B_Write_New = new JButton("일기장 작성");
		DI_B_Write_New.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_B_Write_New.setBounds(1151, 645, 214, 51);
		contentPane.add(DI_B_Write_New);

		JPanel Diary_Panel_2 = new JPanel();
		Diary_Panel_2.setBackground(new Color(204, 255, 255));
		Diary_Panel_2.setBorder(new LineBorder(new Color(255, 0, 0), 3, true));
		Diary_Panel_2.setBounds(140, 69, 615, 831);
		contentPane.add(Diary_Panel_2);
		Diary_Panel_2.setLayout(null);

		JScrollPane DI_Main_scroll2 = new JScrollPane();
		DI_Main_scroll2.setBounds(22, 76, 567, 410);
		Diary_Panel_2.add(DI_Main_scroll2);

		DI_TF_Main2 = new JTextArea();
		DI_TF_Main2.setColumns(10);
		DI_TF_Main2.setOpaque(true);
		DI_TF_Main2.setBackground(new Color(255, 255, 204));
		DI_TF_Main2.setFont(new Font("굴림체", Font.PLAIN, 15));

		DI_Main_scroll2.setViewportView(DI_TF_Main2);

		DI_TF_Title2 = new JTextField();
		DI_TF_Title2.setBounds(22, 25, 567, 40);
		DI_TF_Title2.setOpaque(true);
		DI_TF_Title2.setBackground(new Color(255, 255, 204));
		DI_TF_Title2.setFont(new Font("굴림체", Font.PLAIN, 15));
		Diary_Panel_2.add(DI_TF_Title2);
		DI_TF_Title2.setColumns(10);

		DI_B_Save = new JButton("저장하기");
		DI_B_Save.setOpaque(true);
		DI_B_Save.setForeground(new Color(51, 153, 255));
		DI_B_Save.setFont(new Font("맑은 고딕", Font.BOLD, 18));
		DI_B_Save.setBorderPainted(false);
		DI_B_Save.setBackground(new Color(133, 241, 233));
		DI_B_Save.setBounds(476, 495, 113, 34);
		Diary_Panel_2.add(DI_B_Save);

		JLabel DI_L_Info_options = new JLabel("옵션");
		DI_L_Info_options.setForeground(new Color(102, 102, 255));
		DI_L_Info_options.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_L_Info_options.setBounds(22, 537, 63, 34);
		Diary_Panel_2.add(DI_L_Info_options);

		JButton DI_B_Cancel = new JButton("취소하기");
		DI_B_Cancel.setOpaque(true);
		DI_B_Cancel.setForeground(new Color(51, 153, 255));
		DI_B_Cancel.setFont(new Font("맑은 고딕", Font.BOLD, 18));
		DI_B_Cancel.setBorderPainted(false);
		DI_B_Cancel.setBackground(new Color(133, 241, 233));
		DI_B_Cancel.setBounds(351, 495, 113, 34);
		Diary_Panel_2.add(DI_B_Cancel);

		// "전체공유" 라디오 버튼 생성
		JRadioButton DI_CB_AllShare = new JRadioButton("전체공유");
		DI_CB_AllShare.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_CB_AllShare.setBackground(new Color(204, 255, 255));
		DI_CB_AllShare.setSelected(true);
		DI_CB_AllShare.setBounds(41, 588, 119, 23);
		Diary_Panel_2.add(DI_CB_AllShare);

		// "나만보기" 라디오 버튼 생성
		JRadioButton DI_CB_OnlyMe = new JRadioButton("나만보기");
		DI_CB_OnlyMe.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_CB_OnlyMe.setBackground(new Color(204, 255, 255));
		DI_CB_OnlyMe.setBounds(41, 620, 119, 23);
		Diary_Panel_2.add(DI_CB_OnlyMe);

		JRadioButton DI_CB_AllowComment = new JRadioButton("댓글허용");
		DI_CB_AllowComment.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_CB_AllowComment.setBackground(new Color(204, 255, 255));
		DI_CB_AllowComment.setSelected(true);
		DI_CB_AllowComment.setBounds(241, 588, 119, 23);
		Diary_Panel_2.add(DI_CB_AllowComment);

		// "나만보기" 라디오 버튼 생성
		JRadioButton DI_CB_NoComment = new JRadioButton("비댓글");
		DI_CB_NoComment.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_CB_NoComment.setBackground(new Color(204, 255, 255));
		DI_CB_NoComment.setBounds(241, 620, 119, 23);
		Diary_Panel_2.add(DI_CB_NoComment);

		JRadioButton DI_CB_OnlyFriends = new JRadioButton("친구만 허용");
		DI_CB_OnlyFriends.setFont(new Font("맑은 고딕", Font.BOLD, 20));
		DI_CB_OnlyFriends.setBackground(new Color(204, 255, 255));
		DI_CB_OnlyFriends.setBounds(41, 658, 159, 23);
		Diary_Panel_2.add(DI_CB_OnlyFriends);

		// 두 버튼을 하나의 그룹에 추가
		ButtonGroup group = new ButtonGroup();
		group.add(DI_CB_AllShare);
		group.add(DI_CB_OnlyFriends);
		group.add(DI_CB_OnlyMe);

		ButtonGroup group2 = new ButtonGroup();
		group2.add(DI_CB_AllowComment);
		group2.add(DI_CB_NoComment);

		setLocationRelativeTo(null);
		Diary_Panel_1.setVisible(false);
		Diary_Panel_2.setVisible(false);
		DI_P_C_panel1.setVisible(false);
		DI_P_C_panel2.setVisible(false);
		DI_P_C_panel3.setVisible(false); 
		Diary_Panel_1.setVisible(false);
		DI_L_LoginState.setVisible(false);
		DI_B_Login.setVisible(false);
		DI_L_List.setVisible(false);
		DI_L_List_1_date.setVisible(false);
		DI_L_List_2_date.setVisible(false);
		DI_L_List_3_date.setVisible(false);
		DI_L_List_4_date.setVisible(false);
		DI_L_List_5_date.setVisible(false);
		DI_L_List_N_1.setVisible(false);
		DI_L_List_N_2.setVisible(false);
		DI_L_List_N_3.setVisible(false);
		DI_L_List_N_4.setVisible(false);
		DI_L_List_N_5.setVisible(false);
		DI_L_List_1.setVisible(false);
		DI_L_List_2.setVisible(false);
		DI_L_List_3.setVisible(false);
		DI_L_List_4.setVisible(false);
		DI_L_List_5.setVisible(false);
		DI_L_List_LastDate.setVisible(false);
		DI_B_Write_New.setVisible(false);
		
		///////////////////////////////////////////////////////////////////////
		

		// ===================================
		
		//////////////
		// Diary 이벤트 
		//////////////
	
		// 새 글쓰기 저장하기
		DI_B_Save.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) { 
				Database.save_content_DI(DI_TF_Title2.getText(), DI_TF_Main2.getText());
				Database.logincheck_DI(Diary_ID, Diary_PW);
			}
		});

		// 새 글쓰기 취소하기
		DI_B_Cancel.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Diary_Panel_1.setVisible(false);
				Diary_Panel_2.setVisible(false);
				DI_L_Title.setText("");
				DI_Main_Label.setText("");
				System.out.println("새글쓰기 취소");
			}
		});
		

		// 댓글 쓰기
		DI_B_CommentWrite.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JOptionPane.showMessageDialog(null, "권한없음", "경고 메시지 내용", JOptionPane.WARNING_MESSAGE);
			}
		});

		// 글 삭제하기
		DI_B_Delete.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String[] delete_choices = { "취소", "삭제" };
				int choice = JOptionPane.showOptionDialog(null, "정말 삭제 하시겠습니까??", "삭제", 0, JOptionPane.YES_NO_OPTION,
						null, delete_choices, delete_choices[0]);

				if (choice == 1) { // '삭제'
					System.out.println("삭제 되었습니다");
					Database.delete_content_DI(DI_L_Title.getText()); 
					DI_L_Title.setText("");
					DI_Main_Label.setText("");
					System.out.println("글삭제하기");
					
				} else if (choice == 0) { // '취소'
					System.out.println("취소 되었습니다"); 
				}
			}
		});
 

		// 글 수정하기
		DI_B_Alternate.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Diary_Panel_1.setVisible(false);
				Diary_Panel_2.setVisible(true);
				String [] to_remove = {"<html>", "<br>", "</html>"};
				DI_B_Save.setText("수정하기");
				DI_B_Save_tmp = "수정하기";
				
				String tmpContent = DI_Main_Label.getText(); 
				
				for(int i=0; i< to_remove.length; i++) { 
					tmpContent = tmpContent.replaceAll(to_remove[i], ""); 
				}
				DI_TF_Main2.setText(tmpContent);
				DI_TF_Title2.setText(DI_L_Title.getText());
				
			}
		});

		// 새 글쓰기
		DI_B_Write_New.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Diary_Panel_1.setVisible(false);
				Diary_Panel_2.setVisible(true);
				DI_B_Save.setText("저장하기");
			}
		});

		// 일기장 나가기
		DI_B_Exit.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				_5_Diary.DI_Main_Label.setText("");
				DI_L_Title.setText("Title : ");
				
				Diary_Panel_1.setVisible(false);
				DI_P_C_panel1.setVisible(false);
				DI_P_C_panel2.setVisible(false);
				DI_P_C_panel3.setVisible(false);
			}
		});

		/////////////////
		// 메인버튼 일기장
		/////////////////
		m_Diary_button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				DI_Ck++;
				if (DI_Ck % 2 == 0) {
					Diary_Panel_2.setVisible(false);
					Diary_Panel_1.setVisible(false);
					DI_L_LoginState.setVisible(false);
					DI_B_Login.setVisible(false);
					DI_L_List.setVisible(false);
					DI_L_List_1_date.setVisible(false);
					DI_L_List_2_date.setVisible(false);
					DI_L_List_3_date.setVisible(false);
					DI_L_List_4_date.setVisible(false);
					DI_L_List_5_date.setVisible(false);
					DI_L_List_N_1.setVisible(false);
					DI_L_List_N_2.setVisible(false);
					DI_L_List_N_3.setVisible(false);
					DI_L_List_N_4.setVisible(false);
					DI_L_List_N_5.setVisible(false);
					DI_L_List_1.setVisible(false);
					DI_L_List_2.setVisible(false);
					DI_L_List_3.setVisible(false);
					DI_L_List_4.setVisible(false);
					DI_L_List_5.setVisible(false);
					DI_L_List_LastDate.setVisible(false);
					DI_B_Write_New.setVisible(false);
				} else {
					Diary_Panel_1.setVisible(true);
					Diary_Panel_1.setVisible(true);
					DI_L_LoginState.setVisible(true);
					DI_B_Login.setVisible(true);
					DI_L_List.setVisible(true);
					DI_L_List_1_date.setVisible(true);
					DI_L_List_2_date.setVisible(true);
					DI_L_List_3_date.setVisible(true);
					DI_L_List_4_date.setVisible(true);
					DI_L_List_5_date.setVisible(true);
					DI_L_List_N_1.setVisible(true);
					DI_L_List_N_2.setVisible(true);
					DI_L_List_N_3.setVisible(true);
					DI_L_List_N_4.setVisible(true);
					DI_L_List_N_5.setVisible(true);
					DI_L_List_1.setVisible(true);
					DI_L_List_2.setVisible(true);
					DI_L_List_3.setVisible(true);
					DI_L_List_4.setVisible(true);
					DI_L_List_5.setVisible(true);
					DI_L_List_LastDate.setVisible(true);
					DI_B_Write_New.setVisible(true);
				}

			}
		});

		//////////
		/// 메인 로그인 하기 버튼
		//////////
		DI_B_Login.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				DI_LogInCnt++;
				if (DI_LogInCnt % 2 == 0) {
					DI_B_Login.setText("로그인 하기");
					DI_L_Title.setText("");
					DI_Main_Label.setText("");
					DI_L_List_1.setText("");
					DI_L_List_2.setText("");
					DI_L_List_3.setText("");
					DI_L_List_4.setText("");
					DI_L_List_5.setText("");
					DI_L_List_1_date.setText("");
					DI_L_List_2_date.setText("");
					DI_L_List_3_date.setText("");
					DI_L_List_4_date.setText("");
					DI_L_List_5_date.setText("");
					Diary_ID = "";
					Diary_PW = "";
				} else {
					if (Database.logincheck_DI(Diary_ID, Diary_PW)) {
						if (DI_LogInOK) {
							DI_B_Login.setText("로그아웃");
							
						} else {
							DI_LogInOK = false;
							
						}
					}
				}
			}
		});

		///////////////
		// 일기장 목록 1 ~ 5
		///////////////// 마우스 커서 올리면 색변함 , 커서변함
		DI_L_List_1.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				System.out.println("1번 클릭됨 ");
				if (DI_LogInOK == true) {
					System.out.println("로그인 1번 확인 ");
					Database.open_content_DI(Diary_ID, Diary_PW, 1);
					if (DI_B_Login.getText().equals("로그아웃")) {
						DI_P_C_content1.setText("부장님 내안에 박혔다");
						DI_P_C_name1.setText("박살이 [ 회원 ]");
						DI_P_C_L_LikeOrNot1.setText("♥ : 52   ⅹ : 0");  
						DI_P_C_panel1.setVisible(true);
						DI_P_C_panel2.setVisible(true);
						DI_P_C_panel3.setVisible(true);

					}
				}
			}

			@Override
			public void mouseEntered(MouseEvent e) {
				DI_L_List_1.setBackground(Color.GREEN);
				DI_L_List_1.setCursor(new Cursor(Cursor.HAND_CURSOR));

			}

			@Override
			public void mouseExited(MouseEvent e) {
				DI_L_List_1.setBackground(Color.LIGHT_GRAY);
				DI_L_List_1.setCursor(Cursor.getDefaultCursor());

			}
		});

		DI_L_List_2.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				System.out.println("2번 클릭됨 ");
				if (DI_LogInOK == true) {
					System.out.println("로그인 2번 확인 ");
					Database.open_content_DI(Diary_ID, Diary_PW, 2);
					DI_P_C_content1.setText("멍멍");
					DI_P_C_name1.setText("바보를 보면 짓는개 ");
					DI_P_C_L_LikeOrNot1.setText("♥ : 24   ⅹ : 0");

					DI_P_C_panel1.setVisible(true);
					DI_P_C_panel2.setVisible(false);
					DI_P_C_panel3.setVisible(false);
				}
			}

			@Override
			public void mouseEntered(MouseEvent e) {
				DI_L_List_2.setBackground(Color.GREEN);
				DI_L_List_2.setCursor(new Cursor(Cursor.HAND_CURSOR));
			}

			@Override
			public void mouseExited(MouseEvent e) {
				DI_L_List_2.setBackground(Color.LIGHT_GRAY);
				DI_L_List_2.setCursor(Cursor.getDefaultCursor());

			}
		});

		DI_L_List_3.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				System.out.println("3번 클릭됨 ");
				if (DI_LogInOK == true) {
					Database.open_content_DI(Diary_ID, Diary_PW, 3);
					System.out.println("로그인 3번 확인 ");
					DI_P_C_panel1.setVisible(false);
					DI_P_C_panel2.setVisible(false);
					DI_P_C_panel3.setVisible(false);
				}
			}

			@Override
			public void mouseEntered(MouseEvent e) {
				DI_L_List_3.setBackground(Color.GREEN);
				DI_L_List_3.setCursor(new Cursor(Cursor.HAND_CURSOR));
			}

			@Override
			public void mouseExited(MouseEvent e) {
				DI_L_List_3.setBackground(Color.LIGHT_GRAY);
				DI_L_List_3.setCursor(Cursor.getDefaultCursor());

			}
		});

		DI_L_List_4.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				System.out.println("4번 클릭됨 ");
				if (DI_LogInOK == true) {
					Database.open_content_DI(Diary_ID, Diary_PW, 4);
					System.out.println("로그인 4번 확인 ");
					DI_P_C_panel1.setVisible(false);
					DI_P_C_panel2.setVisible(false);
					DI_P_C_panel3.setVisible(false);
				}
			}

			@Override
			public void mouseEntered(MouseEvent e) {
				DI_L_List_4.setBackground(Color.GREEN);
				DI_L_List_4.setCursor(new Cursor(Cursor.HAND_CURSOR));
			}

			@Override
			public void mouseExited(MouseEvent e) {
				DI_L_List_4.setBackground(Color.LIGHT_GRAY);
				DI_L_List_4.setCursor(Cursor.getDefaultCursor());

			}
		});

		DI_L_List_5.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				System.out.println("5번 클릭됨 ");
				if (DI_LogInOK == true) {
					Database.open_content_DI(Diary_ID, Diary_PW, 5);
					System.out.println("로그인 5번 확인 ");
					DI_P_C_panel1.setVisible(false);
					DI_P_C_panel2.setVisible(false);
					DI_P_C_panel3.setVisible(false);
				}
			}

			@Override
			public void mouseEntered(MouseEvent e) {
				DI_L_List_5.setBackground(Color.GREEN);
				DI_L_List_5.setCursor(new Cursor(Cursor.HAND_CURSOR));
			}

			@Override
			public void mouseExited(MouseEvent e) {
				DI_L_List_5.setBackground(Color.LIGHT_GRAY);
				DI_L_List_5.setCursor(Cursor.getDefaultCursor());

			}
		});

	}
}

 

 

 

DB



package CARLOS1;

import java.sql.*;

import javax.swing.JOptionPane;

public class Database {
	static Connection con = null;
	static Statement stmt = null;
	String url = "jdbc:mysql://localhost:3306/java_momo_box";
	String user = "admin";
	String passwd = "carlos%123";

	Database() { // 데이터베이스
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			con = DriverManager.getConnection(url, user, passwd);
			stmt = con.createStatement();
			System.out.println("MySQL 서버 연동 성공");
		} catch (Exception e) {
			System.out.println("MySQL 서버 연동 실패 > " + e.toString());
		}
	}

	// 로그인 정보를 확인
	static boolean logincheck(String _i, String _p) {
		boolean flag = false;

		String id = _i;
		String pw = _p;
		try {
			String checkingStr = "SELECT pw,nm FROM loginjava WHERE id='" + id + "'";
			ResultSet result = stmt.executeQuery(checkingStr);

			while (result.next()) {
				if (pw.equals(result.getString("pw"))) {
					flag = true;
					System.out.println("로그인 성공");
					Main.WC_L_TF_3_1 = result.getString("nm");
				}

				else {
					flag = false;
					System.out.println("로그인 실패");
				}
			}
		} catch (Exception e) {
			flag = false;
			System.out.println("로그인 실패 > " + e.toString());
		}

		return flag;
	}

	// 회원가입
	static boolean joinCheck(String _i, String _p, String _n, String _ph) {
		boolean flag = false;
		String id = _i;
		String pw = _p;
		String nm = _n;
		String ph = _ph;

		try {
			String insertStr = "INSERT INTO loginjava (id, pw, nm, ph)  VALUES('" + id + "', '" + pw + "', '" + nm
					+ "','" + ph + "')";
			stmt.executeUpdate(insertStr);

			flag = true;
			System.out.println("회원가입 성공");
		} catch (Exception e) {
			flag = false;
			System.out.println("회원가입 실패 > " + e.toString());
		}
		return flag;
	}

	// 로그인 정보를 확인
	static boolean findId(String _n, String _p) {
		boolean flag3 = false;
		String nm = _n;
		String ph = _p;

		try {
			String checkingStr = "SELECT id,nm FROM loginjava WHERE nm='" + nm + "'";
			ResultSet result = stmt.executeQuery(checkingStr);

			while (result.next()) {
				if (ph.equals(result.getString("id"))) {
					flag3 = true;
					System.out.println("아이디가 있습니다. 아이디는 " + result.getString("id") + " 입니다.");
					JOptionPane.showMessageDialog(null,
							result.getString("nm") + "  님의  \n아이디는 " + result.getString("id") + " 입니다. ");
				} else {
					flag3 = false;
					System.out.println("없는 아이디 입니다. 또는 입력이 틀립니다.");
				}
			}
		} catch (Exception e) {
			flag3 = false;
			System.out.println("로그인 실패 > " + e.toString());
		}
		return flag3;
	}

	// 비밀번호 정보를 확인
	static boolean findPw(String _i, String _n) {
		boolean flag = false;
		String id = _i;
		String nm = _n;

		try {
			String checkingStr = "SELECT pw,id,title,memo FROM loginjava WHERE id='" + id + "'";
			ResultSet result = stmt.executeQuery(checkingStr);

			while (result.next()) {
				if (nm.equals(result.getString("nm"))) {
					flag = true;
					System.out.println("회원님의 아이디 비밀번호는 " + result.getString("pw") + " 입니다.");
					JOptionPane.showMessageDialog(null,
							result.getString("_i") + "  님의  \n비밀번호는 " + result.getString("pw") + " 입니다. ");
				} else {
					flag = false;
					System.out.println("없는 아이디 입니다. 또는 입력이 틀립니다.");
				}
			}
		} catch (Exception e) {
			flag = false;
			System.out.println("로그인 실패 > " + e.toString());
		}
		return flag;
	}

	// Diary 용
	static boolean _diary(String _id, String _pw, String _tt, String _ct, String _dt, String _cn, String _cm,
			String _gd, String _bd, String _cdt, String _seq) {
		boolean flag = false;
		String id = _id; // 아이디
		String pw = _pw; // 비번
		String tt = _tt; // 제목 title
		String ct = _ct; // 구성 content
		String dt = _dt; // 날짜 date
		String cn = _cn; // 댓글이름 comment name
		String cm = _cm; // 댓글 comment message
		String gd = _gd; // 댓글 좋아요 good
		String bd = _bd; // 댓글 나빠요 bad
		String cdt = _cdt; // 댓글날짜 comment date
		String seq = _seq; // 숫자 sequences

		try {
			String checkingStr = "SELECT tt,ct,dt,cn,cm,gd,bd,cdt,seq FROM diary_box WHERE id='" + id + "'";
			ResultSet result = stmt.executeQuery(checkingStr);

			while (result.next()) {
				if (pw.equals(result.getString("tt"))) {
					flag = true;
					System.out.println("성공");
					Main.DI_Main_Label.setText(result.getString("ct"));
				}

				else {
					flag = false;
					System.out.println(" 실패");
				}
			}
		} catch (Exception e) {
			flag = false;
			System.out.println("실패 > " + e.toString());
		}

		return flag;
	}

	// Diary 로그인 정보를 확인
	static boolean logincheck_DI(String _id, String _pw) {
		boolean flag = false;

		String id = _id;
		String pw = _pw;
		try {
			String checkingStr = "SELECT pw,tt,ct,dt,seq FROM diary_box WHERE id='" + id + "'";
			ResultSet result = stmt.executeQuery(checkingStr);

			while (result.next()) {
				if (pw.equals(result.getString("pw"))) {
					flag = true;
					Main.DI_LogInOK = true;
					System.out.println("로그   성공");
					// 제목 불러오기 // seq 로
					if (result.getString("seq").equals("1")) {
						Main.DI_L_List_1.setText(result.getString("tt"));
						Main.DI_L_List_1_date.setText(result.getString("dt"));
					} else if (result.getString("seq").equals("2")) {
						Main.DI_L_List_2.setText(result.getString("tt"));
						Main.DI_L_List_2_date.setText(result.getString("dt"));
					} else if (result.getString("seq").equals("3")) {
						Main.DI_L_List_3.setText(result.getString("tt"));
						Main.DI_L_List_3_date.setText(result.getString("dt"));
					} else if (result.getString("seq").equals("4")) {
						Main.DI_L_List_4.setText(result.getString("tt"));
						Main.DI_L_List_4_date.setText(result.getString("dt"));
					} else if (result.getString("seq").equals("5")) {
						Main.DI_L_List_5.setText(result.getString("tt"));
						Main.DI_L_List_5_date.setText(result.getString("dt"));
					}
				}

				else {
					flag = false;
					System.out.println("로그  실패");
				}
			}
		} catch (Exception e) {
			flag = false;
			System.out.println("로그  실패 > " + e.toString());
		}
		return flag;
	}

	// Diary 버튼클릭시 글 출력창
	static boolean open_content_DI(String _id, String _pw, int _ck) {
		boolean flag = false;
		String id = _id;
		String pw = _pw;
		int ck = _ck;
		try {
			String checkingStr = "SELECT pw,tt,ct,dt,seq FROM diary_box WHERE id='" + id + "'";
			ResultSet result = stmt.executeQuery(checkingStr);

			while (result.next()) {
				if (pw.equals(result.getString("pw"))) {
					String[] tmpList = null;
					String tmp = "";
					flag = true;
					Main.DI_LogInOK = true;
					System.out.println("로그 성공");
					//
					if (result.getString("seq").equals("1") && ck == 1) {
						tmpList = result.getString("ct").split("\n");
						for (int i = 0; i < tmpList.length; i++) {
							tmp += tmpList[i] + "<br>";
						}
						Main.DI_Main_Label.setText("<html>" + tmp + "</html>");
						Main.DI_L_Title.setText(result.getString("tt"));
						break;
					} else if (result.getString("seq").equals("2") && ck == 2) {
						tmpList = result.getString("ct").split("\n");
						for (int i = 0; i < tmpList.length; i++) {
							tmp += tmpList[i] + "<br>";
						}
						Main.DI_Main_Label.setText("<html>" + tmp + "</html>");
						Main.DI_L_Title.setText(result.getString("tt"));

						break;
					} else if (result.getString("seq").equals("3") && ck == 3) {
						tmpList = result.getString("ct").split("\n");
						for (int i = 0; i < tmpList.length; i++) {
							tmp += tmpList[i] + "<br>";
						}
						Main.DI_Main_Label.setText("<html>" + tmp + "</html>");
						Main.DI_L_Title.setText(result.getString("tt"));
						System.out.println("11");
						break;
					} else if (result.getString("seq").equals("4") && ck == 4) {
						tmpList = result.getString("ct").split("\n");
						for (int i = 0; i < tmpList.length; i++) {
							tmp += tmpList[i] + "<br>";
						}
						Main.DI_Main_Label.setText("<html>" + tmp + "</html>");
						Main.DI_L_Title.setText(result.getString("tt"));
						break;
					} else if (result.getString("seq").equals("5") && ck == 5) {
						tmpList = result.getString("ct").split("\n");
						for (int i = 0; i < tmpList.length; i++) {
							tmp += tmpList[i] + "<br>";
						}
						Main.DI_Main_Label.setText("<html>" + tmp + "</html>");
						Main.DI_L_Title.setText(result.getString("tt"));
						break;
					}
				} else {
					flag = false;
					System.out.println("로그  실패");
				}
			}
		} catch (Exception e) {
			flag = false;
			System.out.println("로그  실패 >> " + e.toString());
		}
		return flag;
	}

	// DIARY글 삭제하기
	// Diary 버튼클릭시 글 출력창 + SQL injection 방지로 PreparedStatement 사용
	static boolean delete_content_DI(String _title) {
		boolean flag = false;
		String title = _title;
		try {
			String sql = "DELETE FROM diary_box WHERE tt = ?";
			PreparedStatement pstmt = con.prepareStatement(sql);
			pstmt.setString(1, title); // 첫 번째 물음표에 title 값을 설정

			int rowsAffected = pstmt.executeUpdate();
			if (rowsAffected > 0) {
				System.out.println("삭제완료! ");
				JOptionPane.showMessageDialog(null, "삭제 되었습니다");
				
				flag = true;
			} else {
				System.out.println("삭제할 데이터가 없습니다.");
			}
		} catch (Exception e) {
			System.out.println("로그 실패 >> " + e.toString());
		}
		return flag;
	}

	// DIARY 새 글 작성하기
	static boolean save_content_DI(String _title, String _content) {
		if (Main.DI_B_Save_tmp.equals("수정하기") && Main.Diary_ID.equals("admin")) { // ★★★★★★★★★
			boolean flag = false;
			String title = _title;
			String content = _content;
			String tmp = "";
			try {
				// seq 값 찾기
				String findSeqQuery = "SELECT seq FROM diary_box WHERE tt = ?";
				PreparedStatement findSeq = con.prepareStatement(findSeqQuery);
				findSeq.setString(1, title);
				ResultSet resultSet = findSeq.executeQuery();
				if (resultSet.next()) {
					tmp = resultSet.getString("seq");
					System.out.println("tmp = " + tmp);
				}

				// 기존 데이터 업데이트
				String sql = "UPDATE diary_box SET tt = ?, ct = ? WHERE seq = '" + tmp + "'";
				PreparedStatement pstmt = con.prepareStatement(sql);
				pstmt.setString(1, title);
				pstmt.setString(2, content);

				int rowsAffected = pstmt.executeUpdate();
				if (rowsAffected > 0) {
					System.out.println("수정완료!");
					JOptionPane.showMessageDialog(null, "수정되었습니다");
					flag = true;
				} else {
					System.out.println("수정실패.");
				}
			} catch (Exception e) {
				System.out.println("로그 실패 >> " + e.toString());
			}
			return flag;
		} else {
			if (!Main.Diary_ID.equals("admin")) {
				JOptionPane.showMessageDialog(null, "로그인부터 해주세요");
			} else {
				boolean flag = false;
				String title = _title;
				String content = _content;
				if (title.equals("") || title == null) {
					JOptionPane.showMessageDialog(null, "제목을 입력해주세요 ");
					return flag;
				} else {
					try {
						String sql = "INSERT INTO diary_box (tt, ct, id, pw, dt, cn, cm, gd, bd, cdt, seq) VALUES(?, ?, 'admin', '123456', 'Just Now', '', '', '', '', '', '5')";
						PreparedStatement pstmt = con.prepareStatement(sql);
						pstmt.setString(1, title); // 첫 번째 물음표에 title 값을 설정
						pstmt.setString(2, content); // 두 번째 물음표에 content 값을 설정

						int rowsAffected = pstmt.executeUpdate();
						if (rowsAffected > 0) {
							System.out.println("저장완료!");
							JOptionPane.showMessageDialog(null, "저장되었습니다");
							flag = true;
						} else {
							System.out.println("저장실패.");
						}
					} catch (Exception e) {
						System.out.println("로그 실패 >> " + e.toString());
					}
					return flag;
				}
			} 
		}
		return false;
	}

}

 

 

 

 

 

 

 

 

728x90