JAVA 31

페이징 처리 내용 2

페이지 처리 내용설명UserMapper: MyBatis 매퍼 인터페이스에서는 ROWNUM을 사용하여 특정 범위의 데이터를 가져오는 메서드를 정의합니다.UserService: Service 클래스에서는 페이지 번호와 페이지 크기를 이용하여 시작 번호와 끝 번호를 계산하여 MyBatis 매퍼를 호출합니다.UserController: 컨트롤러에서는 요청된 페이지 번호에 따라 데이터를 조회하고, JSP에 전달할 데이터를 설정합니다.user-list.jsp: 받은 데이터를 테이블로 표시하고, 데이터가 없을 경우 "데이터가 없습니다." 메시지를 출력합니다. 이전 페이지와 다음 페이지를 제어하는 링크를 생성하여 사용자가 페이지를 이동할 수 있습니다.이 방법을 사용하면 전체 데이터의 개수를 구하지 않고도 간단히 페이지..

JAVA 2024.06.16

페이징 처리 내용

설명UserMapper: MyBatis의 매퍼 인터페이스에서 OFFSET과 FETCH 또는 ROWNUM을 사용하여 페이징 쿼리를 정의합니다.UserService: 페이지 번호와 페이지 크기를 받아서 MyBatis 매퍼를 호출하여 페이징된 데이터를 가져옵니다.UserController: 요청된 페이지에 따라 데이터를 조회하고, JSP에 전달할 데이터를 설정합니다.user-list.jsp: 받은 데이터를 테이블로 표시하고, 데이터가 없을 경우 알림창을 띄웁니다. 이전 페이지와 다음 페이지를 제어하는 링크를 생성합니다. 다음 페이지가 없는 경우에는 다음 버튼이 나타나지 않습니다.이 방법은 MyBatis의 기능을 최대한 활용하여 데이터베이스에서 효율적으로 페이징된 데이터를 가져오는 방법입니다. SQL 쿼리에서 ..

JAVA 2024.06.16

Chpter01. 변수

Chpter 01. 변수 - 변수란 ? : 값을 저장 할 수 있는 메모리상의 공간을 의미(단 하나의 값을 저장할 수 있는 메모리 공간) - 변수의 초기화 ? : 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 알 수 없는 값이 남아 있을 수 있기 때문에 반드시 변수 초기화가 필요하다. : 변수의 초기화란 변수를 사용하기 전에 처음으로 값을 저장하는 것 - 변수의 초기화 방법 1) 변수의 값을 저장시에 대입연산자를 '='을 이용한다. 2) 자바에서는 오른쪽의 값을 왼쪽(변수)에 저장하라는 뜻 3) 대입연산자의 왼쪽에는 반드시 변수가 와야한다. - 변수의 명명규칙 1. 대소문자가 구분되며 길이에 제한이 없다. 2.예약어를 사용해서는 안 된다. 3. 숫자로 시작해서는 안된다. 4..

JAVA 2023.03.07

Chapter01. 변수

Chpter 01. 변수 - 변수란 ? : 값을 저장 할 수 있는 메모리상의 공간을 의미(단 하나의 값을 저장할 수 있는 메모리 공간) - 변수의 초기화 ? : 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 알 수 없는 값이 남아 있을 수 있기 때문에 반드시 변수 초기화가 필요하다. : 변수의 초기화란 변수를 사용하기 전에 처음으로 값을 저장하는 것 - 변수의 초기화 방법 1) 변수의 값을 저장시에 대입연산자를 '='을 이용한다. 2) 자바에서는 오른쪽의 값을 왼쪽(변수)에 저장하라는 뜻 3) 대입연산자의 왼쪽에는 반드시 변수가 와야한다.

JAVA 2023.02.23

멀티쓰레드 프로그래밍 multi-thread programming

