DB 생성
우선 블로그에서 사용할 DB를 먼저 만들어 두자.
DB의 이름은 selemadeBlog이다.
create database selfmadeBlog;
Java 프로젝트와 연동
외부 라이브러리 추가
우선 JDBC를 사용하기 위해 connector-j를 추가해 주어야 한다.
ctrl + alt + shift + s로 program structure를 연 후 Project Settings > Library 에 들어간다.
추가 버튼을 누른 후 MySQL이 설치된 폴더에서 connector-j의 jar 파일을 추가해 준다.
연결 확인
연결 확인은 View > tool windows > database에서 확인할 수 있다.
JDBC 코드 작성
제대로 데이터베이스를 사용할 수 있는지, 간단한 모델을 생성하고 저장하는 로직을 만들어 테스트 해보자.
임시로 사용자 클래스 User를 생성 후 UserDAO 클래스로 User를 저장 해보자.
user 클래스
@Data
public class User {
int idx;
String id;
String password;
public User(String id, String password) {
this.id = id;
this.password = password;
}
}
idx 값은 DB에서 auto_increment로 생성해 줄 값을 사용할 것이기 때문에 생성자에서 업데이트를 해 주지 않는다.
User 테이블
같은 형식으로 DB에서도 User 테이블을 생성하자.
create table users(
idx int auto_increment primary key,
id char(20) not null,
password char(20) not null
);
UserDAO
이제 DB에 User를 저장하기 위한 UserDAO를 만들어 사용해 보자.
@Repository
public class UserDAO {
//DB connection을 받아오기 위해 사용할 값
public void save(User user){
try(Connection conn = DriverManager.getConnection(url, userName, password)) {
PreparedStatement ps = conn.prepareStatement(
"insert into users (id, password) VALUES (?, ?)");
ps.setString(1, user.getId());
ps.setString(2, user.getPassword());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
오류 발생!
오류가 발생헀다!!!
오류를 간단하게 확인해 보면 다음과 같다.
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/selfmadeblog
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:706)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)
at com.example.selfmadeBlog.DAO.UserDAO.save(UserDAO.java:29)
at com.example.selfmadeBlog.DAO.userDAOTest.saveTest(userDAOTest.java:18)
//...
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
즉, mysql 서버에 접근하기 위한 적합한 드라이버를 찾을 수없다는 말이다.
webapp > WEB-INF > lib 경로에 connector-j의 jar 파일을 넣어보기도 하고, 온갖 방법을 써 봐도 잘 해결되지 않았다.
여기서 엄청 오랜 시간 헤맸다...
해결
방법은 간단했다.
외부 라이브러리에 mysql:mysql-connector-java:8.0.33가 포함되어 있으면 되는 것이였다.
그리고, 나는 gradle로 의존성을 관리하고 있었기 떄문에 connector-java 의존성을 추가해 주면 되는 문제였다.
build.gradle에 다음을 추가해 주자.
implementation('mysql:mysql-connector-java:8.0.33')
테스트가 성공하는 것을 확인할 수 있다!!
'프로젝트 > selfmade Blog - V1 (deprecated)' 카테고리의 다른 글
5. 블로그 글 수정, 삭제 기능 (0) | 2023.08.13 |
---|---|
4. 스프링을 사용한 의존성 주입 (0) | 2023.08.12 |
3. 블로그 글 작성 기능 - 조회 기능 및 중복 Context 추출 (0) | 2023.08.11 |
3. 블로그 글 작성 기능 - 글 생성 및 중복 Context 추출 (1) | 2023.08.11 |
1. JSP를 사용한 View (0) | 2023.08.11 |
댓글