java.lang.ClassNotFoundException: com.mariadb.jdbc.Driver

boingboing·2023년 9월 1일
0

sol1

  • pom.xml에 mariadb-jdbc 라이브러리 추가
    (2.7.3)

-> 안됨

sol2

  • WEB-INF/lib 안에 mariadb-java-client.jar를 넣어주고 빌드
    -> 안됨
    (왜 얘만 따로 넣어줘야 하지..? 그냥 pom.xml로 하면 되는거 아닌가)

sol3

mysql-connector

-> 필요하단 사람/없단 사람 둘 다 있는데 뭐가 맞지?

ANSWER

  • 의외로 클래스명을 mariadb가 아니라 mysql로 하니 됬음 ㄷㄷ
org.mysql.jdbc.Driver 로 해 보세요.

오라클 때문에 mysql 개발자가 나와서 만든 게 mariadb라서, mysql connector와 API가 같게 설계되어 있습니다

https://okky.kr/questions/400359

최종설정파일

context-datasource.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/jdbc  http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd">
	
	<!-- 기본값(내장 db 사용)
	<jdbc:embedded-database id="dataSource" type="HSQL">
		<jdbc:script location= "classpath:/db/sampledb.sql"/>
	</jdbc:embedded-database>-->
    
    <!-- hsql
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="net.sf.log4jdbc.DriverSpy"/>
        <property name="url" value="jdbc:log4jdbc:hsqldb:hsql://localhost/sampledb"/>
        <property name="username" value="sa"/>
    </bean>
    --> 
    
	<!-- 환경설정 기본정보를 globals.properties 에서 참조하도록 propertyConfigurer 설정  -->
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath:/egovframework/egovProps/globals.properties</value>
			</list>
		</property>
	</bean>
     
    <!-- Mysql (POM에서 commons-dbcp, mysql-connector-java 관련 라이브러리 설정)-->  
    <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/poip" />
        <property name="username" value="root"/>
        <property name="password" value="cho2013"/>
    </bean>-->
    
    <!-- MariaDB (POM에서 commons-dbcp, mysql-connector-java 관련 라이브러리 설정)-->  
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/poip" />
        <property name="username" value="probio"/>
        <property name="password" value="cho2013"/>
    </bean>
    <!-- 안되면 <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> -->
    
    
    <!-- oracle
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:example" />
        <property name="username" value="user"/>
        <property name="password" value="password"/>
    </bean>
    -->
    
</beans>

이렇게 하니 로컬에서는 mysql로, 원격에서는 MariaDB에 연동됬다 ㄷㄷ

0개의 댓글