new project
src - main - java - new - java class
main 메서드에서 출력해보기
System.out.println("good");
MySQL Connector/J 클릭
Gradle 탭의 코드 복사해서 build.gradle
의 dependencies
괄호 안에 붙여넣기
오른쪽 위에 고래버튼 눌러주고 gradle의 dependency에 추가되었는지 확인하기
Workbench에서 실습에 쓰일 user table 생성하기
CREATE TABLE `likelion-db`.`users` (
`id` VARCHAR(45) NOT NULL,
`name` VARCHAR(45) NOT NULL,
`password` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`));
Edit Configurations..
Envitonment variables
작성하기Access denied
를 만난다.dependency 설정을 안 함
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://ec2-3-38-164-117.ap-northeast-2.compute.amazonaws.com:3306/likelion-db
public void add() throws ClassNotFoundException, SQLException {
//environment variable에서 정보를 가져온다
//소스코드에 직접적인 정보를 안 넣을 수 있다.
Map<String, String> env = System.getenv();
String dbHost = env.get("DB_HOST");
String dbUser = env.get("DB_USER");
String dbPassword = env.get("DB_PASSWORD");
Class.forName("com.mysql.cj.jdbc.Driver");
//db와 연결하는 단계
Connection conn = DriverManager.getConnection(dbHost, dbUser, dbPassword); //db연결
PreparedStatement ps = conn.prepareStatement("INSERT INTO Users(id, name, password) VALUES(?, ?, ?)");
ps.setString(1, "2");
ps.setString(2, "Hwang");
ps.setString(3, "0111");
//ctrl+enter
ps.executeUpdate();
ps.close();
conn.close();
}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
UserDao userDao = new UserDao();
userDao.add();
}
}
public User getById(String id) throws ClassNotFoundException, SQLException {
//environment variable에서 정보를 가져온다
//소스코드에 직접적인 정보를 안 넣을 수 있다.
Map<String, String> env = System.getenv();
String dbHost = env.get("DB_HOST");
String dbUser = env.get("DB_USER");
String dbPassword = env.get("DB_PASSWORD");
Class.forName("com.mysql.cj.jdbc.Driver");
//db와 연결하는 단계
Connection conn = DriverManager.getConnection(dbHost, dbUser, dbPassword); //db연결
//쿼리를 작성하는 코드
PreparedStatement ps = conn.prepareStatement("SELECT id, name, password FROM Users WHERE id=?");
ps.setString(1, id);
ResultSet rs = ps.executeQuery();
rs.next();
User user = new User(rs.getString("id"), rs.getString("name"), rs.getString("password"));
System.out.println("SELECT 완료");
rs.close();
ps.close();
conn.close();
return user;
}
public List<User> findAll() throws ClassNotFoundException, SQLException {
//environment variable에서 정보를 가져온다
//소스코드에 직접적인 정보를 안 넣을 수 있다.
Map<String, String> env = System.getenv();
String dbHost = env.get("DB_HOST");
String dbUser = env.get("DB_USER");
String dbPassword = env.get("DB_PASSWORD");
Class.forName("com.mysql.cj.jdbc.Driver");
//db와 연결하는 단계
Connection conn = DriverManager.getConnection(dbHost, dbUser, dbPassword); //db연결
//쿼리를 작성하는 코드
PreparedStatement ps = conn.prepareStatement("SELECT * FROM Users");
ResultSet rs = ps.executeQuery();
List<User> userList = new ArrayList<>();
while(rs.next()){
User user = new User(rs.getString("id"), rs.getString("name"), rs.getString("password"));
userList.add(user);
}
System.out.println("SELECT 완료");
rs.close();
ps.close();
conn.close();
return userList;
}