■ DB접속 정보가 저장된 XML 설정 파일(config-properties.xml)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>database configuration</comment> <!-- db정보 --> <entry key="jdbc.driverClass.master">com.mysql.jdbc.Driver</entry> <entry key="jdbc.url.master">jdbc:mysql://127.0.0.1:3306/nextdb</entry> <entry key="jdbc.username.master">nextman</entry> <entry key="jdbc.password.master">pass</entry> </properties>
■ DB접속 정보가 저장된 XML 설정 파일읽어서 저장할 Java Value Object(DbInfoVO.java)
package pilot.simpletomcat; public class DbInfoVO { private String url; private String driverClass; private String user; private String password; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getDriverClass() { return driverClass; } public void setDriverClass(String driverClass) { this.driverClass = driverClass; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
■ DB접속 정보가 저장된 XML 설정 파일을 읽어서 저장하는 Junit 테스트(DbInfoVO.java)
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.junit.Before; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import pilot.simpletomcat.DbInfoVO; public class XmlReadTest { private static final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); private DocumentBuilder builder; private Document document; @Before public void setUp() throws Exception { StringBuilder sb = new StringBuilder(); sb.append(System.getProperty("user.dir")); sb.append(File.separator + "config"+File.separator +"config-properties.xml"); System.out.println( ">>> path : " + sb.toString() ); factory.setValidating(false); try { factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); builder = factory.newDocumentBuilder(); document = builder.parse(new File(sb.toString())); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (SAXException se) { se.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } document.getDocumentElement().normalize(); } @Test public void testXmlRead() { DbInfoVO dbInfo = new DbInfoVO(); Element element = null; Node node = null; NodeList nodeList = document.getElementsByTagName("entry"); for( int i=0; i<nodeList.getLength(); i++ ) { node = nodeList.item(i); element = (Element)node; System.out.println( "" + element.getAttribute("key") +"\t"+ element.getTextContent() ); if( element.getAttribute("key").equals("jdbc.driverClass.master") ) dbInfo.setDriverClass( element.getTextContent() ); if( element.getAttribute("key").equals("jdbc.url.master") ) dbInfo.setUrl( element.getTextContent() ); if( element.getAttribute("key").equals("jdbc.username.master") ) dbInfo.setUser( element.getTextContent() ); if( element.getAttribute("key").equals("jdbc.password.master") ) dbInfo.setPassword( element.getTextContent() ); } assertEquals("com.mysql.jdbc.Driver", dbInfo.getDriverClass()); assertEquals("jdbc:mysql://127.0.0.1:3306/nextdb", dbInfo.getUrl()); assertEquals("nextman", dbInfo.getUser()); assertEquals("pass", dbInfo.getPassword()); } }
■ eclipse상에서 maven 타입으로 생성된 파일 구조
- Java에서 properties파일 읽기 2019년 4월 3일
- weblogic.jdbc.wrapper.clob_oracle_sql_clob cannot be cast to oracle.sql.clob 2019년 3월 21일
- Java keytool 사용법 2019년 3월 14일
- Tomcat 시작시 ServletContextListener를 통한 mySQL 접속 2018년 5월 8일
- spring mybatis mysql 연결 예제 2018년 5월 4일
- apache commons StringUtils 예제 2018년 5월 3일
- 자바 래퍼 클래스(Java Wrapper Class)? 2018년 2월 13일
- java string 변수 switch, junit test 2018년 2월 12일
- 단정문 assertEquals와 assertSame의 차이점 2017년 4월 12일
- java continue, break 키워드 2017년 3월 25일
- spring service junit test 2016년 5월 25일
- mybatis mapper junit test 2016년 5월 2일
- JUnit Controller Test java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig 2016년 3월 22일
- java eclipse static import 2016년 3월 15일
- junit 단정문 – Assertions 2016년 3월 14일
- junit & spring-test maven dependency 2016년 3월 14일
- Java String, 자바 문자열 2016년 3월 3일