본문 바로가기

Java

(19)
Infinite Routing DataSource 스프링을 이용하여 몇개의 데이터소스를 정해놓고 라우팅을 하는 경우 AbstractRoutingDataSource를 이용할 수 있었습니다. 하지만 경우에 따라 접속해야하는 데이터베이스가 무한대일 경우? 그래서 이것저것 생각해 봤는데 -_-.... 로그인시에 [고객 코드], [아이디], [비밀번호] 3가지를 입력 받습니다. [고객코드]로 고객을 찾은 후 고객의 정보로 디비 정보를 만든 후 ThreadLocal에 저장합니다. 그 후 로그인 처리를 합니다. 로그인 시에 데이터소스를 사용할 때 ThreadLocal에 있는 디비 정보(DbInfo 객체)로 데이터소스를 만들거나 캐쉬에서 가져오게 합니다. 로그인 때에 처음 그 데이터베이스에 접속을 하게 되니까 RoutingDataSource 부분에서 데이터소스를 처음..
Proftpd Manager 드디어 오랜기간의 방황을 깨고 마무리가 되었습니다. ㅠ_ㅠ 빠진 기능도 있고 버그도 있겠지만(?) 다음 과제(?)를 위해서 마무리~ 소개... Ubuntu 에 Proftpd 와 Mysql 을 이용해서 사용자 관리와 파일 전송 기록을 남길 수가 있습니다. http://www.sysadminworld.com/2011/install-proftpd-with-mysql-backend-on-debian-ubuntu/ 위와 같은 테이블로 관리를 하게 됩니다. 유저와 그룹을 관리하고 쌓이기만 하는 전송 기록을 볼 수 있는 웹어플을 한번 만들어 봤습니다. ※ 원래 데이터베이스는 MySQL 인데 샘플을 위해서 SQLite 로 데이터를 옮겼습니다. 사용한 기능... Spring Framework 3 - Core, AOP, ..
Sudoku http://antop.nerv.kr/sudoku ※ 혹시나 해보고 에러 찾으면 댓글 달아주세요~ >.,
간단한 JAVA 실행기(?) http://antop.nerv.kr/java 아주 간단한 JAVA 코드 테스트 하려고 이클립스 키고 프로젝트, 클래스 만들고 하기 귀찮아서 웹에서 바로 테스트 해볼 수 있는 걸 만들어 봤습니다. 크게 Ext JS 3.3.1와 Spring 3.0.5를 사용 했습니다. 아래 화면이 실행 화면입니다. ㅎㅎ JAVA 에서 main 메소드 안에 들어갈 내용을 작성하면 됩니다. public class ? { public static void main(String[] args) { // 작성 } }작성 후 "실행" 버튼을 누르면 sysout으로 출력된 결과를 볼 수 있습니다. "저장" 버튼은 작성한 소스를 java 파일로 다운로드 받을 수 있습니다. "로그 삭제" 버튼은 아래의 Console 로그를 삭제합니다. 아..
Using AUTO_INCREMENT keys http://dev.mysql.com/tech-resources/articles/autoincrement-with-connectorj.html http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/jdbc.html MySQL 에는 AUTO_INCREMENT(이하 AI)라는 것이 있습니다. 오라클 디비의 시퀀스와 같이 자동으로 값이 증가하게 됩니다. AI를 적용하려는 칼럼은 기본키K(Primary Key)여야 합니다. Before JDBC API 3.0 JDBC API 3.0 이전에서는 INSERT 이후에 "select last_insert_id()" 쿼리를 날려서 추가된 AI 값을 가져와야 합니다. Conne..
Forecast Repository 2011년 2월 10일 - 수정 사항 - json-taglib 수정(http://antop.tistory.com/99). 이에 따른 js에서 강제 파싱부분 제거 - ExtJS 3.3.1 업그레이(아무 변화 없음 -_-) 및 필요한 라이브러리만 담음 - IE에서 열라 느린거 해결 못함 ㅠ_ㅠ 해보시려면 sql(/WEB-INF/sql/*.sql)로 스키마 세팅하고, WEB-INF/applicationContext.xml 에서 DB 설정을 해줘야 합니다. http://antop.nerv.kr/forecast 새로 개편하여 화면을 만들었습니다. 데이터베이스 구조만 빼고 완전 다 바뀌었군요.... Cron을 이용하여 돌리던 배치(스케쥴링)를 Quartz를 이용(Spring과 연동)하여 처리 하였습니다. 화면은 E..
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 Spring + JDBC를 이용하여 개발 시에 queryForObject(...) 메소드를 사용하여 하나의 객체만 가져올 경우 해당 데이터가 없으면 org.springframework.dao.EmptyResultDataAccessException 예외가 발생하게 된다. package kr.nerv.dao.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcDa..
게시판 1.0 2011.01.24 - 제목, 작성자에 html 태그 넣으면 이상하던거 수정 -_- Introduction http://antop.nerv.kr/board_v1/list.do 전에 php로 일할때는 게시판을 직접 만들어서 홈페이지를 만들었었는데 JAVA 로 갈아타면서 제대로된 게시판을 만들어보질 못했네요... 그래서 열심히 게시판을 하나 만들어 봤습니다. 아래의 기능들을 사용했습니다. JSP Standard Tag Library (JSTL) Strtus 1.3.10 (GA) Hibernate 3.3.2 (GA) json-taglib json_parse.js SWFUpload 2.2.0.1 SmartEditor Basic 0.3.17 Google Kaptcha 2.3 Lightbox JS 2.0 알고리즘은..