oracle에서 계정 생성
SQL PLUS 에 가서
— 사용자 계정 만들기 (javadb 계정 만들기)
create user javadb IDENTIFIED by javadb;
grant connect, resource, dba to javadb;
jdbcdriver는 이클립스에서 해당 프로젝트에서 Properties -> java build path ->libraries -> Add External JARS 에서 jdbc 찾아서 넣어줌
book table 만들기
create table book (id varchar(50) not null primary key,name varchar(50) not null,price number(10) not null);
book에 대한 DTO( data transfer object ) 데이터베이스의 데이터를 사용
public class SAMPLEDTO {private String id = null;private String name = null;private int price=0;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}
DAO : 데이터를 가지고 이용 및 함수 사용 DATA ACESS OBJECT
public class SAMPLEDAO {public ArrayList<SAMPLEDTO> findALL() {ArrayList<SAMPLEDTO> list = new ArrayList<SAMPLEDTO>();try {Class.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e) {// 드라이버 없음System.out.println("드라이버 없음");e.printStackTrace();}String url ="jdbc:oracle:thin:@localhost:1521:orcl";String user="javadb";String password ="oracle";try {Connection conn = DriverManager.getConnection(url,user,password);Statement stmt = conn.createStatement();String sql ="select * from book";ResultSet rs =stmt.executeQuery(sql);while(rs.next()){SAMPLEDTO DTO = new SAMPLEDTO(); // DTO에 SELECT 한 값들을 저장 DTO.setId(rs.getString(1));DTO.setName(rs.getString(2));DTO.setPrice(rs.getInt(3));list.add(DTO);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return list;}}
Main
public static void main(String[] args) {SAMPLEDAO DAO = new SAMPLEDAO();ArrayList<SAMPLEDTO> book = DAO.findALL();for(SAMPLEDTO books : book){System.out.println(books.getId());}}
#jdbc 연동 #DAO # DTO
//1. JDBC에 대한 정리 및 순서 public class user {Connection cnn;Statement st;public user() {//1.driver 연결try {Class.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e) {System.out.println("드라이버 오류 ");}// 오라클 드라이버 연결String url ="jdbc:oracle:thin:@localhost:1521:orcl";//2. connectiontry {cnn = DriverManager.getConnection(url,"test","test");} catch (SQLException e) {System.out.println("연결오류");}}public void insert() {// 3. 4. 쿼리를 실행할 공간인 statement를 만들어 놓고 statement에서 쿼리 실행한 값을 ResultSet에 저장String sql = "insert into custumer values('1','김민준')";try {st = cnn.createStatement();ResultSet rs =st.executeQuery(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
기본기 외래키 설정
create table item (item_id int not null,
name varchar2(100),
CONSTRAINT intem_pk PRIMARY KEY(item_id)
);create table item_detail(
item_id int not null,
detail VARCHAR2(100),
CONSTRAINT item_detail_pk PRIMARY key(item_id),
CONSTRAINT item_fk FOREIGN key(item_id) REFERENCES item(item_id));
시퀀시
시퀀시는 특정 값만큼 계속 증가시키기는 것을 설정
-> insert로 예를 들어 sql 문에서 해당되는 값에 시퀀스를 넣어준다.
public int insert(Connection conn, Message message) throws SQLException{PreparedStatement pstmt = null;try{String sql = “insert into guestbook_message values(message_seq.NEXTVAL,?,?,?)”;pstmt = conn.prepareStatement(sql);pstmt.setString(2, message.getGuestName());pstmt.setString(3, message.getPassword());pstmt.setString(4, message.getMessage());return pstmt.executeUpdate();}finally{//JdbcUtil.close();pstmt.close();}}
오라클에서 계정 연결이 안될때 해결
컴퓨터 관리에 들어가서
서비스 및 응용프로그램 -> 서비스