코드 연습
package ch02;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLJdbcExample {
public static void main(String[] args) {
// 준비물
String url = "jdbc:mysql://localhost:3306/mydb2?serverTimezone=Asia/Seoul";
String user = "root"; // 상용서비스에서 절대 루트 계정 사용 금지
String password = "asd123";
// 필요 데이터 타입
// JDBC API 레벨(자바 개발자들이 개념화 시켜 놓은 클래스들이다. )
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
// 1. MySQL 구현체를 사용하겠다는 설정을 해야 한다.
// JDBC 드라이버 로드(MySQL 드라이버)
try {
// 1. 메모리에 사용하는 드라이버(JDBC API를 구현한 클래스) 클래스를 띄운다.
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 데이터 베이스 연결 설정
connection = DriverManager.getConnection(url, user, password);
// 3. SQL 실행
statement = connection.createStatement();
// 딱 2가지는 기억하지! 쿼리를 실행 시키는 메서드
resultSet = statement.executeQuery("SELECT * FROM employee"); // select 실행시 사용한다.
// statement.executeUpdate(password); --> Insert, Update, delete 사용
// 구문 분석 -- 파싱
// 4. 결과 처리
while(resultSet.next()) {
System.out.println("USER ID : " + resultSet.getInt("id"));
System.out.println("USER NAME : " + resultSet.getString("name"));
System.out.println("department : " + resultSet.getString("department"));
System.out.println("----------------------------------");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
} // end of main
} // end of class
PreparedStatement 사용
insert
package ch02;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLJdbcExample {
public static void main(String[] args) {
// 준비물
String url = "jdbc:mysql://localhost:3306/mydb2?serverTimezone=Asia/Seoul";
String user = "root"; // 상용서비스에서 절대 루트 계정 사용 금지
String password = "asd123";
// 필요 데이터 타입
// JDBC API 레벨(자바 개발자들이 개념화 시켜 놓은 클래스들이다. )
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
// 1. MySQL 구현체를 사용하겠다는 설정을 해야 한다.
// JDBC 드라이버 로드(MySQL 드라이버)
try {
// 1. 메모리에 사용하는 드라이버(JDBC API를 구현한 클래스) 클래스를 띄운다.
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 데이터 베이스 연결 설정
connection = DriverManager.getConnection(url, user, password);
// 3. SQL 실행 (PreparedStatement 객체 사용해보기)
// 3 - 1 쿼리 만들어 보기
String query = "insert into employee values( ?, ?, ?, ?, now())";
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.setInt(1, 7);
preparedStatement.setString(2, "이순신");
preparedStatement.setString(3, "IT");
preparedStatement.setString(4, "5000000.00");
// 실행에 호출은 executeQuery 에 사용
int rowCount = preparedStatement.executeUpdate();
System.out.println("rowCount : " + rowCount);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
} // end of main
} // end of class
Delete
package ch03;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DeleteExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb2?serverTimezone=Asia/Seoul";
String user = "root";
String password = "asd123";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(url,user,password);
String query = "Delete from employees";
PreparedStatement preparedStatement = connection.prepareStatement(query);
int rowCount = preparedStatement.executeUpdate();
System.out.println(rowCount);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Select
package ch03;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import ch01.dto.Employee;
public class SelectExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb2?serverTimezone=Asia/Seoul";
String user = "root";
String password = "asd123";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(url,user,password);
String query = "Select * from employees";
PreparedStatement preparedStatement = connection.prepareStatement(query);
resultSet = preparedStatement.executeQuery();
ArrayList<Employee> el = new ArrayList<>();
while(resultSet.next()) {
Employee e = new Employee();
e.setId(resultSet.getInt("id"));
e.setName(resultSet.getString("name"));
e.setDepartment(resultSet.getString("department"));
el.add(e);
}
for (Employee employee : el) {
System.out.println(employee);
};
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Update
package ch03;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class UpdateExample {
public static void main(String[] args) {
String url;
String user;
String password;
// Connection 객체를 얻어서 insert 구문을 직접 만들어 보세요.
url = "jdbc:mysql://localhost:3306/mydb2?serverTimezone=Asia/Seoul";
user = "root";
password = "asd123";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
// mydb2 사용 , employees 테이블에 값을 넣는 코드를 작성하세요
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(url,user,password);
String query = "Update employees set name = '마키마' where id = 1";
PreparedStatement preparedStatement = connection.prepareStatement(query);
int rowCount = preparedStatement.executeUpdate();
System.out.println(rowCount);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
'Java' 카테고리의 다른 글
JDBC 배치 처리 (0) | 2024.06.13 |
---|---|
JDBC 트랜잭션 관리와 배치 처리 (0) | 2024.06.12 |
JDBC 아키텍처 (0) | 2024.06.12 |
JDBC (0) | 2024.06.12 |
파싱(Parsing) (2) | 2024.06.07 |