1. 텍스트게시판하고 sql 연결법.
우선 Maven Repository에서 mysql connector를 검색하여 Gradle코드를 복사하여, intelliJ에 build.gradle에서 dependencies에 붙여넣어준다.
그리고 코끼리마크를 눌러주면된다.
그리고 아래의 JDBC코드를 통해 연결하여 사용할수있다.
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/board?serverTimezone=UTC";
String user = "root";
String pass = "";
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(url, user, pass);
stmt = conn.createStatement();
System.out.println("3번까지 문제 없이 실행");
4. SQL 처리하고 결과 ResultSet에 받아오기
String sql = "SELECT * FROM article";
rs = stmt.executeQuery(sql);
}
} catch(Exception e) {
System.out.println("접속 시도중 문제 발생!!");
}
}
주의할점은 String url에서 localhost는 켜놓은 xampp 포트번호이고, 그옆에 / 이후에 board가 적혀있는자리는 sql의 테이블명이다.
위코드를 응용해서 텍스트게시판에서 add를 구현해보겠다.
그전에 sql에서 테이블과 칼럼들은 미리 생성해두어야한다.
import java.util.Scanner;
public class BoardApp {
Scanner sc = new Scanner(System.in);
ArticleController articleController = new ArticleController();
public void start() {
while (true) {
System.out.print("명령어 : ");
String cmd = sc.nextLine();
if (cmd.equals("exit")) {
System.out.println("프로그램을 종료합니다.");
break;
} else if (cmd.equals("add")) {
articleController.add();
}
}
}
}
위코드는 BoardApp클래스이고 컨트롤러역할로 만들어두었다. 메인클래스에서는 BoardApp객체를 생성하여 start() 함수를 실행하면 아래 코드가 실행된다.
import util.Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;
public class ArticleController {
Scanner sc = new Scanner(System.in);
public void add() {
System.out.print("제목 : ");
String title = sc.nextLine();
System.out.print("내용 : ");
String content = sc.nextLine();
Connection conn = null;
Statement stmt = null;
try {
conn = getConnection();
stmt = conn.createStatement();
String sql = String.format("INSERT INTO textboard SET title = '%s', content = '%s', regDate = '%s'", title, content, Util.getCurrentDate());
stmt.executeUpdate(sql);
System.out.println("게시물이 등록되었습니다.");
} catch (Exception e) {
System.out.println("접속 시도중 문제 발생!!");
}
}
public Connection getConnection() {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/textboard?serverTimezone=UTC";
String user = "root";
String pass = "";
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(url, user, pass);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
위코드가 실질적인 구현코드이다.
우선 Scanner로 저장할 제목과 내용을 받아 변수에 저장해두고, conn변수에 커넥션을 연결해주고, String sql에 sql문법으로 적어주면서 저장한 제목과 내용, 미리 유틸에 만들어둔 날짜데이터를 넣어주면된다.
잘 저장이 되었는지는 sql에서 확인하면 된다.