untitled

Similar documents

Microsoft PowerPoint - 4-MySQL50_JDBC_failover.ppt

2 Java 35 Java Java HTML/CSS/JavaScript Java Java JSP MySQL Java 9:00 17:30 12:00 13: 項目 日数 時間 習得目標スキル Java 2 15 Web Java Java J

1,.,,,., RDBM, SQL. OSS,, SQL,,.

1 ex01.sql ex01.sql ; user_id from (select user_id ;) user_id * select select (3+4)*7, SIN(PI()/2) ; (1) select < > from < > ; :, * user_id user_name

Microsoft PowerPoint - JavaFesta.ppt

FileMaker ODBC and JDBC Guide

FileMaker 16 ODBC と JDBC ガイド

_02-4.ppt

CAC

FileMaker 15 ODBC と JDBC ガイド

// JDBC // CallableStatement cs = null; try { cs = conn.preparecall("{call DUMMY_PROC(?,?)}"); cs.setstring(1, "This is a test"); cs.registeroutparame

MySQL5.0データベース ログファイルおよびステータスの収集


JB_weblogic_guide.indd

B2-Servlet-0112.PDF

Windowsユーザーの為のOracle Database セキュリティ入門

FileMaker ODBC and JDBC Guide

JEE 上の Adobe Experience Manager forms のインストールおよびデプロイ(WebLogic 版)

PowerPoint Presentation

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

新・明解Java入門

n n n ( ) n Oracle 16 PostgreSQL 3 MySQL

IBM Software Group DB2 Information Management Software DB2 V8 XML SQL/XML 2 XML XML UDF XMLExtender XML XML XMLCollection, XMLColumn XML UDF Informati

Part1 159 a a

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Oracle データベース移行計画アセスメント:移行前

ストラドプロシージャの呼び出し方

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

JPA & Kuina-Dao入門

,, create table drop table alter table

IIJ Technical WEEK Cloudbusting Machine(CBM)

S2Dao入門

PowerPoint プレゼンテーション

ユニット・テストの概要

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

アルゴリズムとデータ構造1

TopLink È... 3 TopLink...5 TopLink åø... 6 TopLink å Workbench O/R ~... 8 Workbench À ~... 8 Foundation Library å... 8 TopL

アプリケーションサーバ JBoss超入門

Microsoft Word - 430_15_Developing_Stored_Procedure.doc

