Cài đặt thư viện MS SQL JDBC bằng Maven

Dẫn nhập về Maven

Maven là 1 công cụ dùng để quản lý các thư viện, dự án, dependencies cho lập trình viên java, tương tự nuget của .NET và NPM của Nodejs.

Tưởng tượng mỗi khi bạn thêm thư viện trong dự án Java, bạn phải lên mạng, tải file Jar thư viện đó về, import vào dự án... Một khi bạn muốn đổi version của thư viện đó, bạn phải lặp lại hành động này, quá là tốn thời gian và công sức. Maven thần thánh sẽ giúp bạn xử lý được vấn đề này thông qua vài bước config đơn giản.

Hôm nay mình sẽ hướng dẫn cách dùng maven cơ bản để cài thư viện Microsoft JDBC Driver cho việc tương tác với database SQL Server.

Cách sử dụng maven trong IntelliJ

Mình không thích Eclipse cho lắm, nhưng về cơ bản, các bước thêm thư viện trong Eclipse vẫn sẽ giống Intellij. Phạm vi trong bài này mình sẽ chỉ hướng dẫn bằng IntelliJ thôi. Mặc dù Intellij Ultimate có phí, nếu bạn là sinh viên, giáo viên và có mail .edu.vn thì có thể đăng ký dùng bản này miễn phí ở đây (Đăng ký intellij Ultimate free), hoặc thậm chí bạn xài bản Community của Intellij cũng rất xịn rồi :D.

Cài đặt Maven

Nếu dự án của bạn đã có tồn tại file pom.xml do bạn tạo project maven ngay từ đầu thì có thể bỏ qua bước thêm maven framework này. Còn nếu dự án đang code không phải là maven project thì bạn sẽ phải convert nó thành maven project trước như hình bên dưới: Add maven to intellij project Tiếp theo chọn Maven: Add maven to intellij project

Sau đó chúng ta sẽ có file pom.xml (Project Object Model) trong project, file này chứa các thông tin cần thiết định nghĩa một dự án như tên dự án, version, nhóm phát triển, các thư viện được sử dụng, các plugins… Nội dung file sau khi thêm framework:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>groupId</groupId>
    <artifactId>MavenSample</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

Chúng ta nên đổi lại thông tin như groupId (id dự án), artifactId (id của app) hay version cho phù hợp. ở đây mình đặt là com.kiendt.

Thêm thư viện từ Maven vào project.

Để thêm thư viện vào maven, chúng ta cần cặp thẻ dependencies để khai báo danh sách thư viện, và cặp thẻ dependency cho từng thư viện cụ thể.

Cụ thể ở đây chúng ta muốn thêm thư viện Microsoft JDBC Driver For SQL Server, đã nằm sẵn trên trang chủ của maven, việc chúng ta cần làm là lựa chọn version phù hợp với JDK của mình, ở đây mình dùng Java 8 nên mình sẽ dùng phiên bản 9.2.1.jre8 như hình:

jdbc sql server maven

Copy đoạn code dành cho Maven và đưa vào file pom.xml, nhớ thêm thẻ dependencies wrap lại thẻ dependency.

Lúc đó file pom.xml sẽ như thế này:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kiendt</groupId>
    <artifactId>MavenSample</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>9.2.1.jre8</version>
        </dependency>
    </dependencies>
</project>

Bước tiếp theo chúng ta cần reload lại project và tải về các thư viện này, mặc định nó sẽ lưu cache lại thư viện lên máy, nên lần tiếp theo nó sẽ lấy trong cache ra mà không download về từ server nếu như trùng version.

Right click vào pom.xml -> Maven -> Reload project.

reload maven project

Sử dụng driver Microsoft SQL JDBC

Xong. Bây giờ việc ta cần làm là dùng JDBC để tương tác với SQL Server. Tạo 1 class Java tên là DbContext:

public class DbContext {
    private static String dbPrefix = "jdbc:sqlserver://localhost";
    private static String user = "sa";
    private static String pass = "123456";
    private static String dbPort = "1433";
    private static String databaseName = "AccountDB";

    public Connection getConnection() {
        Connection conn = null;
        String dbURL = dbPrefix + ":" + dbPort + ";" + "databaseName=" + databaseName;
        try {
            DriverManager.registerDriver(new SQLServerDriver());
            conn = DriverManager.getConnection(dbURL, user, pass);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
}

Tất nhiên sẽ có lỗi khi bạn dán những dòng code phía trên vào, vì bạn chưa import thư viện. Để fix lỗi này, hãy trỏ chuột vào dòng lỗi, nhấn tổ hợp ALT + Enter, rồi click import class.

intellij auto import

Intellij thần thánh sẽ giúp chúng ta import class từ thư viện JDBC mà không cần phải nhớ tên thư viện để mà dùng Class.forName() củ chuối nữa. Và đây là kết quả cuối cùng, các bạn có thể dùng phương thức getConnection() để sử dụng ở bất kì đâu.

Code after importing sql server driver

Kết

Hi vọng sau bài viết này bạn sẽ có khả năng sử dụng maven để hoàn thành các bài tập và từ bỏ Eclipse sida để quay về với Intellij - con đường chánh đạo. Happy coding !

Published under Java on .

Kiên Đinh

Bần đạo là Kiên Đinh, một Developer. Ta viết blog này với mục đích chia sẻ những kinh nghiệm của bản thân đối với coding chi đạo.