반응형

DataFileDBConnector.java

1
2
3
4
5
6
7
8
9
10
11
12
public class DataFileDBConnector {
    
    private File dbFile;
    
    public DataFileDBConnector(String path){
        dbFile = new File(path);
    }
 
    public File getDbFile() {
        return dbFile;
    }
}
cs


MemberDAOImpl.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class MemberDAOImpl 
extends DataFileDBConnector
implements MemberDAO{
 
    public MemberDAOImpl(String path) {
        super(path);
    }
 
    @Override//회원가입
    public void create(Member member) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter(getDbFile(), true));
            
        bw.write(member.getId() + "," + member.getPassword());
        bw.newLine();
        bw.close();
 
    }
 
    @Override//id로 회원 검색
    public Member read(String id) throws IOException,FileNotFoundException {
        Member member = new Member();
        
        BufferedReader br = new BufferedReader(new FileReader(getDbFile()));
        
        String data = null;
        while((data = br.readLine()) != null){
            String[] values = data.split(",");
            String readId = values[0];
            String readPassword = values[1];
            
            if(readId.equals(id)){
                member.setId(readId);
                member.setPassword(readPassword);
                br.close();
                return member;
            }
        }
        
        br.close();
        return null;
    }
 
}
cs


MemberServiceImpl.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class MemberServiceImpl 
implements MemberService{
 
    private MemberDAO dao = new MemberDAOImpl("member.txt");
    private Integer result = null;
    
    @Override
    public Integer create(Member member) {//회원가입
        Member data = new Member();
        try{
            data = dao.read(member.getId());
            if(data != null){// 사용중인 아이디 0
                result = 0
            }
            else {// 가입성공 1
                dao.create(member);
                result = 1;
            }
        }catch (IOException e) {// File 저장 에러 2
            result = 2;
        }
        return result;
    }
 
    @Override
    public Integer check(String id, String password) {
        Member member = new Member();
        try{
            member = dao.read(id);
            if(member == null){// 아이디 없음 4
                return 4;
            }else if(member.getPassword().equals(password)){// 비밀번호 틀림 1
                return 1;
            }else{// 로그인 성공 0
                return 0;
            }
        }catch (FileNotFoundException e) { // 파일 찾을 수 없음 2
            return 2;
            
        }catch (IOException e) { // 파일 읽기 오류 3
            return 3;    
        }
    }
}
cs


반응형

'IT > 언어' 카테고리의 다른 글

BSON encode/decode  (0) 2014.05.15
BSON 이해하기  (0) 2014.05.14
[펌][WEB] ajax 크로스도메인 설정~~  (0) 2013.12.18
log4j 에서 ibatis 쿼리 로그 남기는 방법  (0) 2013.11.26
spring 강좌 (2)  (0) 2013.11.26
반응형

ajax에서 외부서버에 접속하려 할 경우에 아래와 같은 메세지를 볼 수가 있다.

XMLHttpRequest cannot load http://xx.xx.xx.xx/xxx.jsp. Request header field Content-Type is not allowed by Access-Control-Allow-Headers.


이는 ajax에서는 내부적으로 같은 도메인의 서버에서만 URL접속을 할 수 있도록 되어 있어서 그런데 이를 해결하기 위해서는 접속하려는 웹서버(여기서는 톰캣)에서 아래와 같이 응답헤더를 설정을 해 주면,

다른 서버에서 접속요청하는 ajax 요청을 처리할 수 있다.


response.addHeader("Access-Control-Allow-Origin", "*");

response.setHeader("Access-Control-Allow-Headers", "origin, x-requested-with, content-type, accept");


좀더 자세히 말하면,

우선 Filter를 상속받은 클래스를 하나 정의해서 거기에 위의 코드를 넣는다.

CrossDomainFilter.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package util.filter;
 
public class CrossDomainFilter implements Filter {
 
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }
 
    @Override
    public void doFilter(ServletRequest request, ServletResponse servletResponse,
            FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        if (!(request instanceof HttpServletRequest)) {
            throw new ServletException("This filter can "
                    + " only process HttpServletRequest requests");
        }
 
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        response.addHeader("Access-Control-Allow-Origin""*");
        response.setHeader("Access-Control-Allow-Headers""origin, x-requested-with, content-type, accept");
        chain.doFilter(request, response);
    }
 
    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub
    }
}
cs



