프로그래밍/JAVA 자바
-
Thread 스레드 (2) / synchronized프로그래밍/JAVA 자바 2021. 9. 6.
synchronized = 동기화 스레드간 동기화를 하지 않고, 멀티 스레드를 돌리면 안정성과 신뢰성이 바닥이다. 그렇다고 synchronized를 너무 많이 쓰면 프로그램의 성능 저하가 일어난다. synchronized 란? 여러개의 스레드가 한개의 자원을 사용할때 현재 사용되고 있는 스레드를 제외하고, 나머지 스레드들은 데이터에 접근 할 수 없도록 막는 개념 package threadEx2; public class Ex002_Synchronized { public static void main(String[] args) { MyBank2 b = new MyBank2(); Thread t1 = new Thread(b); Thread t2 = new Thread(b); t1.start(); t2.star..
-
프로세스, 쓰레드 Thread프로그래밍/JAVA 자바 2021. 9. 5.
간단히 말하자면 동작하고 있는 프로그램 => 프로세스 프로세스는 보통 한개의 작업을 함. 그러나 쓰레드를 이용하면 하나의 프로세스에서 두가지 이상의 일을 동시에 할 수 있음. 멀티 태스킹 생각하면 이해가 쉬움 ex) 밥을 먹으면서 핸드폰을 하는 행위도 쓰레드라 볼 수 있음. 스레드 클래스를 상속 받기 package threadEx; public class Ex001_Thread { public static void main(String[] args) { MyThread1 t = new MyThread1(); t.start(); // 스레드 시작 try { for(int i=1; i
-
자바DB / CallableStatement프로그래밍/JAVA 자바 2021. 9. 2.
CallableStatement 간단히 말해서 오라클에서 시퀀스를 만들고 그걸 자바에서 불러온다고 생각하면 된다. 시퀀스는 쿼리문을 편하게 미리 작성해 놓는거니까 자바에서도 단순히 불러오기만 하면 된다. 예제 분석을 위해 오라클에 미리 테이블과 시퀀스를 작성해두자. 이대로 score 테이블 먼저 작성 이후에 프로시저 작성 -- 프로시저 만들기 CREATE OR REPLACE PROCEDURE insertScore( pHak IN score.hak%TYPE, pName IN score.name%TYPE, pBirth IN score.birth%TYPE, pKor IN score.kor%TYPE, pEng IN score.eng%TYPE, pMat IN score.mat%TYPE ) IS BEGIN INSE..
-
자바DB연동 / PreparedStatement 활용 예제프로그래밍/JAVA 자바 2021. 8. 30.
PreparedStatement = 단순하게 보자면 Statement보다 좋다고 생각하면 된다. (Statement 거의 잘 안씀) = PreparedStatement의 특징은 전처리를 하는게 특징인데 이게 뭐냐면 미리 읽어 들인다는거다. Statementet는 실행 할때마다 전체를 전부 다시 읽어야 하는데 PreparedStatement는 그럴 필요가 없이 전처리를 해놔서 나중에 또 다시 읽을때는 바뀐 부분만 읽으면 된다는 것 속도감에서 차이가 크다. 바로 예제문을 보면서 해석 해보자. 예제 문제 내용 package db.member; import java.sql.SQLException; import java.util.List; public interface MemberDAO { public int i..
-
입출력 스트림 마무리프로그래밍/JAVA 자바 2021. 8. 29.
PrintWriter = 바이트가 아닌 문자를 출력할때 사용한다. package ioEx3; import java.io.PrintWriter; public class Ex013_PrintWirter { public static void main(String[] args) { // PrintWriter : 바이트가 아닌 문자를 출력할 때 사용 PrintWriter pw = new PrintWriter(System.out); pw.print("자바"); pw.print("오라클"); pw.println("ㅁㅇㄴㄴ"); pw.flush(); // true 옵션을 주면 flush()를 호출하거나 println()을 호출하면 출력 PrintWriter pw2 = new PrintWriter(System.out, ..
-
자바로 DB 연동해서 작업하기 Statement 활용 예제프로그래밍/JAVA 자바 2021. 8. 27.
보통 Statement보다 PreparedStatement를 사용한다. 여기선 Statement 사용 자바로 입력해서 오라클 데이타 베이스 서버에 값(데이터)들을 넣고 그 데이터들을 이용해서 자바에서 리스트를 불러오거나 삭제하거나 수정하거나 할거임. package score1; public class ScoreDTO { private String hak; private String name; private String birth; private int kor; private int eng; private int mat; private int tot; private int ave; private int rank; public String getHak() { return hak; } public void s..
-
자바로 오라클 DB 간섭하기 / Statement / ResultSet프로그래밍/JAVA 자바 2021. 8. 26.
Statement = 인터페이스 쿼리를 실행하는 인터페이스 package dbEx; import java.sql.Connection; import java.sql.Statement; import db.util.DBconn; public class Ex001_Statement { // 자바로 오라클DB에 간섭 public static void main(String[] args) { Connection conn = DBconn.getConnection(); // Statement 인터페이스 쿼리를 실행하는 인터페이스 Statement stmt = null; String sql; try { // 쿼리를 작성할때 마지막에 ; 붙이지 않는다. // 쿼리에 ; 붙이면 ORA-00933 발생 sql = "INSERT..
-
입출력 스트림(6) / PrintStream프로그래밍/JAVA 자바 2021. 8. 24.
package ioEx3; import java.io.PrintStream; public class Ex010_PrintStream_File { public static void main(String[] args) { /* * PrintStream 클래스 * System.out은 PrintStream 객체 * 다른 출력 스트림의 기능을 추가하여 다양한 데이터 값의 표현을 편리하게 출력 * IOException이 발생하지 않는다. * 자동으로 flush()가 되도록 생성 가능. */ String name = "홍길동"; int kor = 80; int eng = 90; int mat = 100; try(PrintStream ps = new PrintStream("test.txt")) { //텍스트 파일에 ..