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
- @Valid
- 서비스레이어
- gradle
- Model
- frontController
- 유효성검사
- 어노테이션
- application.properties
- c:if
- PointCut
- SpringBoot
- 바인딩변수
- produces
- 비즈니스레이어
- @RequestParam
- 생성자주입
- springjdbc
- @
- jointpoint
- MVC
- 스프링
- after-throwing
- @ResponseBody
- 의존주입
- springmvc
- spring
- @RequestMapping
- .xml
- Java
- AOP
Archives
- Today
- Total
메모장
[멘토 씨리즈] 부록 06.자바와 연동 본문
728x90
반응형
데이터베이스와 자바프로그래밍을 JDBC를 이용하여 연동해보자
JDBC의 4가지 순서에 대해 알아보자
1. JAVA와 DB를 연결해줄 자원(resouce)을 가진 클래스
// (== 드라이버 : 서로 다른 시스템, 이종기기 간의 연결을 위해 필요한 객체 ) 를
메모리로 불러와야한다 == 이것을 load(적재)한다고 한다. ex)로딩중 할때 그 로딩 !
public static void main(String[] args) {
final String driverName_MySQL = "com.mysql.cj.jdbc.Driver";
// final String driverName_Oracle = "oracle.jdbc.driver.OracleDriver";
try {
Class.forName(driverName_MySQL);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2. DB와 연결 ------> Connection 객체가 필요하다 !
final String url_MySQL="jdbc:mysql://localhost/hong";
//final String url_Oracle="jdbc:oracle:thin:@localhost:1521:xe";
final String userName="root";
final String passwd="1234";
Connection conn=null;
try {
// DriverManager.getConnection(url, userName, passWord);
conn=DriverManager.getConnection(url_MySQL, userName, passwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
3. DB에 데이터를 작성하거나(write), DB의 데이터를 받아오거나(read) 할수 있음
----> Statement 객체를 생성하고, 사용하는것이 목표 ! 3번이 중요
이부분에서 INSERT,SELECTALL,SELECTONE, UPDATE, DELETE 다 해볼 수 있다.
final String sql_INSERT="INSERT INTO STUDENT (NAME,SCORE) VALUES('"+sVO.getName()+"',"+sVO.getScore()+");";
try {
stmt=conn.createStatement(); // 만들고 // statement 가 read,write를 제공해주는 것
stmt.executeUpdate(sql_INSERT); // 사용
// Query -> SELECT // 테이블에 영향을 주는 쿼리문
// Update -> INSERT,UPDATE,DELETE // 테이블에 영향을 주지 않는 쿼리문
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
3. 이번엔 SELECT 를 사용 해보자 . READ 읽어오기
Statement stmt=null;
ResultSet rs=null;
final String sql_SELECTALL="SELECT NUM,NAME,SCORE FROM STUDENT;";
try {
stmt=conn.createStatement();
rs=stmt.executeQuery(sql_SELECTALL);
while(rs.next()) {
StudentVO sVO=new StudentVO(rs.getInt("NUM"),rs.getString("NAME"),rs.getInt("SCORE"));
// System.out.println(rs.getInt("NUM"));
// System.out.println(rs.getString("NAME"));
// System.out.println(rs.getInt("SCORE"));
System.out.println(sVO);
System.out.println();
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
4. DB와 연결해제 ★ (컴퓨터가 메모리를 계속 계속 잡아먹어서 갑자기 꺼진다. 반드시 연결해제를 해준다. )
try {
stmt.close(); // 만든거 역순으로
conn.close(); // 닫고 다시 닫고 나와야 함
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(" 로그: 프로그램 종료");
주의 ! close 를 깜빡하지 말고 해줘야 하는데 close하는 순서는 방문을 여는 순서라고 생각하면 된다 .
방문 1 을 열고 -> 방문 2를 열었을때 !! 닫을 때는 역순으로 방문2를 닫고 나오고 그다음 방문1을 닫는다.
728x90
반응형
'JAVA > [멘토씨리즈]' 카테고리의 다른 글
| [멘토 씨리즈] 부록 05. 데이터베이스 활용 (0) | 2024.04.09 |
|---|---|
| [멘토 씨리즈] 부록 04. 데이터 저장 (0) | 2024.04.09 |
| [멘토 씨리즈] 부록 03.SQL (0) | 2024.04.09 |
| [멘토 씨리즈] 부록 02.JDBC란? (0) | 2024.04.09 |
| [멘토 씨리즈] 부록 01.데이터베이스와 DBMS (0) | 2024.04.09 |