자바-오라클 조인

최성현·2023년 7월 10일
0

Java

목록 보기
45/46

필수 사항

WEB-INF > lib > ojdbc11.jar 추가

불러오기 출력 안될 때

sql문 커밋 확인해보기

오라클sql 이클립스 불러오기

나중에 프로젝트때 aws를 활용해서 공동의 url을 만들어야함
static final String URL="jdbc:oracle:thin:@localhost:1521:XE";

싱글톤이라 한 메서드 안에서 사용해야함 //전역으로 못 뺌
-connection statement resultset 필요
Connection conn=null; //url 계정 연결
Statement stmt=null; //sql문 CRUD 전체 전달//sql 테이블에 선언
ResultSet rs=null; //select때 필요 쿼리문 읽어오기//sql 테이블 가져옴

-sawon 테이블 불러오기
String sql="select * from sawon order by name";

-sql문 전달
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);

데이터 없어서 false값 될때까지 반환//true값 반환

while(rs.next()) //-> 데이터 없어서 false값 될때까지 반환//true값 반환
			{
				//db로부터 데이터 가져오기
				//1개의 열 1개씩 반환
				int num=rs.getInt("num"); //->오라클 테이블 컬럼명 or 열번호
				String name=rs.getString("name");
				String gender=rs.getString("gender");
				String buseo=rs.getString("buseo");
				int pay=rs.getInt("pay");
				
				System.out.println(num+"\t"+name+"\t"+gender+"\t"+buseo+"\t"+pay);
			}

오라클 파일 거꾸로 닫기

!=null은 비어있는 경우라서 파일을 열지도 않으니 null이 아니라면 닫아달라는말