그리고, web.xml 에 위의 필터를 추가


web.xml

1
2
3
4
5
6
7
8
<filter>
    <filter-name>CrossDomainFilter</filter-name>
    <filter-class>util.filter.CrossDomainFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CrossDomainFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
cs





반응형

'IT > 언어' 카테고리의 다른 글

BSON 이해하기  (0) 2014.05.14
텍스트 파일 입출력 Example  (0) 2014.01.27
log4j 에서 ibatis 쿼리 로그 남기는 방법  (0) 2013.11.26
spring 강좌 (2)  (0) 2013.11.26
DAO, JavaBean, 리펙토링  (0) 2013.11.26
반응형

Help

> help

> db.help()

> db.mycollection.help()

> db.mycollection.find().help()

 Database & Collection 보기

> show dbs

- server에 있는 모든 database 를 보여준다.

> use db_name

- db_name 의 database 로 이동한다.

> show collections

현재 db 에 있는 모든 collections ( SQL의 table.. ) 을 보여준다.

 Query

 - mongo 는 JavaScript shell 이기 때문에 JavaScript 의 API 들을 사용한다. db 를 사용하여 현재 database 의 object 에 접근한다.

> db.foo.find()

- foo collection 에 있는 모든 정보를 보여준다.

> db['foo'].find()

위와 같은 기능 but, collection 이름이 숫자로 시작한다던지 한 경우에는 이 방법으로만 접근할 수 있다.

 Insert

 - insert 는 JS object 를 만들어서 save() 안에 넣어준다.

> db.foo.save( { name : "sara" } );

- foo collection 안에 name:"sara" 라는 object 가 추가된다.

 Update

 다음과 같은 과정을 통해서 업데이트 한다.

> person = db.people.findOne( { name : "sara" } );

> person.city = "New York";

> db.people.save( person ); 

 Delete

> db.foo.drop()

- foo collection 자체를 제거한다.

> db.foo.remove()

- foo collection 의 모든 object 를 제거한다.

> db.foo.remove( { name:"sara" } )

- name:"sara" 라는 조건을 가진 모든 object 를 제거한다

 Index

> db.foo.getIndexKeys()

- index 를 가진 모든 filed 를 보여준다.

> db.foo.ensureIndex( { _field_ : 1 } )

- field 에 대한 index 가 없다면, index 를 생성한다.


참고 : http://aroundck.tistory.com/1147



반응형

'IT > DB' 카테고리의 다른 글

기본적인 테이블 생성  (0) 2014.06.19
MongoDB 설치  (0) 2013.11.26
반응형

1.  http://www.mongodb.org 에 들어가서 해당 os에 맞는 파일 다운로드

 

2. 다운로드한 압축파일을 원하는 곳에 압출 해제 (D:\MongoDB)

 

3. 사용하기 편하게 path 등록 (환경변수 => 사용자 환경변수 => path 편집 후 mongodb\bin; 까지 추가)

 

4. 데이터를 저장할 폴더 생성 ( D:\ MongoDB\DATA\db)


5. 서비스 등록


c:\>mongod --logpath D:\MongoDB\DATA\Logs\Log.txt --logappend --dbpath d:\MongoDB\DATA\DB --directoryperdb --serviceName MongoDB --install


--logpath : log path
--logappend : log를 append 해서 기록
--dbpath : db 파일 위치
--directoryperdb : DB별 디렉토리로 구분
--serviceName: 서비스 등록 이름.
--install : 서비스로 등록
--port : 다른 포트로 지정해서 실행

그 밖의 명령은  c:> mongod /h 로 확인


 


6. cmd 실행 후 mongod --dbpath d:\mongodb\data\db  실행

 

7. win+r (실행)   - > mongo 입력 (6번 실행후 종료 하지 말고)

 


참고 사이트

http://ceusee.tistory.com/169

반응형

'IT > DB' 카테고리의 다른 글

