[Android/API]MS-SQL DB를 안드로이드 스튜디오와 연결하기

2021. 5. 8. 02:23Android/튜토리얼 및 가이드

728x90
반응형

MSSQL DB 구축이 되었다는 가정 하에 MSSQL과 안드로이드 스튜디오를 연결해보겠다.

 

1. DB 연결 데이터를 담을 변수 선언

var ip: String? = "211.187.2.242"	// 서버 ip 주소
val port = "port번호"	// port번호
val Classes = "net.sourceforge.jtds.jdbc.Driver"
val database = "DB명"	//접속할 데이터베이스 이름
val username = "username"	//서버접속용 ID
val password = "password"	//서버접속용 PW
val url = "jdbc:jtds:sqlserver://$ip:$port/$database"   // db 접속 url
var connection: Connection? = null	// DB와 연결하는 객체

* Connection은 데이터베이스와 연결하는 객체

* 연결문자열(Connection String) - “jdbc:Driver 종류://IP:포트번호/DB명”

* port 번호는 SQL 구성 관리자에서 TCP/IP 구성 중 모든 IP포트를 설정하는 구간에서 동적 포트를 적으면 된다.

참고 : m.blog.naver.com/PostView.nhn?blogId=dktmrorl&logNo=221246505991&proxyReferer=https:%2F%2Fwww.google.com%2F

 

[MS-SQL] SQL Server TCP/IP 설정

● SQL Server TCP/IP 설정 1. 키보드에서 [윈도우Key + R] 키를 눌러서 실행 창을 활성화시킵...

blog.naver.com

* username & password는 db 연결 시 로그인(L)과 암호(P) 입력

 

 

2. DB 연결 함수 생성 후 연결을 원하는 부분에 함수 호출

fun DBConnect() {
  val policy = StrictMode.ThreadPolicy.Builder().permitAll().build()
  StrictMode.setThreadPolicy(policy)

  try {
    //연결시도
    Class.forName(Classes) //jdbc드라이버 클래스 적용
    GlobalVar.connection = DriverManager.getConnection(url, username, password)  // Connection 객체 생성 - db 연결
    Toast.makeText(this, "연결성공", Toast.LENGTH_SHORT).show()
    Log.d(.TAG, "try~catch : 연결성공")
  } catch (e: ClassNotFoundException) {
    e.printStackTrace()
    Toast.makeText(this, "Class를 찾을 수 없음", Toast.LENGTH_SHORT).show()
    Log.d(TAG, "try~catch : Class를 찾을 수 없음")
  } catch (e: SQLException) {
    Toast.makeText(this, "연결실패", Toast.LENGTH_SHORT).show()
    Log.d(TAG, "try~catch : 연결실패")
  }
}

* DriverManager.getConnection(연결문자열, DB_ID, DB_PW)으로 Connection 객체를 생성

 

3. 기존에는 위 소스만 사용하여 DB 연결이 성공적으로 되었지만, 새로 프로젝트를 만들고 적용해보니 ClassNotFoundException 에러가 떨어짐

오류 메세지 : java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver

=> jtds-1.2.5.jar 라이브러리를 추가해야함

3-1) app\libs 폴더에 jtds-1.2.5.jar 파일 추가

jtds-1.2.7.jar
0.29MB

3-2) build.grale dependcies에 jtds-1.2.5.jar 라이브러리 추가 : implementation files('libs\\jtds-1.2.7.jar')

 

4. 이번엔 연결 실패 오류(SQLException)

오류 메세지 : java.sql.SQLException: Network error IOException: socket failed: EACCES (Permission denied)

=> 위 에러는 안드로이드 스튜디오가 애뮬레이터를 실행했을 때, 인터넷에 연결을 할 수 없기 때문에 뜨는 에러이다.

따라서 인터넷에 연결되도록 설정해주어야 한다.

4-1) AndroidManifest.xml에 코드 추가 : <uses-permission android:name="android.permission.INTERNET" />

728x90
반응형