우아한테크코스
테스트 기반으로 JDBC 통해 DB CRUD #1
I'mDawon
2021. 3. 26. 15:44
데이터베이스 생성하기
CREATE DATABASE db_name DEAFAUT CHARCTER SET utf8 COLLATE utf_8general_ci;
테이블 생성하기
CREATE TABLE USERS(
userId varchar(12) NOTNULL,
password varchar(12) NOTNULL,
name varchar(20) NOTNULL,
email varchar(50), NOTNULL,
PRIMARY KEY (userId)
);
데이터 CREATE
INSERT INTO USERS VALUES('1', 'password', 'nickname', 'email@naver.com');
JDBC CONNECTION
- 자바에서 데이터베이스와 연동을 하기 위해 사용하는 표준
- DAO(Data Access Object)는 데이터베이스와의 로직을 담당하는 클래스
@Test
public void connection() {
UserDAO userDao = new UserDAO();
Connection con = userDao.getConnection();
assertNotNull(con);
}
public class UserDAO {
public Connection getConnection() {
String url = "jdbc:mysql://localhost::3306/db_name";
String id = "slipp";
String pw = "password";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
System.out.println(e.getMessage());
return null;
}
return DriverManager.getConnection(url, id, pw);
}
}
JDBC INSERT
public void insert(User user) {
String sql = "insert into USERS values(?,?,?,?)";
PreparedStatement pstmt = getConnection().prepareStatement(sql);
pstmt.setString(1, user.getUserId());
pstmt.setString(2, user.getPassword());
pstmt.setString(3, user.getName());
pstmt.setString(4, user.getEmail());
pstmt.executeUpdate();
}
- PreparedStatement의 set API의 경우 인덱스가 1부터 시작한다.