JAVA버전으로 간단하게 DB 접속 테스트를 위한 JAVA파일, 또는 JSP파일이 필요할 때가 있다. 방화벽의 적용이나, 계정의 접근 가능 여부를 테스트하기 위해서 그럴 때 유용하게 쓰이는 자바 파일과 JSP파일을 정리하여 작성해둔다.
1. JAVA로 DB 접속하기. ( MSSQL 접속 )
커넥터로는 는 8.0.16을 사용하였으며, JDK는 1.8을 사용하였습니다. 관련 메이븐 정보는 아래와 같습니다.
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.16</version>
</dependency>사용된 자바 파일은 다음과 같습니다. 아래의 WebDb자바 파일을 생성하여 컴파일하시어 호출하시면 접속 가능 여부를 쉽게 테스트할 수 있습니다. 그대로 복사하시어 package부분만 알맞게 수정하시면 쉽게 적용이 가능합니다.
package kr.co.backUtil;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Vector;
public class WebDb {
	private String sId           = "sayit";
	private String sPw           = "sayitpass";
        private String sHostAddress  = "sayit.tistory.com";//호스트명
	private String sDbName       = "sayit";//db명
    
	private String sClassForName = "com.mysql.cj.jdbc.Driver";
	private String sCharset      = "UTF-8";
	private String sUrlFormat    = "jdbc:mysql://%s:%d/%s?characterEncoding=%s&serverTimezone=UTC";
	private int iDbPort          = 3306;
    
	public static void main(String[] args) {
		new WebDb().getConnectionTest();//간단하게 DB접속테스트
	}
	
	public void getConnectionTest() {
		
		String sTempUrl 		= null;
		Connection cDbCon 		= null;
		
		try {
			
			Class.forName( sClassForName ).newInstance();
			sTempUrl    = String.format( sUrlFormat, sHostAddress, iDbPort, sDbName, sCharset);
			cDbCon      = DriverManager.getConnection(sTempUrl, sId, sPw );
			System.out.println("@ conn.open();");
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try { if( cDbCon != null ){
				
			cDbCon.close(); System.out.println("@ conn.close();");
				
			}}catch( Exception eFinal ) { eFinal.printStackTrace(); }
			cDbCon   = null; sTempUrl = null;
		}
	}
}
//java.sql.SQLException: null,  message from server: "Host 'sayit.tistory.com' is not allowed to connect to this MariaDB server"
//	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
//	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
//	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
//	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
//	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
//	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
//	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
//	at java.sql.DriverManager.getConnection(Unknown Source)
//	at java.sql.DriverManager.getConnection(Unknown Source)
//	at kr.backUtil.WebDb.getConnectionTest(WebDb.java:33)
//	at kr.backUtil.WebDb.main(WebDb.java:13)2. JSP로 간단하게 접속 테스트( MSSQL 접속 )
jsp도 내용은 동일하다 클래스 파일을 선언할 수 있는 '!' 코드를 써서 자바 소스 그대로 넣어서 테스트가 가능하다.
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSetMetaData"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.util.Vector"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%!
public class WebJSPDB {
	
	private String sId           = "sayit";
	private String sPw           = "sayitpass";
        private String sHostAddress  = "sayit.tistory.com";
	private String sDbName       = "sayit";
    
	private String sClassForName = "com.mysql.cj.jdbc.Driver";
	private String sCharset      = "UTF-8";
	private String sUrlFormat    = "jdbc:mysql://%s:%d/%s?characterEncoding=%s&serverTimezone=UTC";
	private int iDbPort          = 3306;
	
	public boolean getConnectionTest() {
		
		String sTempUrl 		= null;
		Connection cDbCon 		= null;
		
		try {
			
			Class.forName( sClassForName ).newInstance();
			sTempUrl    = String.format( sUrlFormat, sHostAddress, iDbPort, sDbName, sCharset);
			cDbCon      = DriverManager.getConnection(sTempUrl, sId, sPw );
			System.out.println("@ conn.open();"); 	return true;
			
		} catch (Exception e) {
			e.printStackTrace();					return false;
		} finally {
			try { if( cDbCon != null ){
				
			cDbCon.close(); System.out.println("@ conn.close();");
				
			}}catch( Exception eFinal ) { eFinal.printStackTrace(); }
			cDbCon   = null; sTempUrl = null;
		}
	}
	
}
%>
<%=new WebJSPDB().getConnectionTest()%>
이상으로 간단하게 DB테스트를 할 수 있는 코드를 정리하며 포스팅을 마칩니다. 시간이 나는 대로 오라클 버전도 올리겠습니다.
'JAVA' 카테고리의 다른 글
| 자바 랜덤 숫자 맞추기 게임, 업 다운 숫자 퀴즈 만들기 in 자바기초 (7) | 2021.09.10 | 
|---|---|
| 자바의 교과서라는 자바 디컴파일러 JD-GUI를 사용 해 보자 (7) | 2021.09.07 | 
| needs unchecked conversion to conform 워닝 무시하기 (1) | 2021.09.05 | 
| 개발환경 자바 이클립스 ZIP 다운로드 및 설치 방법 (7) | 2021.09.04 | 
| 이클립스 한글 깨짐 복구, UTF-8 설정으로 일괄변경 방법 (4) | 2021.09.04 | 
 
										
									 
										
									 
										
									
댓글