Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Import
- \
- 빈즈
- static
- iframe
- 동기부여
- "
- ;
- 버리자
- javaBeans
- session.getAttribute
- opener
- 파일호출
- 동기 부여
- 팝업창
- 향상된 for문
- Alert
- target
- 데이터사이언스
- BEANS
- session.removeAttribute
- 페이지이동
- session.setAttribute
- scanner
- 파일 호출
- 페이지 이동
- 영감
- 자바빈즈
- 로그인화면
- 미래직장
Archives
- Today
- Total
갈림길 이정표
[java] DB CRUD 본문
driver = org.mariadb.jdbc.Driver
url = jdbc:mysql://localhost:3306/test
user = root
password = 369369
package pack1;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
public class Dbtest2 { //중요 정보 별도 파일로 작성후 읽기 + CRUD (insert, select, update, delete)
private Connection conn;
private Statement stmt;
private ResultSet rs1, rs2;
Properties properties = new Properties();
public Dbtest2() {
try { // \\ (윈도우 방식)= / (리눅스 방식)
properties.load(new FileInputStream("D:\\work\\jsou\\java_pro4db\\src\\pack1\\test.properties"));//절대경로로 찍어야 함
Class.forName(properties.getProperty("driver"));
conn = DriverManager.getConnection(
properties.getProperty("url"),
properties.getProperty("user"),
properties.getProperty("password"));
stmt = conn.createStatement();
String sql = "";
/*
//INSERT
sql = "INSERT INTO sangdata VALUES(5,'새우깡',2,1500)";
int re = stmt.executeUpdate(sql); //Select 이외의 SQL 문 (한번에 치환까지 실행 불가능해서 분리)
if(re == 1) System.out.println("추가 성공");
//Transaction : 하나의 작업 단위. (Insert, Update, Delete... 후 commit/rollback(save point))
//하지만 지금 기본으로는 auto-commit
conn.setAutoCommit(false); //Transaction 수동
sql = "INSERT INTO sangdata VALUES(6,'감자깡',2,2500)";
stmt.executeUpdate(sql);
// conn.rollback(); //UPDATE 안됨
conn.commit();
conn.setAutoCommit(true); //Transaction 자동 (수동 종료) */ //아니면 deadlock 다음 작업 처리 불가능 (wait) 상태
/*
//UPDATE (UPDATE & DELETE 는 입력한 수 만큼 return 값 반한)
sql = "UPDATE sangdata SET sang = '허니칩', dan = 2100 where code=5";
int re = stmt.executeUpdate(sql);
if(re >= 1) System.out.println("수정 성공"); */
//DELETE
sql = "DELETE FROM sangdata WHERE code = 5";
int re = stmt.executeUpdate(sql);
if(re >= 1) System.out.println("삭제 성공");
else System.out.println("삭제 실패");
//SELECT
rs1 = stmt.executeQuery("SELECT * FROM sangdata ORDER BY code DESC");
int cou = 0;
while(rs1.next()) {
System.out.println(
rs1.getString("code") + " " +
rs1.getString("sang") + " " +
rs1.getString("su") + " " +
rs1.getString("dan")
);
cou += 1;
}
System.out.println("건수 : " + cou);
} catch (Exception e) {
System.out.println("err: " + e);
} finally {
try {
if (rs1 != null)
rs1.close();
if (rs2 != null)
rs2.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (Exception e2) {
}
}
}
public static void main(String[] args) {
new Dbtest2();
}
}
'Programming Language > Java 마스터하기(feat. 이것이 자바다)' 카테고리의 다른 글
[java] DB 역행, 첫행, 마지막행 레코드 읽기 (0) | 2020.08.05 |
---|---|
[java] DB 접속 메소드 통해 프레임 창에 띄우기 (0) | 2020.08.05 |
[java] DB driver load, DB 연결, 자료 읽기 (0) | 2020.08.04 |
[9. 중첩 클래스와 중첩 인터페이스] (0) | 2020.07.24 |
Call by Value vs. Call by Reference (0) | 2020.07.20 |
Comments