본문 바로가기

Programming Practice

Spring transaction 설정_MySQL 1. 배경1) 특별한 설정이 없을 경우, SqlSession은 개별 쿼리 별로 commit, rollback을 수행한다.2) method 에서 insert, update, delete 쿼리를 수행해서 method 별로 commit, rollback을 수행할 경우 아래와 같이 한다.Spring 에서는 개별 코드별로 transaction을 설정하지 않고, (programming transaction - 세세한 것의 설정이 가능하나, 코드 반복이 있고, 실수하기 쉽다.) transaction을 사용하겠다는 선언을 통해(declarative transaction) transaction을 설정할 수 있다.2. 사용1) DispatcherServlet-context.xmltransactionManager에 대해 아.. 더보기
Repository(Dao) 에서 SqlSession 사용_MySQL 1. SqlSession 이란?쿼리 실행, commit, rollback에 사용되는 객체 2. Repository(Dao) 에서 SqlSession 사용하는 방법1) DispatcherServlet-context.xmldataSource, sqlSessionFactory, userMapper 에 대해 아래와 같이 설정한다. 2) java(Repository): class 선언 시 extends SqlSessionDaoSupport 를 한다.: sqlSession을 가져와서 query를 호출한다. public class InMemoryProductRepository extends SqlSessionDaoSupport implements ProductRepository{ public List getAllPr.. 더보기
MyBatis를 통한 Spring과 MySQL 연결 자세한 사항은 아래 URL 참고https://mybatis.github.io/spring/index.html 1. MySQL 과 MyBatis 관련 library 설치 - pom.xml 에서 아래 dependency 추가 org.mybatis mybatis 3.1.1 org.mybatis mybatis-spring 1.1.1 mysql mysql-connector-java 5.1.21 2. DispatcherServlet-context.xml 설정 (datasource, sqlSessionFactory) 3. 쿼리 결과를 담을 entity class 생성 4. 쿼리를 목록으로 하는 interface 생성 - src/main/java 에 위치 - @Select 와 같은 쿼리 annotation은 매핑되는 .. 더보기
local PC 에 MySQL Server 설정 및 이용 1. local PC 에 MySQL Server 설정1) local PC 에 MySQL Server 설치 - 아래 주소에서 MySQL installer download 후 설치 http://dev.mysql.com/downloads/installer/ 2) database 생성 - MySQL version Command Line Client 실행 - MySQL server 설치 시 설정했던 관리자 비밀번호를 입력 - 아래 명령어 실행 CREATE DATABASE db명; (ex. CREATE DATABASE group_contacts;)cf. 참고 명령어 show databases; database 항목 보여주기 use group_contacts; group_contacts database로 이동 3) .. 더보기
자바 로직 성능 측정 자바 로직의 성능 측정은 해당 로직의 수행 시간을 계산하면 된다.아래와 같이 해서 프린트되는 시간이 총 수행시간이다. 1. 시작 : long startTime = System.currentTimeMillis(); 2. 종료 : long endTime = System.currentTimeMillis();long elapsedTime = endTime - startTime;System.out.println("Total elapsed time = " + elapsedTime); 더보기
Data Collection sort 1. 언제 필요한가?: 기본적으로 Data Collection에 담을 데이터를 가져올 때 sort를 해서 가져올 수 있다면, Data Collection 에서 sort를 할 필요가 없다. 예를 들어 DB 에서 조회한 데이터를 Data Collection에 담을 때는 DB를 조회하는 쿼리 내에서 order by를 통해 sort를 하기 때문에 java 에서 sort를 해서 담을 필요가 없다. 그러나 특정 디렉토리 내 파일들의 정보를 가져오는 경우와 같이 데이터를 가져올 때 sort를 해서 가져올 수 없다면 Data Collection 의 sort 기능을 활용해야 한다. : 특정 디렉토리 내 파일들을 마지막으로 변경된 날짜 순으로 파일 정보를 보여주고 싶을 때 Data Collection 에서 sort를 해야.. 더보기
특정 폴더의 파일 목록 가져오기 만들어해야 하는 문서 목록이 있다고 하자. 보통 회사에서는 이것을 여러명이 나눠 작성을 한다. 또한 누군가는 모은 후 만들어야 하는 문서가 모두 만들어졌는지 체크를 해야 한다. 이때! 모여진 폴더 내 문서들의 파일명들을 한꺼번에 텍스트 형태로 가져올 수 있다면, ‘작성된 파일목록’과 ‘작성해야 하는 파일목록’을 엑셀의 match 나 vlookup 기능을 이용해 쉽게 비교할 수 있다. 아래는 특정 폴더의 파일 목록 가져오는 코드이다. eclipse 에서 실행하면, console 창에 파일 목록이 나온다. import java.io.File; public class ListFileInDirectory { public static void main(String args[]) { //특정 directory를 F.. 더보기
FileWriter 로 만든 UTF-8 파일을 Excel 에서 열었을 때 한글이 깨지는 문제 해결 특정 파일을 UTF-8 형식으로 작성하기 위해서는 크게 2가지를 해야 한다. 1) encoding 방식을 UTF-8 로 설정 * BufferedWriter writer = new BufferedWriter(new FileWriter(file)); 로 했을 때 기본적으로 UTF-8 로 설정된다. 2) BOM(Byte Order Mark) 을 파일 내 추가 * BOM : 파일 내에서 해당 파일 인코딩 형식을 명시 * UTF 계열의 BOM 인코딩 BOM UTF-8 EF BB BF UTF-16 Big Endian FE FF UTF-16 Little Endian FF FE UTF-32 Big Endian 00 00 FE FF UTF-32 Little Endian FF FE 00 00 실제 Java 에서 파일을 작.. 더보기
java 파일 읽기 한글 깨짐 방지 BufferedReader 객체를 만들때 아래와 같이 만든다. String filepath = "D:/work/a.txt"; BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filepath ),"euc-kr")); 더보기
[Contacts Provider]연락처 그룹 생성 및 입력 방법 1. 기본 1) 연락처의 그룹 정보를 담고 있는 ContactsContract.Groups 라는 테이블이 따로 있다. 2) ContactsContract.Groups 에 신규 그룹에 관한 row를 추가한다. 3) ContactsContract.Data 테이블에 GroupMembership 에 관한 row를 생성할 때, ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID 에 ContactsContract.Groups 테이블의 id를 할당한다. 2. ContactsContract.Groups 에 신규 그룹 row 추가 방법 1) 연락처 정보에서 그룹에 관한 정보를 중복을 제거해서 추려낸다. (사람별로 그룹 정보는 겹칠 수 있기 때문에 중복 제거를 해.. 더보기