JDBCでMySQLへアクセス

2020年3月18日

jdbc1.jpg
jdbc2.jpg
jdbc3.jpg

http://dev.mysql.com/downloads/connector/j/からJDBCをダウンロードする。
「Plataform Independent」を選択し、ZIP Archiveをダウンロードする。

ダウンロードしたZIPファイルを解凍し中にあるmysql-connector-java-5.1.28-bin.jarにクラスパスを通す。
eclipseでプログラムを作成する場合、プロジェクト内に適当なフォルダを作成しビルドパスを通す。

jdbc4.jpg

以下のようなUsersテーブルへからUser一覧を取得するサンプルプログラムを作成。

テーブルゲートウェイ。

package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.User;

public class UserGateWay {
    // DBのIPアドレス/DB名
    private final String url = "jdbc:mysql://192.168.xx.xx/test";

    // DBユーザ
    private final String dbUser = "MysqlUser1";

    // DBユーザのパスワード
    private final String password = "xxxx";

    // Usersテーブル内の全Userリストを返す。
    public List findAll() {
        final String sql = "select * from Users order by user_id";
        Connection con = null;
        List users = new ArrayList();

        try {
            con = DriverManager.getConnection(url, dbUser, password);
            PreparedStatement stmt = con.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                User user = new User(rs.getInt(1), rs.getString(2),
                rs.getString(3));
                users.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (con != null) {
                    con.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    return users;
    }
}


Userエンティティクラス。

package model;
public class User {
    private int userId;
    private String name;
    private String password;

    public User(int userId, String name, String password) {
        this.userId = userId;
        this.name = name;
        this.password = password;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    } 
}

クライアントクラス。

package main;
import model.User;
import dao.UserGateWay;

public class Main {
    public static void main(String[] args) {
        UserGateWay userGateWay = new UserGateWay();
            for (User user : userGateWay.findAll()) {
                System.out.println(user.getUserId() + ":" + user.getName() + ":" + user.getPassword());
            }
       }
   }
}

実行結果。

jdbc5.jpg

Java,MySQL

Posted by fanfanta