기본적인 테이블 생성  (0) 2014.06.19
몽고DB 기본 명령  (0) 2013.11.26
반응형

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern"
          value="%p - %C{1}.%M(%L) | %m%n"/>
    </layout>
    <filter class="org.apache.log4j.varia.StringMatchFilter">
      <param name="StringToMatch" value="Result" />
      <param name="AcceptOnMatch" value="false" />
    </filter>

  </appender>

  <logger name="org.apache">
    <level value="WARN"/>
  </logger>

  <logger name="org.springframework">
    <level value="DEBUG"/>
  </logger>

  <logger name="com.ibatis">
    <level value="DEBUG"/>
  </logger>

  <logger name="java.sql">
    <level value="DEBUG"/>
  </logger>

  <logger name="woosin78.spring">
    <level value="DEBUG"/>
  </logger>

  <logger name="com.WARN">
    <level value="DEBUG"/>
  </logger>

  <root>
    <level value="WARN"/>
    <appender-ref ref="CONSOLE"/>
  </root>

</log4j:configuration>


출처 : http://blog.naver.com/woosin78/48458221


반응형

'IT > 언어' 카테고리의 다른 글

텍스트 파일 입출력 Example  (0) 2014.01.27
[펌][WEB] ajax 크로스도메인 설정~~  (0) 2013.12.18
spring 강좌 (2)  (0) 2013.11.26
DAO, JavaBean, 리펙토링  (0) 2013.11.26
spring 강좌  (0) 2013.11.26
반응형
반응형

'IT > 언어' 카테고리의 다른 글

[펌][WEB] ajax 크로스도메인 설정~~  (0) 2013.12.18
log4j 에서 ibatis 쿼리 로그 남기는 방법  (0) 2013.11.26
DAO, JavaBean, 리펙토링  (0) 2013.11.26
spring 강좌  (0) 2013.11.26
mysql + jdbc 기본 세팅(3)  (0) 2013.11.26
반응형

★ DAO

 

  DAO(Data Access Object)는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다.

 





★ 자바빈(JavaBean)


  자바빈(JavaBean)은 원래 비주얼 툴에서 조작 가능한 컴포넌트를 말한다. 
  자바의 주력 개발 플랫폼이 웹 기반의 엔터프라이즈 방식으로 바뀌면서 비주얼 컴포넌트로서 자바빈은 인기를 잃어 갔지만,  
  자바빈의 몇가지 코딩 관례는 JSP 빈, EJB와 같은 표준 기술과 자바빈 스타일의 오브젝트를 사용하는 오픈소스 기술을 통해 
  계속 이어져 왔다. 이제는 자바빈이라고 말하면 비주얼 컴포넌트라기 보다는 다음 두가지 관례를 따라 만들어진 오브젝트를 가리킨다. 
  간단히 빈이라고 부르기도 한다.

디폴트 생성자 : 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있어야 한다. 
                        툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문이다.

프로퍼티 : 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다. 
                프로퍼티는 set으로 시작하는 수정자 메소드(setter)와 
                get으로 시작하는 접근자 메소드(getter)를 이용해 수정 또는 조회 할 수 있다.


★ 리팩토링

  리팩토링은 기존의 코드를 외부의 동작방식에는 변화 없이 내부구조를 변경해서 재구성하는 작업 또는 기술을 말한다.
  리팩토링을 하면 코드 내부의 설계가 개선되어 코드를 이해하기가 더 편해지고, 변화에 효율적으로 대응할 수 있다. 
  결국 생산성은 올라가고, 코드의 품질은 높아지며, 유지보수하기 용이해지고, 견고하면서도 유연한 제품을 개발할 수 있다.
  리팩토링이 절실히 필요한 코드의 특징을 나쁜 냄새라고 부르기도 한다. 대표적으로, 중복된 코드는 매우 흔하게 발견되는 나쁜 냄새다.
  이런 코드는 적절한 리팩토링 방법을 적용해 나쁜 냄새를 제거해줘야 한다.
  
  리팩토링은 개발자가 직관적으로 수행할 수 있긴 하지만, 본격적으로 적용하자면 학습과 훈련이 필요하다.
  나쁜냄새에는 어떤 종류가 있고, 그에따른 적절한 리팩토링 방법은 무엇인지 알아보고, 충분한 연습을 해두면 도움이 된다. 
  리팩토링을 공부할 때는 리팩토링에 관해 체계적으로 잘 정리한 책인 『리팩토링』(마틴 파울러, 켄트 벡 공저)을 추천한다.


반응형

'IT > 언어' 카테고리의 다른 글

