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
댓글 없음:
댓글 쓰기