…l…b…g…‘†[…N…v…“…O…›…~…fi…OfiÁŸ_

[1]...1 [2]...1 [3] Java Web...3 [4] Java Web...18 [

BC4J...4 BC4J Association JSP BC4J JSP OC4J

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

Wiki Wiki Wiki...

Web JDBC JDBC Java JDBC DataBase Web CHtmlView...

<4D F736F F D20566F F6E658C6791D FE382C582CC4A D834F E F8F4390B394C52E646F63>

,,,,., C Java,,.,,.,., ,,.,, i

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

Oracle9i JDeveloper R9.0.3 チュートリアル


CSV ToDo ToDo

3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200,

untitled

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

S2DaoでもN:Nできます

Oracle Lite Tutorial

WebOTXでのMySQL利用方法

※サンプルアプリケーションを固めたファイル(orcasample

0315_F1_8iJDBC-SQLJ.PDF

データ連携がこんなに簡単に!?Oracle Data Integratorのご紹介

intra-mart ver /10/31 1. / intra-mart 3.2 AND intra-mart (JavaMail ) ( )

_02-5.ppt

XMLテクノロジを使いやすくする

Transcription:

JBoss Hibernate 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice

2 20 5 2

3 20 5 2

Hibernate Hibernate O/R Mapping Tool Hibernate 4 20 5 2

Hibernate

Hibernate 2002 O/R Mapping Hibernate Core Hibernate Hibernate Annotation Hibernate EntityManager EJB3.0/JPA Hibernate Shards Horizontal Data Partitioning Hibernate Validator API Hibernate Search Apache Lucene Hibernate Tools Eclipse/Ant 6 20 5 2

Hibernate 3 JDK.3. JDK.4.2 JavaSE 5.0 Oracle, DB2, Sybase, MS SQL Server, PostgreSQL, MySQL, HypersonicSQL, Mckoi SQL, SAP DB, Interbase, Pointbase, Progress, FrontBase, Ingres, Informix, Firebird Java JMX.2 JTA.0.B JDBC 3.0 JNDI.2. 7 20 5 2

www.hibernate.org : Hibernate Core 3.2.6.ga 2008 2 : LGPL Red Hat Hibernate Core 3.2 JBoss EAP (Enterprise Application Platform) JBoss EAP EJB3 8 20 5 2

Hibernate

RDB 0 20 5 2

SQL JDBC RDB SQL DAO Hibernate O/R Mapping Tool 20 5 2

SQL (Struts,JSF) Web :insert.; :select ; :update ; :delete ; Application Server (JBoss/Tomcat) Java SQL JDBC 2 3 2 20 5 2

DAO Web Data Access Object DAO JDBC Application Server (JBoss/Tomcat) Java 2 3 3 20 5 2

DAO Web RDB SQL DAO Application Server (JBoss/Tomcat) Java public Category findby(long id) { result = null; String sqlquery = SELECT,, + FROM WHERE = + id.tostring(); String sqlquery2 = SELECT FROM + WHERE = + id.tostring(); Connection conn = null; try { conn = getconnection(); ResultSet rs = conn.createstatement(). executequery(sqlquery); if (rs.next()) { result = new (); result.setid(rs.getlong()); result.set(rs.getstring(2)); result.set (rs.getlong(3)); // rs = conn.createstatement().executequery(sqlquery2); //... } catch (Execption e) { // } finally { if (conn!= null) conn.close(); } return result; } JDBC 2 3 4 20 5 2

DAO 5 20 5 2

Hibernate 6 20 5 2 Web Hibernate DAO Hibernate O/R O/R Mapping Mapping Application Server (JBoss/Tomcat) Java public Category findbyid(long id) { Category result = null; // Hibernate Session session = HibernateUtil.getSession(); // result = (Category)session.load(.class, id); // session.close(); return result; } SQL RDB JDBC 2 3

7 20 5 2 Hibernate Hibernate 2 xxx-xxxx 26 2 xxx-xxxx 32 26 2 32 2 USER_ 2 xxx-xxxx xxx-xxxx 0..*..* 0..* ISBN JBoss 2 Hibernate 2 0 Hibernate 2 xxxx-xxxxx ISBN 2007/2/3 2

Hibernate

9 20 5 2 Hibernate Hibernate 3 2 (null) Application Server Category.hbm.xml hibernate.cfg.xml Session Factory JTA Category Category DAO JDBC Session Session Session Hibernate O/R Mapping Hibernate

2 3 (null) Hibernate SessionFactory.openSession() Session / Session.close() Session Session Hibernate Hibernate RDB Category Application Server Hibernate Category DAO hibern ate.cf g.xml Session Factory Session Session JTA Catego O/R O/R ry.hb Mapping Mapping m.xml JDBC 20 20 5 2

22 20 5 2 get() load() createquery() save() saveorupdate() persist() evict() close() clear() update() saveorupdate() lock() delete() RDBHibarnate 3 Hibernate RDB Session

23 20 5 2 Hibernate 3 2 (null) Application ServerO/R Mapping O/R Mapping Categor y.hbm. xml hibern ate.cfg.xml Session Factory JTA Category Category DAO JDBC Session Session Session Category

24 20 5 2 Hibernate Order... JDBC Order... Order... Order... HTTP HTTP

RDB setter HibernateRDB getter RDB Hibernate lazy= true 25 20 5 2

. setter/getter 2. Session 3. Criteria API 4. Hibernate Query Language (HQL) 5. SQL 27 20 5 2

Session Session.save() Session.saveOrUpdate() Session.update() Session.delete() Session.get() Session.load() RDB RDB null RDB 28 20 5 2

Session public void updatecategory(category cat) { try { session = HibernateUtil.getSession(); trx = session.begingtransaction(); session.update(cat); trx.commit(); } catch (Exception e ) { if (trx!= null ) trx.rollback(); throw e; } finally { if (session!= null) session.close(); } 29 20 5 2

Criteria Java Session List<Category> result = SQL session.createcriteria(category.class).add( Restrictions.like( name, % ) ).addorder( Order.asc( name ) ).list(); name select, NAME, PARENT_ from CATEGORY where NAME like '%' order by NAME asc Categroy Criteria name 30 20 5 2

Hibernate Query Language (HQL) Hibernate SQL JOIN, WHERE, ORDER BY, GROUP BY, List<Category> result = session.createquery( FROM Category c WHERE c.name LIKE % ORDER BY c.id ).list(); SQL select, NAME, PARENT_ from CATEGORY where NAME like '%' order by NAME name 3 20 5 2

SQL RDBSQL List<Category> results = session.createsqlquery( SELECT source.id as {target.id}, source.name as {target.name}, source.parent_id as {target.parent_id} SQL FROM CATEGORY source WEHRE source.name LIKE % ORDER BY source.id ).addentity( target, SQL Category.class ).list(); 32 20 5 2

Hibernate 2 JDBC JTA API JDBC JTA JDBC JTAHibernate 34 20 5 2

35 20 5 2 Hibernate Web Hibernate 3 2 (null) Application Server Java CategoryDAO O/R Mapping O/R Mapping O/R Mapping Hibernate Hibernate SessionFactory JTA JDBC/SQL JDBC Session Category Session Session Session Hibernate Hibernate JDBC JTA JDBC JTA

36 20 5 2 Hibernate Web 3 2 (null) Application Server Java CategoryDAO O/R Mapping O/R Mapping O/R Mapping Hibernate Hibernate SessionFactory JTA JDBC/SQL JDBC Session Category Session Session Session JTA Hibernate Hibernate Hibernate JTA JTA JTA JTA -

Hibernate Apache Commons logging Hibernate org.hibernate.sql org.hibernate.type org.hibernate.tool.hbm2ddl org.hibernate.pretty org.hibernate.cache org.hibernate.transaction org.hibernate.jdbc org.hibernate.hql.ast.ast org.hibernate.secure org.hibernate SQL JDBC DDL session JDBC HQL SQL JAAS 38 20 5 2

Hibernate Hibernate O/R Mapping Tool Hibernate 40 20 5 2

CATEGORY NAME PARENT_ 2 3 (null) 42 20 5 2

43 20 5 2 3 2 (null) Category.hbm.xml hibernate.cfg.xml Session Factory Category Category.java Main.java CategoryDAO.java JDBC Session Session Session Hibernate HibernateUtil.java

JDBC RDB JDBC msql-connector-java-5..5-bi.jar Hibernate3 Hibernate3lib hibernate3.jar antlr-2.6.7.jar asm.jar asm-attrs.jar cglib-2..3.jar commons-collections-2...jar commons-loggin-.0.4.jar dom4j-.6..jar jta.jar log4j-.2..jar 44 20 5 2

Hibernate <hibernate-configuration> <session-factory> <property name="connection.driver_class"> com.mysql.jdbc.driver</property> <property name="connection.url"> jdbc:mysql://localhost:3306/hibernate</property> <property name="connection.username"> hibernate</property> <property name="connection.password"> hibernate</property> JDBC <property name="dialect"> org.hibernate.dialect.mysqlinnodbdialect</property> DataSource RDB SQL 45 20 5 2

Hibernate JDBC <property name="transaction.factory_class"> org.hibernate.transaction.jdbctransactionfactory</property> <property name="show_sql">false</property> SQL <property name="hbm2ddl.auto">create-drop</property> <mapping resource= dao/category.hbm.xml /> </session-factory> </hibernate-configuration> O/R Mapping SessionFactory 46 20 5 2

Category public class Category { private Long id; // private String name; // private Category parent; // private Set<Category> children; // } // setter/getter... 47 20 5 2

Category O/R Mapping public class Category { Long id; String name; Category parent; Set<Category> children; } CATEGORY NAME PARENT_ (null) 2 3 <hibernate-mapping> <class name= Category table= CATEGORY > <id name="id" type="java.lang.long"> <column name="" /> <generator class="native" /> </id> <property name="name" type="string"> <column name="name" /> </property> name Category CATEGORY 48 20 5 2

Category O/R Mapping <many-to-one name="parent" class="category"> <column name="parent_" /> </many-to-one> <set name= children" lazy= true table= CATEGORY > <key column name="parent_"/> <one-to-many class= Category /> </set> </class> </hibernate-mapping> 49 20 5 2 PARENT_ public class Category { Long id; String name; Category parent; Set<Category> children; } CATEGORY NAME PARENT_ 2 3 PARENT_ (null)

HibernateUtil Hiberante public class HibernateUtil { private static final SessionFactory sessionfactory; static { try { sessionfactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable e) { throw new ExceptionInitializerError(e); } Hibernate } } public static Session getsession() { return sessionfactory.opensession(); } Hibernate 50 20 5 2

CategoryDAO public Category changename(long id, String newname) { Session session = null; Transaction trx = null; try { session = HibernateUtil.getSession(); trx = session.begingtransaction(); 2 3 CATEGORY NAME PARENT_ (null) JDBC ResultSetPOJO Category category = (Category)session.get(Category.class, new Long(Id)); category.setname(newname); trx.commit(); } catch (Exception e) { // trx.rollback(); } finally { session.close(); } 5 20 5 2

CategoryDAO Session session = HibernateUtil.getSession(); CATEGORY NAME PARENT_ (null) 2 3 Catgegory parent = (Category)session.get(Category.class, new Long(parent)); System.out.println( Category: + parent.getname()); Set<Category> children = parent.getchildren(); if (children!= null && children.size() > 0) for (Category child : children) System.out.println( - + child.getname()); 52 20 5 2

53 20 5 2