스프링 JUnit을 사용해서 MySQL update문 테스트 방법입니다
코드 완성 예입니다
스프링 기본 예제 프로젝트 생성 시 기본적으로 JUint이 추가되어 있습니다
pom.xml 설정과 코드 작성 시 바로 mysql 연동을 확인할 수 있습니다.
1. pom.xml
dependencies 안에 mysql-connector-java dependency를 추가합니다
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
2. JUint 패키지 생성 및 class 생성
스프링 src/test/java 경로 아래에
DBInsert 이름의 class 파일을 만듭니다
public class DBUpdate {
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
}//static
@Test
public void testConnection() {
try (
Connection con =
DriverManager.getConnection(//mysql 연결 : DB_Schema/DB_username/DB_password
"JDBC:MYSQL://127.0.0.1:3306/DB_Schema?serverTimezone=UTC&useSSL=false",
"DB_username",
"DB_password")){
System.out.println("DB connection"+con);
//insert
int executeSql = doUpdate(con);
System.out.println("총 "+executeSql+"행 실행했습니다.");
} catch (Exception e) {
fail(e.getMessage());
}
}//testConnection
private int doUpdate(Connection con) {
//UPDATE 테이블명(컬럼) SET 컬러명=값 WHERE 조건;
final String updateSql = "UPDATE Test "//Table 명 뒤 꼭 공백이 있어야 한다
+ "SET Name=?,"//Name은 예약어로 SQL tool 사용 시 주의
+ "InputDay=? "//WHERE 앞 혹은 컬럼 마지막 뒤 공백 포함해야 한다
+ "WHERE Idx=?";//공백이 없을 경우 마지막 컬럼으로 인식 실행문 문법 에러 발생
try {
PreparedStatement pstmt = con.prepareStatement(updateSql);
pstmt.setString(1, "doUpdate");//Name
pstmt.setString(2, getToday());//InputDay
pstmt.setInt(3, 1);//Idx
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
return 0;
}
}//doUpdate
//오늘 날짜
private String getToday() {
//yyyy-MM-dd HH:mm:ss 중 MM, HH 대문자
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
String getToday = sdf.format(calendar.getTime());
return getToday;
}//getToday
}//DBUpdate
주의사항
final String updateSql 변수에서 "UPDATE Test "에 공백이 있는 이유는 문자열이 합쳐질 때
공백이 없으면 "UPDATE TestSET Name=?"같은 형태가 되기 때문에 공백을 줬습니다
"InputDay=? "뒤의 공백도 같은 이유입니다
그리고 쿼리의 중간에 Name은 예약어와 관련이 있기 때문에 쿼리툴에서 사용 시 에러가 난다면
`(백틱), "(큰따옴표)를 사용해서 예약어를 감싸줍니다
가장 좋은 방법은 예약어와 동일한 이름으로 쓰지 않는 것입니다.
127.0.0.1:3306 : MySQL 설치 경로입니다 본인의 환경에 맞춰서 변경하면 됩니다
DB_Schema : DB 스키마로 MySQL내의 데이터베이스 생성한 이름입니다
DB_username : 유저명으로 MySQL 설치 시 생성한 유저명을 적습니다
(DB 스키마에 맞는 별도의 유저명을 생성하지 않은 경우 보통 root)
DB_password : 유저명의 비밀번호입니다
3. JUnit 실행 방법
DBCon 선택 -> 마우스 우클릭 -> Run As -> JUnit Test
'JAVA > STS(SpringToolSuite)' 카테고리의 다른 글
[STS] Spring Properties 파일을 이용해서 DB 정보 분리하는 방법 (0) | 2022.02.04 |
---|---|
[STS] 스프링 JUnit으로 MySQL delete 예제 (0) | 2021.08.30 |
[STS] 스프링 JUnit으로 MySQL insert 예제 (0) | 2021.08.23 |
[STS] 스프링 JUnit으로 DB Connection 예제 (0) | 2021.08.20 |
[STS] 스프링 패키지 이름 오류 (0) | 2021.08.09 |