Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'

위와 같은 에러를 내뱉는다.

이유는 오라클과 메이븐의 License 문제 때문에 메이븐의 중앙 저장소에서 받을 수 없어서 발생합니다.

해결방법은 pom.xml의 <repositories> 태그 안에 ojdbc와 관련된 repository를 직접 추가합니다.


<repositories>

...


<repository>

<id>mesir-repo</id>

<url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>

</repository>


...

</repositories>





<dependencies>

...


<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc14</artifactId>

<version>10.2.0.4.0</version>

</dependency>


...

</dependencies>



1. xml 을 이용한 등록 방법 - setter 이용


1) applicationContext.xml

<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
    <property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
 

<bean id="loginDAO" class="com.mungchung.sample.login.LoginDAOImpl">
    <property name="sqlMapClientTemplate" ref="sqlMapClientTemplate"/>
</bean>

 2) Bean

public class LoginDAOImpl implements LoginDAO {

    private SqlMapClientTemplate sqlMapClientTemplate;
 
    public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {

        this.sqlMapClientTemplate = sqlMapClientTemplate;

    }
}

 

 

2. xml 을 이용한 등록 방법 - 생성자 이용


1) applicationContext.xml

<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
    <property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
 

<bean id="loginDAO" class="com.mungchung.sample.login.LoginDAOImpl">
    <constructor-arg name="sqlMapClientTemplate" ref="sqlMapClientTemplate"/>
</bean>

2) Bean

public class LoginDAOImpl implements LoginDAO {

    private SqlMapClientTemplate sqlMapClientTemplate;
 
    public LoginDAOImpl(SqlMapClientTemplate sqlMapClientTemplate) {

        this.sqlMapClientTemplate = sqlMapClientTemplate;

    }
}

 

 

3. 어노테이션 이용 - 직접 Bean 등록


1) servlet-context.xml

<context:annotation-config/>
<bean id="loginDAO" class="com.mungchung.sample.login.LoginDAOImpl"/>


2) Bean

public class LoginDAOImpl implements LoginDAO {

    @Autowired
    private SqlMapClientTemplate sqlMapClientTemplate;

}


 

 

4. 어노테이션 이용 - Component-Scan 이용


1) servlet-context.xml

<context:component-scan base-package="com.mungchung.sample.login"/>


2) Bean

@Repository
public class LoginDAOImpl implements LoginDAO {

    @Autowired
    private SqlMapClientTemplate sqlMapClientTemplate;

}


출처 : http://www.mungchung.com/xe/spring/21198

String keyword = request.getParameter("keyword");

if(keyword != null){

keyword = new String(keyword.getBytes("8859_1"),"utf-8");

}else{

keyword= "";

}

assertThat(name.length(), is(6))


assertThat 에서 지원하는 is() 메소드에서 int형을 parameter로 넣을 시, 에러나는 상황인데,

이부분은 


import static org.junit.Assert.*;

import static org.hamcrest.CoreMatchers.*;


위 패키지를 import 해주어야 한다.


Maven Spring dependency는 아래와 같이 추가하여야 한다.


JUnit - junit

<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency>



Hamcrest Core - hamcrest-core

<dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.1</version> </dependency>


<dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <version>1.1</version> </dependency>


maven 참고 url 

http://mavenhub.com/c/org/hamcrest/corematchers/dependency

BufferedImage bimg = ImageIO.read(new File(filename));

int width          = bimg.getWidth();

int height         = bimg.getHeight();

'Server Enterprise > Java' 카테고리의 다른 글

[decompile] java decompiler  (0) 2014.12.30
[Encode] 한글 인코딩  (0) 2014.08.15
[Java] System.getProperty() 에 관하여  (0) 2013.06.14
Java 멤버와 변수에 대한 고찰  (0) 2013.01.08
POJO 개념  (0) 2013.01.05

게시물의 총 수

ResultSet 사용시

rs.last();

int totalRecode = rs.getRow();

 

레코드 사이즈

recordSize = 10;

한페이지당 보여줄 게시물의 갯수

 

Vector 사용시

int totalRecode = vector.size();

 

현제 보고 있는 페이지

currentPage = 1;

if(request.getParameter("currentPage") != null)

{

     currentPage = request.getParameter("currentPage");

}

 

현재 보고 있는 페이지 번호.

 