log4j 에서 ibatis 쿼리 로그 남기는 방법  (0) 2013.11.26
spring 강좌 (2)  (0) 2013.11.26
spring 강좌  (0) 2013.11.26
mysql + jdbc 기본 세팅(3)  (0) 2013.11.26
mysql + jdbc 기본 세팅(2)  (0) 2013.11.26
반응형

[chap1] 스프링 프레임워크 spring3 framework 환경설정 - springsource Tool 설치하기

 

[chap2] 스프링 프레임워크 spring3 framework 환경설정 - springsource Tool 환경 준비하기

 

[chap3] 스프링 프레임워크 spring3 framework 환경설정 - 스프링 프로젝트 생성하기

 

[chap4] 스프링 프레임워크 spring3 framework 환경설정 - Maven Dependencies 마븐 사용하기

 

[chap5] 스프링 프레임워크 spring3 framework 환경설정 -  

             톰캣으로 프로젝트 실행하기 프로젝트 서버에 띄우기

 

[chap6] 스프링 프레임워크 spring3 framework 환경설정 - 스프링 구동 원리

 

[chap7] 스프링 프레임워크 spring3 framework 환경설정 - dispacher http 요청에 의한 폴더관리

 

[chap8] 스프링 프레임워크 spring3 framework 환경설정 - 

             LocaleChangeInterceptor, ReloadableResourceBundleMessageSource

 

[chap9] 스프링 프레임워크 spring3 framework 환경설정 - UrlRewriteFilter

 

[chap10] 스프링 프레임워크 spring3 framework 환경설정 - Controller 사용법

 

[chap11] 스프링 프레임워크 spring3 framework 환경설정 - tiles 사용법

 

[chap12] 스프링 프레임워크 spring3 framework 환경설정 - tag 사용법

 

[chap13] 스프링 프레임워크 spring3 framework 환경설정 - iBatis 설정, JUnit 테스트

 

[chap14] 스프링 프레임워크 spring3 framework 환경설정 - iBatis 설정, 완료

 

스프링3 프레임워크 spring3 framework 환경설정 - 현재까지 프로그램 샘플파일

 

스프링기초

 

출처 : http://blog.naver.com/jazz1234k

반응형

'IT > 언어' 카테고리의 다른 글

spring 강좌 (2)  (0) 2013.11.26
DAO, JavaBean, 리펙토링  (0) 2013.11.26
mysql + jdbc 기본 세팅(3)  (0) 2013.11.26
mysql + jdbc 기본 세팅(2)  (0) 2013.11.26
mysql + jdbc 기본 세팅(1)  (0) 2013.11.26
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
public class View {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        UserDAO dao = new UserDAO();
        UserVO vo = new UserVO();
  
        vo.setId("test");
        vo.setName("testing");
        vo.setPassword("1234");
  
        dao.add(vo);
    }
}
 
cs


반응형

'IT > 언어' 카테고리의 다른 글

DAO, JavaBean, 리펙토링  (0) 2013.11.26
spring 강좌  (0) 2013.11.26
mysql + jdbc 기본 세팅(2)  (0) 2013.11.26
mysql + jdbc 기본 세팅(1)  (0) 2013.11.26
Java 의 기본 원리  (0) 2013.11.26
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class UserDAO {
    private DBConnector conn;
 
    public UserDAO(DBConnector dbConnector){
        this.conn = dbConnector;
    }
    public void add(UserVO vo) throws ClassNotFoundException, SQLException{
        Class.forName("com.mysql.jdbc.Driver");
        Connection c = DriverManager.getConnection("jdbc:mysql://localhost:포트번호/DB명","계정","비밀번호");
  
        PreparedStatement ps = c.prepareStatement("insert into users(id, name, password) values(?,?,?)");
        ps.setString(1, vo.getId());
        ps.setString(2, vo.getName());
        ps.setString(3, vo.getPassword());
  
        ps.executeUpdate();
  
        ps.close();
        c.close();
    }
}
 
cs


반응형

'IT > 언어' 카테고리의 다른 글

spring 강좌  (0) 2013.11.26
mysql + jdbc 기본 세팅(3)  (0) 2013.11.26
mysql + jdbc 기본 세팅(1)  (0) 2013.11.26
Java 의 기본 원리  (0) 2013.11.26
DAO는 1:1 이어야 하나 토론!  (0) 2013.11.26

+ Recent posts