untitled

Similar documents

tkk0408nari

Microsoft PowerPoint - 4-MySQL50_JDBC_failover.ppt

PowerPoint プレゼンテーション

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,,.

Oracle9i JDeveloperによるWebサービスの構築

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

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

Microsoft PowerPoint - JavaFesta.ppt

FileMaker ODBC and JDBC Guide

Oracle Application Server 10g Release 3(10.1.3)- アジャイル・エンタープライズ(俊敏な企業)のためのデータ・アクセス

FileMaker 16 ODBC と JDBC ガイド

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

Gartner Day

s

_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

FileMaker ODBC と JDBC ガイド

JTS Google App Engine S119325

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


JB_weblogic_guide.indd

B2-Servlet-0112.PDF

"CAS を利用した Single Sign On 環境の構築"

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

FileMaker ODBC and JDBC Guide

ALG ppt

Q&A集

untitled

今から間にあう仮想化入門とXenについて

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

9iAS_DEV.PDF

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入門

com.ibm.etools.egl.jsfsearch.tutorial.doc.ps

HP OpenSource ブループリント

,, create table drop table alter table

クラウド時代のインフラ構成/変更管理とコンプライアンス管理

IIJ Technical WEEK Cloudbusting Machine(CBM)

S2Dao入門

PowerPoint プレゼンテーション

052-XML04/fiÁ1-part3-’ÓŠ¹

ORACLE FUSION MIDDLEWARE Tech Topic Meeting

ユニット・テストの概要

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

untitled

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

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

第3回_416.ppt

JAVA H13 OISA JAVA 1

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

10-C.._241_266_.Z

Microsoft Word - 430_15_Developing_Stored_Procedure.doc

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

Java DataBase Connectivity Sun ONE Studio 4 Sun Microsystems, Inc Network Circle Santa Clara, CA U.S.A Part No

[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

Microsoft Word - Android_SQLite講座_画面800×1280

PowerPoint Presentation

Wiki Wiki Wiki...

Web JDBC JDBC Java JDBC DataBase Web CHtmlView...

1 Dependency Injection glue glue glue glue glue GluonJ GluonJ glue Dependency Injection Aspect-Oriented Programming Meets Dependency Injection Rei Ish

<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,

JDBCアクセス

untitled

Microsoft PowerPoint - 3-MySQL50_JDBC.ppt

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利用方法

Oracle XML DB によるスケーラビリティおよびパフォーマンス検証 - MML v.3.0

untitled

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

untitled

0315_F1_8iJDBC-SQLJ.PDF

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

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

wpEnterpriseSvr.doc

IT 2

_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