HIbernate学习笔录1

去年年初的时候,买了一本《精通hibernat:java对象持久化技术详解》丛书,编者:孙卫琴。 当时,一是为了做项目的时候,遇到刺手的难题能迅速找到解决方案,当然也可以咨询资深高的同行。但眼下是最为便捷的方式之一;二是也可以供新来的同事阅读。一举两得。踏入07之后,hibernate3 的 横空出世。它的一些优点也深值得我们努力去学习新的东西。 以便能把手下在做的BILLING项目的性能给予很好的优化 。下边是laliluna提供的一本书。以下是书的目录结构:仅供学习及参考。

http://www.laliluna.de/hibernate-3-book-working-examples.html

看目录回顾所学习过的hibernate:

1 Hibernate 3 by example 1

2 Where to find what? 7

3 A first Hibernate example 8

 3.1 Basic idea of Hibernate 8
 
 3.2 Example for using Eclipse 8

  3.2.1 Introduction 8
  
  3.2.2 Create a Java Project 9
  
  3.2.3 Create the class 9
  
  3.2.4 Hibernate configuration 10
  
  3.2.5 Mapping file of Honey 11
  
  3.2.6 Add needed Libraries 12
  
  3.2.7 Create a session factory 13
  
  3.2.8 Configuring Log4J 16
  
  3.2.9 Create database and tables. 16
  
  3.2.10 Create a test client 17

 3.3 Created with Netbeans 19

4 Hibernate architecture 20

 4.1 What is Hibernate? 20

  4.1.1 Powerful mapping 20
  
  4.1.2 Powerful query languages 20

 4.2 Hibernate Architecture 21

  4.2.1 Lazy initialization, a Hibernate problem 21
  
  4.2.2 The three states of objects 23
  
  4.2.3 Conclusion 24

5 A more complex example ? web application 25

 5.1 Requirements and analysis 25
 
 5.2 Creating the web project 26
 
 5.3 Creating domain classes 26
 
 5.4 Hibernate configuration 30
 
 5.5 Mapping the inheritance 31
 
 5.6 Mapping the relation 34
 
 5.7 Application logic 36
 
  5.7.1 Use case login 37
  
  5.7.2 Other use cases 39

 5.8 Web Application 41

  5.8.1 My little web framework 41
  
  5.8.2 Controller Servlet 42
  
  5.8.3 Basic interface for all use cases 44
  
  5.8.4 Use case login 44
  
  5.8.5 Use case create order 46
  
  5.8.6 Use case customer order list 50
  
  5.8.7 Use case admin order list 51

6 Time to jump 54

7 Connection Pools 55

 7.1 Built- in connection pool 55
 
 7.2 C3P0 55
 
 7.3 DBCP 55
 
 7.4 JNDI 56

  7.4.1 Tomcat 56
  
  7.4.1.1 Set up a JNDI datasource 56
  
  7.4.1.2 Configure the datasource 57
  
  7.4.2 Jboss 58
  
  7.4.2.1 Configure datasources 58

8 Caches 59

 8.1 General 59

  8.1.1 AspectsThings to consider 59

  8.1.2 Choosing the cache mode 60

  8.1.2.1 Readonly 60

  8.1.2.2 Read-write 60

  8.1.2.3 Nonstrict-read-write 60
  
  8.1.2.4 Transactional 60
  
  8.1.3 Standard cache 60
  
  8.1.3.1 Using the cache 61
  
  8.1.4 Query cache 61
  
  8.1.5 Test all caches 62

 8.2 EH Cache 62
 
 8.3 OS Cache 62
 
 8.4 Swarmcache 63
 
 8.5 JBoss Treecache 63
 
 8.6 Bypass a cache 64

