[SQL] JAVA 연동

kafa·2023년 3월 3일
0

Java 복습

목록 보기
5/7

아악 오류 개킹받아

1 : Oracle에서 sql문 짜기

여기서 돌려보고 안돌아가면 java에서도 안돌아간다.

SELECT * FROM MEMBER;
--- 테이블 컬럼에 값이 있으면 업데이트하고 없으면 업데이트 하지 않기
-- 가변부분이 if문에 의해 처리 됨
UPDATE member SET username='a',  userage=12,  userphone='M',  userid='a'; 
UPDATE member SET username='a',  userage=12,  userphone='M'; 
UPDATE member SET username='a',  userage=12; 
UPDATE member SET username='a'; 
-- (자바 오류)(해결)

2 : Mapper

MyBatisContext가 dto(private~블라블라)와 junit 혹은 main과 Mapper를 이어준다.

MyBatis란?

쿼리 기반 웹 애플리케이션을 개발할 때 가장 많이 사용되는 SQL 매퍼(Mapper) 프레임워크이다.

  • 마이바티스를 사용하지 않고 직접 JDBC를 이용할 경우 문제점:
    개발자가 반복적으로 작성해야 할 코드가 많고, 서비스 로직 코드와 쿼리를 분리하기가 어렵다. 또한 커넥션 풀의 설정 등 개발자가 신경 써야 할 부분이 많아 여러 가지 어려움이 있다. 따라서, JDBC를 이용해서 직접 개발하기보다는 마이바티스와 같은 프레임워크를 사용하는 게 일반적이다.
  • JDBC를 이용하여 프로그래밍을 하는 방식:
    클래스나 JSP와 같은 코드 안에 SQL문을 작성하는 방식
    따라서 SQL의 변경 등이 발생할 경우 프로그램을 수정해야 한다.
    -> 유연하지 않다, 코드가 복잡하게 섞여 있어서 가독성도 떨어짐
    마이바티스에서는 SQL을 XML 파일에 작성하기 때문에, SQL의 변환이 자유롭고 가독성도 좋다.

마이바티스(MyBatis)란?
가독성이 좋구나 그게 좋은거구나


// 있으면 바꾸고 없으면 안바꾸는 걸 할거임
// 가변부분이 if문에 의해 처리 됨

@Update({
	" <script> ",
	" UPDATE member SET username=#{obj.username} ",
		" <if test = 'obj.userage !=0'> ",
			" , userage=#{obj.userage} ",
			" </if> ",
		" <if test = 'obj.userphone != null'> ",
			" , userphone=#{obj.userphone} ",
			" </if> ",
		" <if test = 'obj.usergender !=null'> ",
			" , usergender=#{obj.usergender} ",
			" </if> ",
			"WHERE userid = #{obj.userid}",
			" </script> "
})
public int memberUpdateOne(@Param("obj") Member obj);

//이게 좋은거였어

	

3 : Junit

Junit test case 파일에서 돌리기(일종의 main, 그러나 주석을 안잡아도 되는)
JUnit을 활용한 Java 단위 테스트 코드 작성법


	@Test
	void memberUpdateOne() {
		Member m = new Member();
		m.setUserid("a2");
		m.setUsername("aaaa");
		m.setUserage(12);
		m.setUserphone("051");
		m.setUsergender("M");
		
		int ret = mapper.memberUpdateOne(m);
		System.out.println(ret);
	}
		
profile
kafa is kafa. not be something other.

0개의 댓글