일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bootstrap
- Jenkins
- 빌드
- suvlet
- 싱글톤
- boxing
- Short
- 자동형변환
- 무한
- 내장객체
- 제네릭
- https://start.spring.io
- 박싱
- unboxing
- 인텔리제이
- 콜렉션
- 클래스
- Java
- 메소드
- 스프링
- maven
- wrapper
- 제너릭
- 컬렉션
- 루프
- Scanner
- 싱글턴
- 언박싱
- dependency
- start.spring.io
- Today
- Total
목록K-DigitalTraining 강의/3. JDBC(Java + Oracle DB) (12)
Developer Gonie
코드상에서 문제가 없는거같은데 이 에러가 자꾸 발생하면 위 두가지 사항을 꼭 체크하자.
* JDBC 를 사용할 때의 첫번째 과정인 드라이버를 로드하는 코드는 생략해도 정상작동 한다. // 1. 드라이버 로드 Class.forName("oracle.jdbc.driver.OracleDriver");
int result 를 -1로 초기화 하는 이유 : 아래의 3가지 경우를 구분하기 위함. int 메소드(){ int result = -1; String sql = "쿼리문" PreparedStatement ps = conn.prepareStatement(sql); result = ps.executeUpdate(); return result; } 다른 위치에서 result의 값을 받아봐 알 수 있는 정보 if (result > 0) // 쿼리문이 정상적으로 실행되었고 result 개가 수행되었구나 else if(result == 0) //쿼리문이 정상적으로 실행되었지만, where 절 조건에 부합하는 레코드가 없구나 else if(result == -1) //쿼리문 실행중에 예외가 발생하여 executeU..
멤버변수가 private 으로 선언되었다면 이 객체의 변수에 값을 넣기 위해서는 setter 메소드를 거쳐야 하는데 이러면 setter 메소드에서 if문과 같은 조건문을 넣어 조건에 부합하는 값만 객체에 저장될 수 있게 할 수 있다.
* 아래의 의미들을 이용해 클래스 이름을 정하는데 참고했다. DAO(Data Access Objects) -> 아래서 PersonDao 클래스 -DB를 사용해 데이터를 조회하거나 조작을 전담하는 오브젝트로 DB와의 연결을 담당하기도 한다. - 저장소(테이블)에 데이터를 입력, 조회, 수정, 삭제 등의 처리를 한다. DTO(Data Transfer Object) -> 아래서 PersonBean 클래스 - 데이터의 전달을 위해 만드는 오브젝트 - 데이터를 담을 private 변수와 그 변수를 조작할 수 있는 public의 getter, setter 메서드로 구성한다. - bean 또는 vo(value object)라고도 한다. -- 초기 데이터셋 생성 drop sequence prdseq; create se..
* 주의 '?' 위치 홀더는 컬럼이름에 대해서는 사용할 수 없고, 값이 들어가는 자리에만 사용할 수 있다. 아주 일반적인 예시 String sql = "insert into products values(prdseq.nextval, ?, ?, ?, ?, ?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, bean.getName()); ps.setInt(2, bean.getStock()); ps.setInt(3, bean.getPrice()); ps.setString(4, bean.getCategory()); ps.setString(5, bean.getInputdate()); 실수하기 좋은 예시 쿼리문에서 like 사용시 아래와 같..
1. 가장 원시적으로 delete 문을 실행하는 방법 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class Delete { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String id = "jspid"; String pw = "jsppw"; Connection conn = null; try { // 1..
1. 가장 원시적으로 update 문을 실행하는 방법 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class Update { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String id = "jspid"; String pw = "jsppw"; Connection conn = null; try { // 1..
* 쿼리문 실행시 명령어별로 사용해야할 메소드가 다름 - executeQuery() 메소드 : select -> 타입의 조회된 결과를 가져온 ResultSet 타입의 객체를 반환한다. - executeUpdate() 메소드 : insert, update, delete -> 성공적으로 삽입, 수정, 삭제 실행된 개수를 반환함 * executeQuery() 혹은 executeUpdate() 위치에서 에러가 발생한 경우 쿼리문에 오타가 있어서 그럴 가능성이 크다. * conn.close() 하면 자동으로 commit 됨 1. 가장 원시적으로 insert 문을 실행하는 방법 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr..
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Select { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String id = "jspid"; String pw = "jsppw"; try { // 1. 드라이버 로드 Class.forName(dri..
1. Project 폴더 - Properties 클릭 2. Java Build Path - Libraries - Classpath - Add External JARs... 3. 오라클 설치당시 선택했던 경로에 가서 아래의 파일 선택 & Apply and Close 나는 당시에 오라클을 C\Oracle 에 설치해뒀었으므로 선택해야 하는 파일은 아래의 경로에 위치했음 C:\Oracle\product\12.2.0\dbhome_1\jdbc\lib\ojdbc8.jar 4. 프로젝트 폴더 안에 새로 생긴 폴더들이 보여진다. ojdbc8.jar 파일 가져오기 성공 5. 정상연결 확인 import java.sql.Connection; import java.sql.DriverManager; import java.sql...
JDBC(Java Database Connectivity) 란? JDBC는 자바 언어에서 같은 코드로 다양한 데이터베이스를 다룰 수 있도록 하는 Java API 이다.(일종의 라이브러리) 이는 인터페이스 및 클래스들로 이루어져 있으며, 다음과 같은 기능들을 포함한다. - 자바에서 데이터베이스로의 연결을 만드는 것 - SQL문 생성 - 데이터베이스에 대한 SQL문 실행 - 결과 레코드들을 수정하거나 보는 것 등 JDBC CRUD 사용예시 코드 https://www.tutorialspoint.com/jdbc/jdbc-create-tables.htm JDBC Driver 란? 같은 코드여도 다른 데이터베이스에 대해 작동할 수 있는 이유는 각 DBMS를 위한 JDBC Driver가 준비되어있어 같은 코드였던 것..