본문 바로가기
JAVA

간단한 DB접속 테스트 (in java, jsp)

by helloissue 2021. 9. 5.

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테스트를 할 수 있는 코드를 정리하며 포스팅을 마칩니다. 시간이 나는 대로 오라클 버전도 올리겠습니다.

 

 

댓글