목록Framework/Spring (26)
능글맞은 구렁이
JPA를 이용하여 DB연동 구현을 위한 준비작업 1. persistence.xml 1. META-INF=> persistence.xml: JAP 환경설정 파일 (반드시 존재해야한다.) 2. => "JPAProject"는 DAO클래스에서 EntityManagerFactory 객체 생성시 필요한 이름 => ~~~은 데이터베이스마다 1개씩 존재해야한다. 3. ~~~ 내부 1) ~~를 이용하여 Entity클래스를 등록해야한다. 2) ~~를 이용하여 DB연동에 필요한 정보를 등록한다. 3) : JPA는 해당 DBMS에 대한 테이블/쿼리등을 자동생성하기 때문에 hibernate-core~~.jar 내의 org.hibervate.dialect패키지에서 확인가능 (가장중요하다) 4. 옵션 속성 즉 선태사항에 대한 코드..

1. 상단메뉴 → Help → Eclipse Marktplace → JPA검색 → JPA Diagram Editor 1.1.1 다운로드 (다운이 잘 받아졌으면 프로젝트 생성시 other을 눌렀을때 JPA파일이있어야 잘 설치한것이다.) 2. 프로젝트생성 (Maven기반) NEW -> Maven Project -> Next-> "Artifact Id"부분에 quickstart로 끝나는 부분 체크 Next-> Group Id / Artifact Id / Version / Package 작성 org.hibernate hibernate-entitymanager 5.1.0.Final

JPA가 탄생한 이유 기존 SQL의 문제 무한 반복의 CRUD코드, 지루한 코드 (INSERT INTO,,, UPDATE,,)이다. 하지만 SQL에 의존적인 개발을 피하기는 어렵기 때문에 SQL을 계속 사용해야 하는것이다. 객체 vs 관계형 데이터베이스의 패러다임의 불일치 1. 상속 : 객체는 상속O BUT 데이터베이스는 상속X 대신 비슷한 JOIN이 있음 2. 연관관계 : 객체는 참조를 사용(예 : member.getTeam()) , 테이블은 외래키를 사용(JOIN ON M.TEAM_ID=T.TEAM_ID) 객체다운 모델링 class Member { String id; Team team; String username; Team getTeam(){ return team; } } class team{ Lo..

1. Lombok이란 ? Java코드를 컴파일할 때 자동으로 추가 메소드를 만들어서 컴파일해 주는 라이브러리라고 할 수 있다. 2.설치방법 https://projectlombok.org/ Project Lombok projectlombok.org lombok.jar 파일 다운로드 3. 다운받은 파일을 c드라이브로 이동 4. cmd실행 5. cd.. 를 이용하여 C:\ 으로 이동한다. 6. cmd 창에 java -jar lombok.jar를 입력한다. 그럼 자동으로 lombok이 실행되고 설치를 하면된다. 참고! 설치하다 이런 경고가 나온다면 cmd를 관리자 권한으로 실행해보자 검색창> cmd (클릭xxx) > ctrl + shift + 엔터 똑같이 cd.. 를 이용하여 C:\으로 이동하여 작성해준다. 이..
Spring + myBatis 연동 방법 1 (SqlSessionDaoSupport를 상속 받는 DAO 작성) 1. applicationContext.xml 에 스프링 제공 SqlSessionFactoryBean 클래스 등록 2. SqlSessionDaoSupport를 상속 받는 DAO 작성 @Repository public class BoardDAOMybatis extends SqlSessionDaoSupport { //SqlSessionDaoSupport 부모 public BoardDAOMybatis(){ } @Autowired public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { //sqlSessionFactory자식 sup..
*Mybatis의 기본 구조* board-mapping.xml insert into board (seq, title, writer, content) values ((select nvl(max(seq), 0)+1 from board), #{title}, #{writer}, #{content}) update board set title=#{title}, content=#{content} where seq=#{seq} delete board where seq=#{seq} select * from board where title like '%'||#{searchKeyword}||'%' order by seq desc 1. xml선언부 2. http://mybatis.org/dtd/mybatis-3-mapper...
실행흐름 BoardWeb_MVC 에플리케이션 구동 -> web.xml에 의해 web.xml 내부 action com.lsj.view.controller.DispatcherServlet action *.do DispatcherServlet 서블릿 객체에게 요청사항이 전달 1. 웹 주소줄 형태의 요청사항-> DispatcherServlet 서블릿의 doGet()이 자동호출 2. method="post" 형태의 요청사항 => DispatcherServlet 서블릿의 doPost()가 자동호출 ※만약 파라미터가 같이 전달되면 각 파라미터들은 doGet()/doPost()의 첫번째 매개변수인 request의 내부 params영역에 저장 DispatcherServlet 의 doGet()/doPost() 내부에서는 ..
*어노테이션을 이용한 MVC 1. 사용 이유 과도한 XML설정을 방지하기 위하여 사용한다. 2. 방법 1) 설정 파일(xml)문서에 context xml namespace를 추가 2) 설정 파일 내부에 으로 등록된 객체들 대신 으로 대체 하여 자동으로 지정한 패키지의 하위까지 검색하여 자동으로 객체들을 등록할 수 있도록 설정 예 ) 3) 컨트롤러역할을 담당하는 모든 클래스 선언부 위에 @Controrller 어노테이션을 추가하여 DispatcherServlet이 인식할 수 있는 컨트롤러 객체로 만든다. 만약 @Controller 어노테이션을 사용하지 않을 경우, 스프링이 제공하는 Controller인터페이스를 구현받아야 한다. 또한 handlerRequest() 메서드에 대한 재정의가 필요하다. 4) 사..
1.트랜잭션이란? 비즈니스로직을 수행할 경우, 일정부분까지 수행한후,오류가발생시, 현재까지의 모든 수행 내용을 처음으로 되돌리는 기능 (마치 오라클의 rollback과 commit과 같은 기능이다.) 2. 스프링 트랜잭션 처리 1) AOP필요 2) applicationContext.xml에 트랜잭션관련 tx 네임스페이스 필요 (xmlns:tx="http://www.springframework.org/schema/tx
1. JdbcTemplate *JdbcTemplate란? JDBC기반의 DB연동 프로그램을 쉽게 개발할 수 있도록 스프링에서 지원한 클래스 2. 스프링 JDBC설정 1] 라이브러리 추가 (pom.xml) 1) Spring JDBC 라이브러리 2). DBCP 라이브러리 2] JDBCUtil 클래스 만들기 1) JDBCUtil 클래스를 만들어 DAO클래스에 주입을 하면 DAO클래스의 SQL 메소드들은 일일이 JDBC연결 코드를 작성하지 않아도 된다. 3] DataSource설정 1) applicationContext.xml에 DataSource관련 을 등록한다. 2) 프로퍼티 파일을 활용한 Datasource설정 ㄱ) text에 JDBC에 관련된 코드를 작성해준다. /**database.properties ..