코드 구현
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();
}
}
}
package ch04;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class TransactionExample {
public static void main(String[] args) {
// 드라이버 -> MySQL 개발자들이 자바 코드로 작성한 클래스의 묶음 (.jar)
// ver 8.0
String url = "jdbc:mysql://localhost:3306/m_board?serverTimezone=Asia/Seoul";
String id = "root";
String password = "asd123";
// 구현체를 사용하기 위해서
// 클래스 Class <-- 최상위 Object 안에 있음
// 동적 바인딩 처리
try {
// mysql 드라이버(구현클래스) 메모리에 로드
Class.forName("com.mysql.cj.jdbc.Driver");
// try catch resource 문법
try(Connection conn = DriverManager.getConnection(url,id,password)){
conn.setAutoCommit(false); // 수동 커밋 모드 설정
String sqlInsert = "INSERT INTO user(username,password,email,userRole,address,createDate)"
+ "values (?,?,?,?,?,now())";
PreparedStatement psmt1 = conn.prepareStatement(sqlInsert);
psmt1.setString(1, "윈터");
psmt1.setString(2, "asd123");
psmt1.setString(3, "a@nate.com");
psmt1.setString(4, "user");
psmt1.setString(5, "부산시남구");
psmt1.executeUpdate();
String sqlUpdate = "UPDATE user SET email = ? WHERE username = ?";
PreparedStatement psmt2 = conn.prepareStatement(sqlUpdate);
psmt2.setString(1, "b@naver.com");
psmt2.setString(2, "김유신");
psmt2.executeUpdate();
// 수동 커밋 모드를 설정했다면 직접 commit() 실행해야
// 물리적인 저장장치에 영구히 반영이 된다.
conn.commit();
} catch (Exception e) {
// conn.rollback();
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} // end of main
}
'Java' 카테고리의 다른 글
JDBC를 활용한 CRUD와 SOLID 원칙 (1) | 2024.07.05 |
---|---|
JDBC 배치 처리 (0) | 2024.06.13 |
JDBC 기본 사용법 (0) | 2024.06.12 |
JDBC 아키텍처 (0) | 2024.06.12 |
JDBC (0) | 2024.06.12 |