멀티쓰레드 프로그래밍 -Dead lock 프로세스가 자원을 할당 받지 못해, 다음 처리를 하지 못하는 상태 = 교착상태 발생이유: 시스템의 한정된 자원을 영러곳에서 사용하려고 할 때 발생 wait(): 리소스가 더이상 유효하지 않은 경우 리소스가 사용 가능 할 때 까지 위해 thread를 non-runnable 상태로 전환 notify() : wait()하고 있는 thread 중 한 thread를 runnable한 상태로 깨움 notifyAll():wait()하고 있는 모든 thread가 runnable한 상태가 되도록 함 notify()보다 notifyAll()를 사용하기를 권장 특정 thread가 통지를 받도록 제어 할 수 없으므로 모두 깨운 후 scheduler에 CPU를 점유하는 것이 좀 더 공평..

JAVA 2019.10.29

멀티쓰레드 프로그래밍 multi-thread programming

멀티쓰레드 프로그래밍 임계영역(critical section) - 두 개 이상의 thread가 동시에 접근하게 되는 리소스 - critical section에 동시에 thread가 접근하게 되면 실행 결과를 보장 할 수 없음 - thread간의 순서를 맞추는 동기화(synchronized)이 필요 동기화(synchronized) - 임계 영역에 여러 thread가 접근하는 경우 한 thread가 수행 하는 동안 공유 자원을 lock하려 다른 thread의 접근을 막음 - 동기화를 잘못 구현하면 deadlock에 빠질 수 있음 자바에서 동기화 구현 - synchronized수행문과 synchronized 메서드를 이용 1. synchronized 수행문 synchronized(참조형 수식){ } 참조형 수..

JAVA 2019.10.28

Thread status ( 쓰레드 상태 ) -활용

Thread 우선순위 -Threadl.MIN_PRIORITY(=1) ~ Thread.MAX_PRIORITY(=10) -디폴트 우선순위: Thread.NORM_PRIORITY(=5) 사용해서 설정도 가능하다. -setPriority(int newPriority) -int getPriority() 우선순위가 높은 thread는 CPU를 배분 받을 확률이 높음 join() 메서드 예제코드 package thread; public class JoinTest extends Thread{ int start; int end; int total; public JoinTest(int start,int end) { this.start=start; this.end=end; } public void run() { int i ..

JAVA 2019.10.27

Thread class

Thread Process - 실행중인 프로그램 - OS로부터 메모리를 할당 받음 -> 메모리에 올라가서 할당된 상태에서 실행중인 프로그램 Thread - 실제 프로그램이 수행되는 작업의 최소 단위 - 하나의 프로세스는 하나 이상의 Thread를 가지게됨 -> 실행 단위 ■ Thread를 구현하는 방법 1. Thread를 extends 하는 방법 class Test{ t = new Thread(); t.start(); } class AnyThread extends Thread{ public void run(){ ....... } } 2. Runnable 인터페이스 구현 class Test{ t = new Thread(new Anything()); t.start(); } class AnyThread imp..

JAVA 2019.10.26

입출력 클래스 및 데코레이터패턴

■ 입출력 클래스 - File 클래스 파일 개념을 추상화한 클래스 입출력 기능은 없고 파일의 속성,경로, 이름 등을 알 수 있음 ■ RandomAccessFile 클래스 - 입출력 클래스 중 유일하게 파일 입출력을 동시에 할 수 있는 클래스 - 파일 포인터가 있어서 읽고 쓰는 위치의 이동이 가능함(Seek메소드) - 다양한 자료형에 대한 메서드가 제공됨 예제코드 package others; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileTest { public static void main(String[] args) thro..

JAVA 2019.10.25

직렬화(Serialization)

직렬화(Serialization) - 인스턴스의 상태를 그대로 저장하거나 네트웤으로 전송하고 이를 다시 복원(Deserializtion)하는 방식 - ObjectInputStream과 ObjectOuputStream 사용해서 사용. - 보조 스트림 Serializable 인터페이스 - 직렬화는 인스턴의 내용이 외부(파일, 네크워크)로 유출되는 것이므로 프로그래머가 객체의 직렬화 가능 여부를 명시 구현 코드가 없는 mark interface class Person implements Serializable(직렬화표시){} 예제코드 package serialzation; import java.io.FileInputStream; import java.io.FileOutputStream; import java...

JAVA 2019.10.24