2016년 6월 18일 토요일

MyBatis

MyBatisを使って、entity,daoを自動で作成する。

1.mavenプロジェクト作成
2.pom.xml修正
下記追加
---------------------------------------------------------------
<!-- 追加1 start ※</dependencies>前に-->
    <!-- http://mvnrepository.com/artifact/org.mybatis/mybatis -->
      <dependency>
         <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.0</version>
  </dependency>
<!-- 追加1 end -->

<!-- 追加2 starat  ※ </project>前に-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.1</version>
            </plugin>
        </plugins>
    </build>
<!-- 追加2 end -->
-----------------------------------------------------------------------
3.Maven Install
      C:\Users\user\.m2\repositoryにinstallされたこと確認
  Maven依存関係
   mybatis-3.4.0.jar ー--> 追加されたこと確認
4. resources追加(src/main/resources/)
    ・mybatis-config.xml,
    ・generatorConfig.xml

------------- mybatis-config.xml ---------------------------------------
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!--     JDBCの設定です(1) -->
    <environments default="gissn">
        <environment id="gissn">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="url" value="jdbc:oracle:thin:@xxx.xxx.xx.x:1521:ORCL1" />
                <property name="username" value="gissn" />
                <property name="password" value="gissn" />
            </dataSource>
        </environment>
    </environments>

<!--     エンティティのパッケージを指定します -->
    <mappers>
        <package name="com.example.entity" />
    </mappers>

</configuration>
-----------------------------generatorConfig-------------------------------------
xxx.xxx.xx.x --> localhost

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
    <classPathEntry      location="C:\work\tools\oracle\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar" />
    <context id="context1">

<!--     JDBCの設定です (1) -->
        <jdbcConnection
            driverClass="oracle.jdbc.driver.OracleDriver"
            connectionURL="jdbc:oracle:thin:@xxx.xxx.xx.x:1521:ORCL1"
            userId="gissn"
            password="gissn"
        />

<!--     自動生成するエンティティの設定です (2) -->
        <javaModelGenerator
            targetPackage="com.example.entity"
            targetProject="src/main/java/"
        />
        <sqlMapGenerator
            targetPackage="com.example.entity"
            targetProject="src/main/java/"
        />
        <javaClientGenerator
            targetPackage="com.example.entity"
            targetProject="src/main/java/"
            type="XMLMAPPER"
        />

<!--     生成対象のテーブルです(3) -->
        <table schema="gissn" tableName="%" />
    </context>
</generatorConfiguration>

----------------------------------------------------
6.maven ビルドに新規追加し、実行
 ・基底ディレクトリーにmavenプロジェクトのワークスペースを設定
 ・ゴール設定:mybatis-generator:generate

7. 設定path通り、entity,daoが作成されていればOK
------------------------------------------------------------------
レコード検索テスト(myBatis使用しなくて)
・jdbc jarを追加すること
-------------------------------------------------------------------------
package com.MyBatisOracle2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class TestOracle {
    public static void main(String[] args) throws Exception{
        //initialize
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        //DB connection info
        String path = "jdbc:oracle:thin:@xxx.xxx.xx.x:1521:ORCL1";
        String id = "gissn";  //ID
        String pw = "gissn";  //password

        try{
            //JDBC Driver
            Class.forName("oracle.jdbc.driver.OracleDriver");

            //DB Connect
            conn = DriverManager.getConnection(path, id, pw);

            //SELECT
            ps = conn.prepareStatement("SELECT * FROM table1");
            rs = ps.executeQuery();

            //Column count
            int colCount = rs.getMetaData().getColumnCount();
            System.out.println("Get Column:" + colCount);

            //Output
            while (rs.next()) {
                System.out.println(rs.getInt("col1"));
                System.out.println(rs.getString("col2"));
            }

        } catch(Exception ex) {
            //Exception
            ex.printStackTrace();  //Error
        } finally {
            //Close
            if(rs != null) rs.close();
            if(ps != null) ps.close();
            if(conn != null) conn.close();
        }
    }
}
-------------------------------------------------------------------------
レコード検索テスト(myBatis使用)
・jdbc jarを追加すること
-------------------------------------------------------------------------

