[개념]_Spring JDBC , Mapper 활용 데이터 처리
▶Spring JDBC -Spring Framework는 JDBC 프로그래밍을 위해 JdbcTemplate 클래스 제공함 -JdbcTemplate 클래스는 SQL 쿼리문 구현 쉽게 돕는다 ▶[Spring JDBC 사용 절차] ① 프로젝트 새성 및 관련 모듈 추가 ② DB 테이블 생성 (데이터 구조) - 사용할 계정 생성 후 DB 테이블을 데이터 구조에 맞게 생성한다. ③ 자바 설정 파일에 ‘DataSource 객체’ 빈 등록 후 (DB 연결 정보 세팅) //DataSource 객체 : DB 접속 정보 갖는 객체임 @Bean public BasicDataSource source() { BasicDataSource source = new BasicDataSource(); source.setDriverClas..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 5. 12.
[개념]_@Transactional 트랜잭션 처리
▶ 트랜잭션 처리 -트랜잭션 : 여러 쿼리를 논리적으로 ’하나의 작업‘으로 묶어준다. - 묶인 쿼리 중 하나라도 실패하면 ’전체 쿼리 실패‘로 간주 -> ’롤백‘ 처리 1) 롤백 : 트랜잭션의 모든 쿼리 실패 시, 실행 취소 후 DB 기존 상태로 복원 2) 커밋 : 트랜잭션의 모든 쿼리 성공 시, 결과를 실제 DB에 반영하는 것 ex) 은행에서 돈 입출력 시 입금자의 돈이 빠져나가면, 상대 계좌에 돈이 입금되어야 하는데, 트랜잭션의 영속성이 없다면 입금자는 돈이 빠져나갔는데도 상대는 돈을 입금받지 못하게 됨 - 데이터 일관성을 위해 연관된 데이터 작업 시, 하나의 작업 단위로 묶어서 데이터 처리를 하는 것. -스프링이 제공하는 ‘트랜잭션 기능’ 사용 시, 중복 없는 간결한 트랜잭션 범위 지정 O ▶ 트랜..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 5. 11.
[학교]_10주차_스프링 mySQL DB 쿼리 실습
Ex 7-4 실습. JdbcTemplate.queryForObject() 실행 - query() 결과가 1개일 경우 queryForObject() 메소드를 사용하는 것이 더 효율적. - 다만, 이 쿼리 실행결과의 행 개수가 반드시 1이어야 함. 아닐 경우 Exception 발생함 //ex 7-4 MemberDao 에서 int count() 메소드 추가한 부분 public int count() { Integer count = jdbcTemplate.queryForObject( "select count(*) from MEMBER", Integer.class); return count; } Ex 7-5 실습. JdbcTemplate.update() 사용 - MemberDao 에 public void updat..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 5. 11.
[개념]_Spring _DB 연동
1. 기존 JDBC API 활용한 JDBC 프로그래밍 처리 절차 -> try-catch 구문 불필요한 구문 구조의 불필요한 반복 多 (1) JDBC 클래스 지정 (2) Connection 객체 생성 (3) Statement 객체 생성 (4) SQL 실행/결과 반환 (5) 결과 정보 조회 (6) 연결 닫기 public class JdbcExample { // 기존 JDBC 프로그래밍 public static void main(String[] args) { //커넥션 객체 변수 Connection conn = null; //실행문 객체 변수 Statement stmt = null; try{ //(1) JDBC 클래스 지정 Class.forName("com.mysql.cj.jdbc.Driver"); //(2)..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 5. 11.
[학교] cmd에서 spring boot 실행
-cmd에서 spring boot 프로젝트를 실행하기 전 먼저 Maven 경로를 환경변수에서 설정해주어야 한다. 1) 환경 변수 설정 제어판 -> 시스템정보 -> 고급시스템 정보-> 환경설정 -> 시스템변수 안의 path 더블클릭 -> 새로만들기 클릭 후 %M2_HOME%\bin 추가 -> 시스템변수 안의 M2_HOME 클릭 -> 변수 이름 M2_HOME 변수 값 메이븐 설치 경로 중 bin 바로 이전의 폴더의 경로 추가 -> cmd에서 mv -version 명령어를 통해 환경변수가 잘 입력 되었는지 확인 * path 명령어와 환경변수를 설정하는이유 - cmd에 path라고 입력하면, 환경변수에 등록되어 있는 경로들을 확인할 수 있다. 기본적으로 cmd에 입력하는 명령어들은 내부명령들과, path로 지정..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 5. 4.
[학교]_MySQL 설치
1. MySQL 공식 홈페이지 http://www.mysql.com -Downloads 탭에서 Windows > MySQL Installoer 페이지에서 다운로드 받기 MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. Learn More » www.mysql.com 2. 설치 프로그램 실행 시 -> MySQL Server 8.0.19 , Connector/J 8..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 4. 26.
[개념]_AOP [Aspect-Oriented Programming]
[AOP 목표] - 기존 코드 수정 없이 원하는 관심사들을 엮어서 전체 구현 쉽게 하기 즉, 개발자들이 핵심 로직 코드만 개발하고 나머지 코드 부분은 어떤 관심사들과 결합할지 설정 만으로 전체 기능 효율적 개발 추구 [AOP 개념] - AOP : 핵심 기능/주변 기능 분리하여 코드 작성해놓고, 실행 시점에 결합하는 방식 핵심로직과 주변로직의 분리를 추구 = 관심사의 분리 핵심 비즈니스 로직과 부가기능(=공통기능) 코드의 분리 추구 ex. 입력 값에 대한 나눗셈 기능 구현 시, 1) 입력 값이 0 이상의 양수인지 확인한는 기능 : 관심사(주변 로직) 2) 실질적인 입력값 간의 나눗셈 기능 : 비즈니스 로직(핵심 기능) [AOP 용어들] ▷핵심 로직 관련 Target 객체 : 주요 핵심 로직 객체 자체. 순..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 4. 26.
[학교]_7주차_스프링 AOP 실습
Ex6-1. HelloApp.java/ MessageBean.java/ MessageBeanImpl.java/ appctxEx6_1.xml 파일 작성 1) MessageBean 인터페이스를 구현해놓은 MessageBeanImpl 클래스를 xml 설정 파일에 Bean으로 등록해놓았다. 2) 빈 등록 시, "Spring"이라는 값을 빈 객체의 필드값에 주입해놓는다. 3) main() 이 있는 HelloApp.java에서 해당 빈을 getBean() 한 후, sayHello() 호출하게 되면 xml 설정 파일에서 주입했던 name 값 "Spring"이 5초 이후 함께 출력되는 것을 확인할 수 있다. Ex6-2. AOP 사용하여 위의 기능을 다시 구현할 것
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 4. 20.
[학교]_6주차_스프링 @ComponentScan 실습
Example 5-4 자바코드 설정에서 Xml 설정 파일 포함하기. @ImportScan("classpath: - - -.xml") Example 5-5 컴포넌트 스캔 @ComponentScan, @Component [컴포넌트 스캔 기능] : 아직 빈 객체가 아닌 상태에서 스프링이 직접 클래스 검색하여 @Component 붙은 클래스에 대해 빈으로 등록해주는 기능 -> 스캔 대상 지정 | @Component -클래스에 @Component 붙여주면 해당 클래스가 스캔 대상이 된다. -> 스캔 설정 | @ComponentScan -Java 설정 클래스에 적용함 - basePackages 속성값은 스캔 대상 패키지 목록 지정 Example 5-7 Bean 객체의 LifeCycle -(1) 인터페이스 사용 Sp..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 4. 12.
[학교]_5주차_스프링 @Qualifier 실습
exercise 4-3. 실습 @Autowired로 자동 의존 주입 시, @Qualifier로 타입 한정자 지정하기 1) 타입 일치하는 bean 객체 검색. (1) 타입 일치 bean이 1개이면 해당 bean 객체 사용함 (2) 타입 일치 bean 객체 2개 이상이면 @Qualifier로 '한정자' 지정하여 매핑 (3) 타입 일치 bean 객체 2개 이상인데, @Qualifier 따로 없는 경우. 변수 이름 일치하는 bean 객체 찾아서 주입됨 exercise 4-4. 실습 @Autowired 대신 @Resource 사용해보기 -필드/메소드에만 적용 가능 O, 생성자에 적용 불가 -@Resource(name= "...") -만약 name 속성 생략된 경우, 적용된 필드/메소드의 타입과 일치하는 bean ..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 4. 5.
[학교]_4주차_스프링 DI 자동 의존 주입 @Autowired_실습
exercise3-3. 실습 applicationContext.xml 파일 안에 bean 설정 시, MinusOp 객체를 넣을 때와 PlusOp 객체를 넣을 경우가 서로 다른 것을 확인할 수 있다. exercise 4-1 실습 exercise 4-2 실습 @Autowired 애노테이션을 사용하여 빈을 자동 의존 주입할 수 있다. xml 설정 파일 안에 PlusOp 클래스를 빈으로 등록해놓고, 이 클래스가 필드에서 사용하고 있는 Operand 객체 또한 빈의 prototype 객체로 등록해놓았다.
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 3. 29.
[학교]_3주차_스프링 DI 의존_실습
[EX.3-1] 실습 package 'sample1' 실행 객체 간 의존 상태를 확인할 용도 package 'sample2' 中. MessageBeanEn() 객체로 생성하여 실행 package 'sample2' 中. MessageBeanKo() 객체로 생성하여 실행 package 'sample3' 실행 | '스프링' 의 DI 의존 설정을 xml 파일에 정의하고, 스프링을 제대로 시작 [applicationContext.xml] 파일에 스프링 의존 관련 설정을 하는데, 객체 등록 시, MessageBeanKo를 등록해둔 상태이므로 main에서 컨테이너 생성 후 getBean() 시 등록되는 빈 객체는 MessageBeanKo가 될 것이다. [main] 실행 시, 실제로 MessageBeanKo 클래스의 ..
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 3. 22.
[학교]_2주차_STS 설치_Spring Boot_실습
[STS] : Spring Tools Suite(Spring boot 기능) 이용 기본 프로젝트 작성 Spring-Tools for Eclipse : https://spring.io/tools 설치 [실행결과]
- Web(웹)_관련 공부 모음/[학교]_STS_Spring_실습
- · 2022. 3. 15.
[intelliJ_프로젝트 생성/설치/환경설정]
[gradle 파일을 열어보면 기본적인 세팅이 되어 있다. ] -메이븐/그레이들 모두 기본적으로 src 파일 속에 main폴더와 test폴더가 나뉘어져 있는 구조. [설정 -> CompactMiddlePackges 선택을 해지한다.] : 그냥 보기 편하려고 하는 설정 [중간에 main 실행하다가 에러가 났다. -> jdk 자바 11.0.2 버전 다운로드 빼먹어서 발생함] 여기서 자바 11.0.2 버전 다운로드 가능. https://jdk.java.net/archive/ Archived OpenJDK GA Releases Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of ..
- Web(웹)_관련 공부 모음/[강의] intellij_Gradle
- · 2022. 2. 28.
JDBC & MyBatis - [DB 연동]
26강. [오라클 데이터베이스 설치 ] [데이터베이스 설치] -JDBC 프로그래밍 실습을 위해 데이터베이스를 설치 -본 과정에서는 오라클 데이터베이스 11g 버전 사용 cmd 창 열고 설치 정상인지 확인 정상 설치 완료. 27강. [SQL Developer 설치] [SQL Developer] -오라클 데이터베이스를 GUI 환경에서관리할 수 있도록 제공되는 도구 -Java 8버전에서만 동작함 (이것보다 상위버전에서는 동작X) 접속 전 포트 번호 cmd 창에서 명령어 : lsnrctl service 실행 후 PORT 번호 확인하고 포트 번호 일치시켜준 뒤 접속하면 해결됨. 28강. [Spring JDBC] [Spring JDBC] -Spring Framework는 JDBC 프로그래밍을 위해 jdbcTempl..
- Web(웹)_관련 공부 모음/[강의] SpringFramework
- · 2022. 2. 18.