9 Mapping by example 65

 9.1 Mapping details 65

  9.1.1 Hibernate-mapping 65
  
  9.1.2 Class mapping 66
  
  9.1.3 Primary key mapping 68
  
  9.1.4 Primary key generators 68
  
  9.1.5 Other mapping tags 69

 9.2 Relation Mapping 69

  9.2.1 Selecting between List, Set, Bag to hold many side 70
  
   9.2.1.1 java.util.Set 71
   
   9.2.1.2 java.util.SortedSet 71
   
   9.2.1.3 java.util.Map 72
   
   9.2.1.4 java.util.SortedMap 72
   
   9.2.1.5 java.util.List with a list mapping 73
   
   9.2.1.6 java.util.List with a bag mapping 73
   
   9.2.1.7 java.util.List with an idbag mapping 74
   
   9.2.1.8 array of objects 75
   
   9.2.1.9 array of primitives 75

  9.2.2 Using relations and cascading 76

   9.2.2.1 Uni-directional 76
   
   9.2.2.2 Bi-directional 76
   
   9.2.2.3 Cascading 77

  9.2.3 Understanding the examples 79

  9.2.4 1:1 relation (example2) 79

   9.2.4.1 Uni-directional 79
 
   9.2.4.2 Bi-directional 80

  9.2.5 1:n (example 3) 81

  9.2.6 Uni-directional 81

  9.2.7 Uni-directional (other side) 83

    9.2.8 Bi-directional 84

  9.2.9 m:n (example 4) 85

   9.2.9.1 Uni-directional 85
   
   9.2.9.2 Bi-directional 86

  9.2.10 1:n:1 88

   9.2.10.1 Simple way 88

   9.2.10.2 Map-key-many-to-many (example5) 88

   9.2.10.3 Component 90

  9.2.11 Recursive relation (example6) 90

  9.2.12 Typed relation (example 12) 91

 9.3 Components = Composition mapping 92

  9.3.1 Composed class in one table (component1) 92
  
  9.3.2 Composition of many classes (component2) 93
  
  9.3.3 Composition as set of many classes (component3) 94
  
  9.3.4 Composition 1:n:1 (component4) 95
  
  9.3.5 Composite primary key (component5) 97

  9.3.6 Not included mappings 98

 9.4 Inheritance 98

  9.4.1 Polymorphism 98
  
  9.4.2 Choosing the mapping approach 99
  
  9.4.3 Class hierarchy in one table (example7) 101
  
  9.4.4 Class hierarchy with one table for each class (example8) 104
  
  9.4.5 Class hierarchy with one table for each class (example9) 106
  
  9.4.6 Mixing example7 and example9 110
  
  9.4.7 Class hierarchy with one table for each concrete class (example10) 110

  9.4.8 Class hierarchy with one table for each concrete class (example11) 112

 9.5 Other mappings 115

10 Session handling and Transactions 116

 10.1 Important Issuesthings 116

  10.1.1 Long transactions 117
  
  10.1.2 Short transaction and optimistic locking 117
  
   10.1.2.1 Open session when the dialogue is rendered 117
   
   10.1.2.2 Short session 118
   
   10.1.2.3 Disconnected session 118

  10.1.3 Version tracking 119

   10.1.3.1 Manual version tracking 119
   
   10.1.3.2 Version tracking with long session 120
   
   10.1.3.3 Version tracking with short session 120

 10.2 Session Factory 120

  10.2.1 Available options 120
  
  10.2.2 JDBCTransactionFactory 121
  
  10.2.3 JTATransactionFactory 122
  
  10.2.4 JBoss integration with Hibernate Service Bean 123

   10.2.4.1 JBoss Hibernate Service Bean 124

11 Working with Objects 128

 11.1 Inserting 128
 
 11.2 Updating 129

  11.2.1 Considerations 129
  
  11.2.2 Detached objects 129

   11.2.2.1 What is Reattaching? 129
   
   11.2.2.2 Reattaching 130
   
   11.2.2.3 Session.lock 130
   
   11.2.2.4 Session.update 131
   
   11.2.2.5 Session.saveOrUpdate. 131
   
   11.2.2.6 Session.merge 131
   
   11.2.2.7 Session.get 132

 11.3 Deleting 133

12 Best practices and DAO 135

 12.1 Data Access Objects DAO 135

 12.2 Weaving the application structure 136

  12.2.1 Paper book order 136
  
  12.2.2 eBook order 137
  
  12.2.3 Defining the application layers 137

   12.2.3.1 The Problem of reusing business logic 137
   
   12.2.3.2 Reattaching problems 138
   
   12.2.3.3 Simple use cases 139

  12.2.4 DAO and DaoFactory 140

  12.2.5 Creating DAOs with generics 140

   12.2.5.1 Dao Creation 140
   
   12.2.5.2 Using Daos 140

  12.2.6 Creating DAOs without generics 141

   12.2.6.1 Creating the Dao 141
   
   12.2.6.2 Using Daos 141

  12.2.7 Clever DAO 141

13 Querying Data 143

 13.1 HQL 143
 
 13.2 Criteria Queries 143
 
 13.3 Native SQL 143

14 Quick View 144

 14.1 Reattaching 144

15 Copyright and disclaimer 145
 

你可能感兴趣的:(DAO,Hibernate,jboss,cache,Netbeans)