finally {
			try {
				//null이면 비어있는 경우라서 파일을 열지도 않으니 null이 아니라면 닫아달라는말
				if(rs!=null)
					rs.close();
				if(stmt!=null)
					stmt.close();
				if(conn!=null)
					conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
public class OracleConnectTest {
	
	//나중에 프로젝트때 aws를 활용해서 공동의 url을 만들어야함
	static final String URL="jdbc:oracle:thin:@localhost:1521:XE";
	
	
	
	public void connectSawon() {
		
		//싱글톤이라 한 메서드 안에서 사용해야함 //전역으로 못 뺌
		//connection statement resultset 필요
		Connection conn=null; //url 계정 연결
		Statement stmt=null; //sql문 CRUD 전체 전달
		ResultSet rs=null; //select때 필요 쿼리문 읽어오기
		
		String sql="select * from sawon order by name"; //sawon 테이블 불러오기
		
		//연결
		try {
			conn=DriverManager.getConnection(URL, "tjdgus", "1234"); //오라클 주소, 이름, 비밀번호
			System.out.println("클라우드 오라클 서버 연결성공!!!");
			
			//sql문 전달
			stmt=conn.createStatement();
			rs=stmt.executeQuery(sql);//
			
			while(rs.next()) //-> 데이터 없어서 false값 될때까지 반환//true값 반환
			{
				//db로부터 데이터 가져오기
				//1개의 열 1개씩 반환
				int num=rs.getInt("num"); //->오라클 테이블 컬럼명 or 열번호
				String name=rs.getString("name");
				String gender=rs.getString("gender");
				String buseo=rs.getString("buseo");
				int pay=rs.getInt("pay");
				
				System.out.println(num+"\t"+name+"\t"+gender+"\t"+buseo+"\t"+pay);
			}
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("오라클 서버 연결실패!!!"+e.getMessage());
		} finally {
			try {
				//null이면 비어있는 경우라서 파일을 열지도 않으니 null이 아니라면 닫아달라는말
				if(rs!=null)
					rs.close();
				if(stmt!=null)
					stmt.close();
				if(conn!=null)
					conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

문제2

public void connectBamin() {
		//주문번호		주문자	음식명	가격		상호명	가게위치		주문자주소
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		
		String sql="select f.fno, j.name, f.foodname, f.price, f.shopname, f.loc, j.addr\n"
				+ "from food f, jumun j\n"
				+ "where f.fno=j.fno\n";
		
		try {
			conn=DriverManager.getConnection(URL, "tjdgus", "1234");
			System.out.println("오라클 연결 성공!!!");
			
			stmt=conn.createStatement();
			rs=stmt.executeQuery(sql);
			
			System.out.println("***배민 주문 고객 리스트***");
			System.out.println("주문번호\t주문자명\t음식명\t가격\t상호명\t가게위치\t주문자위치");
			
			while(rs.next())
			{
				int ornum=rs.getInt("fno");
				String orname=rs.getString("name");
				String fname=rs.getString("foodname");
				int won=rs.getInt("price");
				String sname=rs.getString("shopname");
				String loc=rs.getString("loc");
				String oraddr=rs.getString("addr");
				
				System.out.println(ornum+"\t"+orname+"\t"+fname+"\t"+won+"\t"+sname+"\t"
									+loc+"\t"+oraddr);
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("오라클 연결실패 !!!"+e.getMessage());
		}finally {
			
				try {
				if(rs!=null)
					rs.close();
				if(stmt!=null)
					stmt.close();
				if(conn!=null)
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		
		}
		
	}

7010과제

package day0710;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class QuizConnectNewBoard {
	
	static final String URL="jdbc:oracle:thin:@localhost:1521:XE";
	
	public void connectNewboard() {
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		
		String sql="select b_num, nick, subject, content, wday from snsboard";
		
		try {
			conn=DriverManager.getConnection(URL, "tjdgus", "1234");
			stmt=conn.createStatement();
			rs=stmt.executeQuery(sql);
			
			System.out.println("***게시판 생성***");
			System.out.println("번호\t닉네임\t제목\t내용\t현재날짜");
			System.out.println("---------------------------------------------");
			
			while(rs.next())
			{
				int num=rs.getInt("b_num");
				String nick=rs.getString("nick");
				String subject=rs.getString("subject");
				String content=rs.getString("content");
				String wday=rs.getString("wday");
				
				System.out.println(num+"\t"+nick+"\t"+subject+"\t"+content+"\t"+wday);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				rs.close();
				stmt.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
	}

	public static void main(String[] args) {
		
		QuizConnectNewBoard q=new QuizConnectNewBoard();
		q.connectNewboard();
	}

}

오라클sql문

create sequence seq_board;

create table snsboard(b_num number(5) primary key,
nick varchar2(30),
subject varchar2(30),
content varchar2(30),
wday date);

insert into snsboard values(seq_board.nextval,'최성현','일요일 시험','괜찮을까?',sysdate);
insert into snsboard values(seq_board.nextval,'박병주','에헤 나먼저 갈거지','너넨 못 끝냈지?',sysdate);
insert into snsboard values(seq_board.nextval,'이성신','남아','내가 너네 캐리한다',sysdate);
insert into snsboard values(seq_board.nextval,'이민규','오라클 장인','그게 나야',sysdate);
insert into snsboard values(seq_board.nextval,'임형준','오라클','부셔버리고싶네',sysdate);
insert into snsboard values(seq_board.nextval,'진현규','인텔리제이 써라','왜 안되노',sysdate);
insert into snsboard values(seq_board.nextval,'윤호준','이걸 못하네 ㅋㅋ','개못하노 ㅋㅋ',sysdate);
insert into snsboard values(seq_board.nextval,'최진평','시발 맥북','부셔버리고 싶네',sysdate);
insert into snsboard values(seq_board.nextval,'최희찬','이거 못 품?','개쉬운데 ㅋㅋ',sysdate);
insert into snsboard values(seq_board.nextval,'송주영','실기 이미 통과','필기도 못하냐 ㅋ',sysdate);

select * from snsboard;

commit;
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글