【Java】DBアクセスライブラリ [3] ~ Persist ~

■ ダウンロード先

 * 「persist-1.0.jar」をダウンロードしておくこと
https://code.google.com/archive/p/persist/downloads

■ サンプル

 * MySQL を使用する
 * 以下からMySQL用のJDBCドライバ「mysql-connector-java-X.X.XX-bin.jar」をダウンロードし、
   Eclipseにインポートしておく事
http://dev.mysql.com/downloads/connector/j/

サンプルデータ:MySQL

CREATE TABLE person
(
  id char(8) NOT NULL PRIMARY KEY,
  name varchar(100),
  sex char(1)
);

INSERT INTO person(
            id, name, sex)
    VALUES ('X0000000', 'admin', 'm'),
           ('X0000001', 'Mike', 'm'),
           ('X0000002', 'Tom', 'm');
           
select * from person;

Javaソース(Main.java

package com.sample.persist;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;

import net.sf.persist.Persist;

public class Main {

  public static void main(String[] args) throws ClassNotFoundException, SQLException {
    Class.forName("org.gjt.mm.mysql.Driver");
    String url = 
      "jdbc:mysql://localhost/sampledb?useSSL=false&useUnicode=true&characterEncoding=UTF-8";
    Connection con = DriverManager.getConnection(url, "root", "password");

    Person person = new Person();
    person.setId("X0000003");
    person.setName("Smith");
    person.setSex("m");

    Persist persist = new Persist(con);
    // 挿入
    persist.insert(person);
    // 検索
    List<Person> people = persist.readList(Person.class,
           "select * from Person where id= ? ", "X0000003");
    for (Person personFromDb : people) {
      System.out.println(personFromDb.getId() + ":" + personFromDb.getName());
    }

    person = people.get(0);
    // 更新
    person.setName("Kevin");
    persist.update(person);

    // 検索
    people = persist.readList(Person.class, "select * from Person where id= ? ", "X0000003");
    for (Person personFromDb : people) {
      System.out.println(personFromDb.getId() + ":" + personFromDb.getName());
    }

    // 削除
    persist.delete(person);

    con.close();
  }

}

関連記事

Java】DBアクセスライブラリ [0] ~ 目次 ~

https://blogs.yahoo.co.jp/dk521123/37773005.html