게시물에 따른 총 페이지 수

int totalPage = (int)Math.ceil((float)totalRecode/(float)recordSize);

 

게시물 번호

int num = totalRecode - ((currentPage-1) * recordSize);

 

블럭 사이즈

blockSize = 5;

 

네비게이션에 보여질 페이지 갯수

ex ) ◁ [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] ▷

 

네비게이션

시작 페이지 : int firstPage = currentPage - ((currentPage-1)%blockSize);
마지막 페이지 : int lastPage = firstPage + (blockSize-1);

 

네비게이션에 나오는 첫번째 페이지와 마지막 페이지

1, 2, 3, 4, 5 일때 1과 5

6, 7, 8, 9, 10 일때 6과 10

 

커서 포지션

int curPos = recordSize*(currentPage-1);

: 네비게이션의 각 페이지 별로 rs 객체 또는 백터의 커서 처음 시작 위치


servlet-context.xml


<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">



<context:annotation-config /> // 애노테이션 방식 사용

<mvc:annotation-driven /> // MVC 애노테이션 방식 사용


// 기본 애노테이션들을 빈으로 등록해준다 src/leadweb/* 모든 하위 디렉토리

<context:component-scan base-package="leadweb.*" />


// 파일 형식의 업로드 기능을 사용하고자 할 때 등록하는 bean

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>


// 뷰 리졸버 - 컨트롤러와 jsp의 맵핑

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/jsp/"/>

<property name="suffix" value=".jsp"/>

</bean>


<mvc:interceptors>

<mvc:interceptor>

   <mvc:mapping path="/admin/**" /> // uri 가 context root/admin/** 모든 URL이 들어왔을때

// 인터셉터 등록

<bean class="leadweb.admin.interceptor.LoginCheckInterceptor" />

</mvc:interceptor>

</mvc:interceptors>


Spring Context Root 변경

아주 간단한 방법으로는

webapps/neli 를 url 상으로 "/" context root로 보이고 싶다면


$ cd ../tomcat7/conf/

$ sudo vim server.xml


열어 보면 기본 Host 설정이 

<Host name="localhost" appBase="webapps" ... >

이렇게 잡혀 있을텐데 appBase 부분을


<Host name="localhost" appBase="webapps/neli" ...>

로 변경 해주면 된다

Maven 환경 셋팅

$ cd /home/ec2-user/

이동 (홈디렉토리로 이동)


$ wget http://mirrors.gigenet.com/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz

해당 디렉토리에 maven을 download 받는다.


$ sudo tar -zxvf apache-maven-3.1.1-bin.tar.gz -C /opt/

/opt/ 폴더 내에 maven 압축 파일을 푼다


ln -s /opt/apache-maven-3.0.3 /opt/maven

Symbolic Link를 걸어준다 (생략 가능)


$ sudo vi /etc/profile

환경변수를 등록하기 위해 /etc/profile을 편집기로 연다


 

M2_HOME=/opt/maven
PATH=$PATH:$M2_HOME/bin
export M2_HOME; export PATH;

변경된 /etc/profile을 수정한다


$ source /etc/profile 

변경된 시스템 적용


$ mvn -version 명령어를 입력하여 환경변수 설정이 되었는지 확인한다.


샘플(1)

아래와 같이 2개의 데이터를 저장해보도록 하겠습니다.


Map map;
List list = new ArrayList();

// 첫번째
map = new HashMap();
map.put("국어", 90);
map.put("수학", 80);
list.add(map);

// 두번째
map = new HashMap();
map.put("국어", 55);
map.put("수학", 65);
list.add(map);


System.out.println(list);

[{수학=80, 국어=90}, {수학=65, 국어=55}]



샘플(2)


이제 집어넣은 데이터를 가져올 차례입니다.

 

List 에 저장된 HashMap 데이터를 사용하기 위에서는 HashMap을 만든 다음, 캐스팅 연산으로 가져오도록 합니다.


HashMap getMap = new HashMap();

getMap = (HashMap)list.get(0);
System.out.println("1번째 국어 점수 : " + getMap.get("국어"));

getMap = (HashMap)list.get(1);
System.out.println("2번째 국어 점수 : " + getMap.get("국어"));



1번째 국어 점수 : 90

2번째 국어 점수 : 55

+ Recent posts