6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeでJava開発 - H2データベースとJDBC接続するまで

Posted at

Java でIDEといえば Eclipse や IntelliJ な気がします。しかしそれほど本気ではないが楽しく気軽に Java コーディングしたいという時に、VSCodeで簡単にデータベース接続まで理解する。以上を表題の3つで実現する事を考えてみました。

image.png

以下2つが分かりやすかった。

予備知識

Visual Studio Code で Java を使うにはJDK11が必要になりました

Java のクラスパス(Classpath)を通す - vscode、JDBCドライバ

H2-database-jdbc-connection H2データベース-JDBC接続

簡単な練習


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class H2jdbcCreateDemo {
   //JDBC driver name and database URL
   static final String JDBC_DRIVER = "org.h2.Driver";
   static final String DB_URL = "jdbc:h2:~/test";

  // Database credentials
   static final String USER = "sa";
   static final String PASS = "";

   public static void main(String[] args) {
      Connection conn = null;
      Statement stmt = null;
      try {
        //STEP 1: Register JDBC driver
         Class.forName(JDBC_DRIVER);

        //STEP 2: Open a connection
         System.out.println("Connecting to database...");
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

        //STEP 3: Execute a query
         System.out.println("Creating table in given database...");
         stmt = conn.createStatement();
         String sql =  "CREATE TABLE IF NOT EXISTS SAMPLE_TABLE " +
            "(id INTEGER not NULL, " +
            " name VARCHAR(255), " +
            " memo VARCHAR(255), " +
            " age INTEGER, " +
            " PRIMARY KEY ( id ))";
         stmt.executeUpdate(sql);
         System.out.println("Created table in given database...");

        //STEP 4: Clean-up environment
         stmt.close();
         conn.close();
      } catch(SQLException se) {
        //Handle errors for JDBC
         se.printStackTrace();
      } catch(Exception e) {
        //Handle errors for Class.forName
         e.printStackTrace();
      } finally {
        //finally block used to close resources
         try{
            if(stmt!=null) stmt.close();
         } catch(SQLException se2) {
         }//nothing we can do
         try {
            if(conn!=null) conn.close();
         } catch(SQLException se){
            se.printStackTrace();
         }//end finally try
      }//end try
      System.out.println("Goodbye!");
   }
}

PS C:\Users\s5551\OneDrive\デスクトップ\workspace\java\simplecrud\src> java -classpath h2-1.4.200.jar H2jdbcCreateDemo.java
Connecting to database...
Creating table in given database...
Created table in given database...
Goodbye!
PS C:\Users\s5551\OneDrive\デスクトップ\workspace\java\simplecrud\src> 

余談

勝手に想像するにJavaは以下が不利です。

  • カッコイイGUIを簡単に作るのにはイマドキ適さない。
  • 故に初心者はわざわざ選ばない
  • Javaはなぜ難しい?と各所で言われます...。

しかしTIOBE index、

https://www.tiobe.com/tiobe-index/
image.png

Java は相変わらず3位に入るようです。
https://insights.stackoverflow.com/survey/2020#technology-programming-scripting-and-markup-languages-all-respondents においても3位にSQL、5位にJava。
image.png

ライブラリが充実し経験者が数多く知識がふんだんにあるという意味で、入門までの難関はそれほどないのでは。VSCode で週末お気軽Java開発も良いのでは。というか業務を離れて書くならこれで良いなと感じたので以上メモです。

参考になればさいわいです。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?