MariaDB의 JDBC 연결

MySQL에서 파생된 MariaDB를 프로젝트에 사용하고 있는데요. 이 MariaDB를 Java에서 연결해 필요한 데이터를 조회하기 위해 JDBC를 사용하는 코드를 정리해 둡니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class MainEntry {
    public static void main(String[] args) {
        Connection con = null;
        PreparedStatement pstmt = null;   
        ResultSet rs = null;

        try {
            Class.forName("org.mariadb.jdbc.Driver");
			
            con = DriverManager.getConnection(
                "jdbc:mariadb://100.100.100.7:3306/dbname",
                "userId",
                "password");
						
            pstmt = con.prepareStatement("select * from his_bus_voltage");
			
            rs = pstmt.executeQuery();
			
            while(rs.next()) {
                //.
            }
        } catch(Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if(rs != null) {
                    rs.close(); // 선택 사항
                }
				
                if(pstmt != null) {
                    pstmt.close(); // 선택사항이지만 호출 추천
                }
			
                if(con != null) {
                    con.close(); // 필수 사항
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

MariaDB의 JDBC 라이브러리는 공식 사이트인 https://downloads.mariadb.org/connector-java/에서 다운로드받았으며, 이 글을 작성할 때는 mariadb-java-client-2.0.3.jar를 사용하였습니다.

[golang] 배열을 포인터로 전달하는 함수

Go는 배열을 함수로 전달할때 배열의 전체를 복사한 값 형식으로 함수에 전달합니다. 결국 함수 안에서 해당 배열의 요소를 변경하여도 파라메터로 전달되어진 그 원래의 배열에 변경이 생기지 않습니다. 그러나 이 배열을 포인터로 전달하면 함수 내부에서 변경되는 대상이 원본이므로 변경 내용을 유지됩니다. 아래는 배열을 포인터 타입으로 함수에 전달하는 예제입니다.

package main

import "fmt"

func f(a *[3]int) {
	a[1] = 100
}

func main() {
	a := [3]int{1, 2, 3}

	f(&a)

	fmt.Println(a[1])
}