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 |
댓글