전체 글 850

MySQL 데이터타입

====문자형==== char(m)고정길이 문자열을 표현하는 타입으로 m=1~255으로 타입을 지정시 Binary로 지정하지 않으면 대소문자를 구분하지않는다. varchar(m)가변길이 문자열을 표현하는 차입으로 m=1~255이며 char보다 검색속도가 느리다. 또한 타입을 Binary로 지정하지 않으면 대소문자를 구분하지 않는다. tinyBLOB / tinyText최대길이 255개의 문자를 저장하는 타입 BLOB / Text최대길이 63535개의 문자를 저장할 수 있는 타입 mediumBLOB / mediumText최대길이 16777215의 문자를 저장할 수 있는 타입 LongBLOB / LongText최대길이 4294967295개의 문자(4G)를 저장할 수 있는 타입 ENUM('문자열1', '문자열2..

데이터베이스 2014.05.09

Naming Service(JNDI)에서 connection pool 찾기

static으로 선언해주어, 초기에 dataSource와 connection pool에 관련된 설정을 해줄수 있다 private static DataSource ds ; static{ // Naming Service(JNDI)에서 connection pool 찾기 Context initContext; try { initContext = new InitialContext(); /*Context envContext = (Context)initContext.lookup("java:/comp/env"); ds = (DataSource)envContext.lookup("jdbc/oracle");*/ ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/oracle"..

데이터베이스 2014.05.09

RowMapper대신 BeanPropertyRowMapper를 써서 쉽게 jdbc템플릿 쓰기

String SELECT_DATA = "SELECT data_id as id, data_name as name, data_age as age, data_winnercount as winnercount FROM data"; 이렇게 별칭을 주면, 굳이 rowMapper클래스를 안만들고 쓸수있다 public List selectDataList() { return jdbcTemplate.query(MappedSQL.SELECT_DATA, newBeanPropertyRowMapper(Data.class)); } Database SQL자체에서 이름이 객체와 테이블과 괴리가 있다면 저렇게 별칭을 줘서, Data가 가지고 있는 멤 버변수랑 이름을 같게 만들어주면 굿이다

JSON과 XML을 이용한 비동기통신

Spring framework를 이용하면 json과 xml을 이용해 이전에 해왔던것처럼 쉽게 비동기통신을 할수있다. 기존의 방식은 빈 깡통을 하나 만들어주고 거기다 서블릿에서 포워딩했고, jQuery의 getJSON등의 함수를 통해 불러왔다면, jQuery쪽의 함수는 기존의 방식 그대로 유지하면서도, 굳이 JSON이나 XML빈깡통을 만들지 않고 바로 스프링이 보내버리게 할수 있는것이다. 일단 리턴타입을 해쉬맵이나 리스트 아니면 객체타입으로 반환할수 있는데, 그 깊이가 차이가 날수있다. (여러개의 데이터는 list타입으로 리턴타입을 선언해주면 될것이다.) 다음은 JSON타입을 반환하는 예제이다. 서블릿에서 깡통 JSON.jsp등으로 포워딩하는게 아니라 바로 보내버리고 있다. //jackson-mapper기..

트랜잭션 (transaction) 설정

스프링에서는 트랜잭션이 AOP기반으로 작동한다. 트랜잭션 역시 두가지 타입으로 작동할수 있다. xml과 애노테이션 방식이다. 1) 공통코드 공통적으로 transactionManager를 만들어준다. 2-1) 에노테이션 방식부터 보면 Propagation 에뉴머레이션 타입에서 가져오는게 특이한점이라고 할수있다. 밑에 에노테이션은, 트랜잭션을 적용할 ServiceImpl들한테 붙여주면 된다고 하겠다. @Transactional(propagation=Propagation.SUPPORTS, readOnly=true) @Transactional(propagation=Propagation.REQUIRED) 2-2) xml 방식을 살펴보면 (메서드 닫히는 태그가 이상한데 있는건 css버그다. 니 센스로 알아서 달아준다)