package com.MyBatisOracle2;
import java.io.IOException;
import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.example.entity.Table1;
import com.example.entity.Table1Example;
import com.example.entity.Table1Example.Criteria;
import com.example.entity.Table1Mapper;

 public class TestOracle2 {
     public static void main(String[] args) {

         // resources直下のmybatis-config.xmlを読み込みます(1)
         try (Reader r = Resources.getResourceAsReader("mybatis-config.xml");) {

             // 読み込んだ設定ファイルからSqlSessionFactoryを生成します(2)
             SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(r);

             // SQLセッションを取得します(3)
             try (SqlSession session = factory.openSession()) {

                 // Table1テーブルのMapperを取得します(4)
                 Table1Mapper map = session.getMapper(Table1Mapper.class);
                 // レコードを検索します(5)
                 Table1Example ex = new Table1Example();
                 Criteria cr = ex.createCriteria();
                 //cr.andCol1EqualTo(new Long(2));
                 cr.andCol1IsNotNull();

                 List<Table1> list = map.selectByExample(ex);

                 // 取得した内容を確認します
                 for (Table1 table1 : list) {
                  System.out.println("col1   = " + table1.getCol1());
                  System.out.println("col2  = " + table1.getCol2());
     }

             }
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
 }
-----------------------------------------------------------------------------------------


http://www.casleyconsulting.co.jp/blog-engineer/java/

http://www.casleyconsulting.co.jp/blog-engineer/java/mybatis3mybatis%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86/



MyBatisとは
MyBatisとはJavaのフレームワークのひとつで、O/RMapperという分類になります。
O/RMapperとは、Object/Relational Mapperの略で、ざっくり言うとJava(Object)と
関係データベース(Relational)を紐付ける機能(Mapper)です。
表形式であるSQLの実行結果をどのようにJavaのクラスに当てはめるか、
またJavaから受け渡されたパラメータをどのようにSQLに反映するかといった設定をしておくことが出来ます。
これによりJavaのプログラムからSQLを発行して、実施結果を取得する際、
Java側はSQL部分を意識せずに処理を記述することができ、
逆にSQL側はJavaを意識せずにSQL文を記述できるのが利点です。
MyBatisはそのほかにSpringFrameworkなどアノテーションを利用したDI(依存性の注入)がサポートされていたり、
XMLに記載したSQLにパラメータや分岐、繰り返しなどの制御を加えることが可能になっています。
詳しくはこちら(公式:http://www.mybatis.org/mybatis-3/ja/)


事前準備
Java SE 8 (JDK1.8)
Eclipse4.4 (Maven※1 を使うのでご使用のEclipseにMavenプラグインが無ければ別途インストールしてください。面倒なかたはAllInOneEclipseでも大丈夫です。 Pleiades公式:https://mergedoc.osdn.jp/)
MySQL Community Server5.7 (公式:https://www-jp.mysql.com/)
Sakilaデータベース※2(MySQLがインストールされているのにいない場合はこちらからダウンロードできます:http://dev.mysql.com/doc/index-other.html)


http://studyforus.tistory.com/263

mysql

mysql> SOURCE C:/temp/sakila-db/sakila-schema.sql;

mysql> USE sakila;
Database changed

mysql> SHOW TABLES;
+----------------------------+
| Tables_in_sakila           |
+----------------------------+
| actor                      |
| address                    |
| category                   |
| city                       |
| country                    |
| customer                   |
| customer_list              |
| film                       |
| film_actor                 |
| film_category              |
| film_list                  |
| film_text                  |
| inventory                  |
| language                   |
| nicer_but_slower_film_list |
| payment                    |
| rental                     |
| sales_by_film_category     |
| sales_by_store             |
| staff                      |
| staff_list                 |
| store                      |
+----------------------------+
22 rows in set (0.00 sec)

mysql> SELECT COUNT(*) FROM film;
+----------+
| COUNT(*) |
+----------+
| 1000     |
+----------+
1 row in set (0.02 sec)

mysql> SELECT COUNT(*) FROM film_text;
+----------+
| COUNT(*) |
+----------+
| 1000     |
+----------+
1 row in set (0.00 sec)

C:\Users\user\.m2\repository\mysql\mysql-connector-java\5.1.33\


eclipse DBツリービュー設定

データベース定義名 sakila
path 
C:\Users\user\.m2\repository\mysql\mysql-connector-java\5.1.33\mysql-connector-java-5.1.33.jar

JDBC DRIVER:   com.mysql.jdbc.Driver
接続文字列:        jdbc:mysql://localhost:3306/sakila
接続 user            gissn
接続 password     *****
接続スキーマ        sakila


DB2の場合
<classPathEntry   location="C:\work\tools\IBM\SQLLIB\java\db2jcc.jar" />


JDBC DRIVER:   com.ibm.db2.jcc.DB2Driver
JDBC  TYPE :    typye4
接続文字列:        jdbc:db2://localhost:50000/TEST1
接続 user            user
接続 password     *****

接続スキーマ        SHEMA1






작성자: Ssn Gi 시간: 오후 11:01 댓글 없음: 
이메일로 전송
BlogThis!
Twitter에서 공유
Facebook에서 공유
Pinterest에 공유

2016년 11월 5일 토요일
MySql




// database作成
create database myspring;

// database 参照
select database();

// database使用
use myspring;

// テーブル参照;
show tables;

//fileから sql実行
source c:\work\dev\mysql\myspring\user.sql ;
---------------------------------------------------------------
CREATE TABLE myspring.user
(
    user_id                    VARCHAR(12) NOT NULL,
    user_password              VARCHAR(12) NOT NULL,
    first_name                  VARCHAR(45) ,
    last_name                   VARCHAR(45) ,
    last_update                 TIMESTAMP(0),
    CONSTRAINT PRIMARY KEY (user_id)
);
----------------------------------------------------------------

eclipse
 実行構成
Mavenビルド
基底ディレクトリ →   ${workspace_loc:/MySpring}
ゴール   → mybatis-generator:generate
작성자: Ssn Gi 시간: 오전 9:19 댓글 없음: 
이메일로 전송
BlogThis!
Twitter에서 공유
Facebook에서 공유
Pinterest에 공유

MySql




// database作成
create database myspring;

// database 参照
select database();

// database使用
use myspring;

// テーブル参照;
show tables;

//fileから sql実行
source c:\work\dev\mysql\myspring\user.sql ;
---------------------------------------------------------------
CREATE TABLE myspring.user
(
    user_id                    VARCHAR(12) NOT NULL,
    user_password              VARCHAR(12) NOT NULL,
    first_name                  VARCHAR(45) ,
    last_name                   VARCHAR(45) ,
    last_update                 TIMESTAMP(0),
    CONSTRAINT PRIMARY KEY (user_id)
);
----------------------------------------------------------------

eclipse
 実行構成
Mavenビルド
基底ディレクトリ →   ${workspace_loc:/MySpring}
ゴール   → mybatis-generator:generate

댓글 없음:

댓글 쓰기