자바웹프로그래밍
-
Reader,Writer(문자 기반 스트림) with java자바웹프로그래밍/JAVA 2024. 2. 27. 17:45
Contents 문자 기반 스트림 이전 글에서 바이트 기반 스트림을 알아보았다. 이번에는 문자기반 스트림에대해 알아볼것이다. 2024.02.27 - [자바웹프로그래밍/JAVA] - InputStream,OutputStream 입출력 방식 분석 with java Reader와 Writer 란? Reader 는 문자 기반 입력 스트림 최상위 추상 클래스이고, Writer 는 문자 기반 출력 스트림 최상위 추상 클래스이다. 이들의 하위 클래스는 XXXReader , XXXWriter 이라는 오버라이드된 Reader 소개 read() 메소드 public int read() throws IOException { char[] cb = new char[1]; if (read(cb, 0, 1) == -1) return..
-
InputStream,OutputStream 입출력 방식 분석 with java자바웹프로그래밍/JAVA 2024. 2. 27. 16:28
Contents Stream 이란? 데이터가 출발지에서 도착지로 단일 방향으로 흘러가는 것을 말한다. InputStream, OutputStream 설명 데이터가 프로세스로 흘러 들어올때는 InputStream을 사용하고 , 데이터가 프로세스로부터 나가면 OutputStream을 사용한다. Inpustream,OutputStream은 Stream 최상위 추상클래스이며, 바이트 출력 스트림이다. 그 아래로 보면 FIle,Filer 등등 xxxInputStream 오버라이드한다. Inpustream은 프로세스 기준으로 들어오는 경우에 사용한다. 이제 중요한 메소드를 알아보자 1.read() 메소드란? 1바이트를 읽고 int(4바이트)형으로 반환한다. 테스트를 해보자 이제 실행시켜보면 그외에 read(byte..
-
JPA - 영속성 컨텍스트 ?자바웹프로그래밍/JPA 2023. 9. 12. 23:22
영속성 컨텍스트 - 엔터티를 영구 저장하는 환경이다. 예) entitymanager.persist(member) - 와 같은 엔터티매니저 persist 메소드를 사용하면 영속성 컨텍스트에 attach된다. 엔터티에는 생명주기가 있으며 다음과같이 4가지가 있다 비영속 : 영속성 컨텍스트와 상관이없다. (영속성 컨텍스트에 attach되어있지 않다.) 영속 : 영속성 컨텍스트에 저장된 상태이다. 준영속 : 영속성 컨텍스트에 저장되어있다 특정 메소드를 통해 분리된 상태이다. 삭제 : 영속성 컨텍스트에서 삭제된 상태이다. jpa에선 영속성 컨텍스트를 관리하는데 왜 이런식으로 관리하는가? 영속성 컨텍스트로 엔터티를 관리시 장점은 아래와같이 5가지가 있다 1. 영속성 컨텍스트(메모리)에서 가져와 빠르게 조회할수있다...
-
java servlet filter 란?? (자바 서블릿 필터)자바웹프로그래밍/servlet 2023. 8. 10. 00:02
자바 서블릿 필터는 클라이언트 요청을 인터셉트 하거나 전처리할수있다. 또한 , 웹 어플리케이션서버가 클라이언트에 응답할때 인터셉트하여 후처리를 할수있다. 왜 우리는 서블릿 필터를 사용하는가? 일반적인 웹 서버는 누구든지 접근하여 uri를 통해 리소스를 요청하고 응답을 받을수있다. 하지만 웹 서버에는 민감한 자료등이 있고 이 자료들은 꼭 특정 요청(특정 유저)들에게만 access를 허용하고 싶을때가 있을것이다. 위와 같은 상황을 개발하기위해 우리는 servlet session 속성을 이용할수있다. 이러한 작업들은 꼭 필터를 이용할 필요는 없지만(각각에 서블릿 안에 위와 같은 작업을 코드로 작성하면됨. 하지만 이렇게하면 유지보수하기가 너무어려워짐.) 가로안에 이유때문에 필터를 이용하여 관리하는것이 유지보수 ..
-
spring에서 mybatis 연동 완벽 작동! spring mybatis 연동 방법자바웹프로그래밍/mybatis 2023. 2. 2. 23:33
*도움이 되셨다면 광고 클릭 한번 부탁드립니다. (__) 1.pom.xml 에 종속 라이브러리 추가 org.mybatis mybatis-spring 2.0.7 org.mybatis mybatis 3.5.6 2.root-context.xml (bean을 등록 하는곳) *spring에서 @configuration 으로 등록하는 방법이 있지만, 여기서는 xml에서만 등록하는 법을 소개하겠다. 어차피 xml에서 bean을 등록하나 @configuration에서 bean을 등록하나 같은원리이므로.. 2-1 일단 jdbc를 사용하기위한 datasource와 mybatis에서 제공하는 sqlSessionFactory를 bean으로 등록해준다. mybatis는 *Mapper.xml 파일을 이용하여 쿼리문을 작성한다. ..
-
maven을 통한 jar 생성할때 dependency(의존성) library 포함 후 jar 생성방법자바웹프로그래밍/JAVA 2023. 1. 9. 13:32
*도움이 되셨다면 광고 한번 클릭 부탁드립니다! 제게 큰 힘이됩니다! maven 을 통해 jar를 생성할경우 아래와같은 코드를 maven에 삽입한다. org.apache.maven.plugins maven-jar-plugin true true ReportMakerMain 하지만 위와같은 코드를 삽입후 maven install을 할경우에 실행은 잘되지만, 의존성 library들은 jar 패키지에 포함되어있지 않아 에러가 발생한다! 위와같은 문제에 두가지 해결방법이 있는데 첫번째는 1. 종속된 라이브러리들을 외부로 뺴낸뒤 manifest.mf에 라이브러리들을 맵핑하여 정상 작동하도록 한다. org.apache.maven.plugins maven-dependency-plugin ${project.build.d..
-
mybatis 셋팅(setting) 하는법 no spring(일반 메이븐 프로젝트) postgresql myabtis자바웹프로그래밍/mybatis 2023. 1. 8. 09:35
*도움이 되셨다면 광고 클릭 한번 부탁드립니다. (__) 회사에서 spring에서 개발된 일부 내용들이 jar 파일로 배포해야 되는 상황이 생겼다. 그 코드에는 db에 접근하여 데이터를 가져와야 하는 내용들이 있었고, spring에서 사용하는 mybatis를 아래와 같이 일반 jdbc 라이브러리를 사용하여 쿼리를 일일이 수정하기엔 작업시간이 걸릴거 같았다. 그래서 mybatis를 그대로 사용하기로 하였다. Connection conn = null; String url = "jdbc:oracle:thin:@localhost:1521:xe"; String id = "hr"; String pw = "java1234"; try { Class.forName("oracle.jdbc.driver.OracleDrive..