contents
preface
acknowledgments
about this book
about the authors
about the title
about the cover illustration
Part 1 Introduction
- 1 The iBATIS philosophy
- 1.1 A hybrid solution: combining the best of the best
- 1.2 Where iBATIS fits
- 1.3 Working with different database types
- 1.4 How iBATIS handles common database challenges
- 1.5 Summary
- 2 What is iBATIS?
- 2.1 Mapping SQL
- 2.2 How it works
- 2.3 Why use iBATIS?
- 2.4 When not to use iBATIS
- 2.5 iBATIS in five minutes
- 2.6 The future: where is iBATIS going?
- 2.7 Summary
Part 2 iBATIS basics
- 3 Installing and configuring iBATIS
- 3.1 Getting an iBATIS distribution
- 3.2 Distribution contents
- 3.3 Dependencies
- 3.4 Adding iBATIS to your application
- 3.5 iBATIS and JDBC
- 3.6 iBATIS configuration continued
- 3.7 Summary
- 4 Working with mapped statements
- 4.1 Starting with the basics
- 4.2 Using <select> mapped statements
- 4.3 Mapping parameters
- 4.4 Using inline and explicit result maps
- 4.5 Summary
- 5 Executing nonquery statements
- 5.1 The building blocks for updating data
- 5.2 Inserting data
- 5.3 Updating and deleting data
- 5.4 Running batch updates
- 5.5 Working with stored procedures
- 5.6 Summary
- 6 Using advanced query techniques
- 6.1 Using XML with iBATIS
- 6.2 Relating objects with mapped statements
- 6.3 Inheritance
- 6.4 Other miscellaneous uses
- 6.5 Summary
- 7 Transactions
- 7.1 What is a transaction?
- 7.2 Automatic transactions
- 7.3 Local transactions
- 7.4 Global transactions
- 7.5 Custom transactions
- 7.6 Demarcating transactions
- 7.7 Summary
- 8 Using Dynamic SQL
- 8.1 Dealing with Dynamic WHERE clause criteria
- 8.2 Getting familiar with the dynamic tags
- 8.3 A complete simple example
- 8.4 Advanced Dynamic SQL techniques
- 8.5 Alternative approaches to Dynamic SQL
- 8.6 The future of Dynamic SQL
- 8.7 Summary
Part 3 iBATIS in the real world
- 9 Improving performance with caching
- 9.1 A simple iBATIS caching example
- 9.2 iBATIS’s caching philosophy
- 9.3 Understanding the cache model
- 9.4 Using tags inside the cache model
- 9.5 Cache model types
- 9.6 Determining a caching strategy
- 9.7 Summary
- 10 iBATIS data access objects
- 10.1 Hiding implementation details
- 10.2 Configuring the DAO
- 10.3 Configuration tips
- 10.4 A SQL Map DAO implementation example
- 10.5 Summary
- 11 Doing more with DAO
- 11.1 Non-SQLMap DAO implementations
- 11.2 Using the DAO pattern with other data sources
- 11.3 Using the Spring DAO
- 11.4 Creating your own DAO layer
- 11.5 Summary
- 12 Extending iBATIS
- 12.1 Understanding pluggable component design
- 12.2 Working with custom type handlers
- 12.3 Working with a CacheController
- 12.4 Configuring an unsupported DataSource
- 12.5 Customizing transaction management
- 12.6 Summary
Part 4 iBATIS recipes
- 13 iBATIS best practices
- 13.1 Unit testing with iBATIS
- 13.2 Managing iBATIS configuration files
- 13.3 Naming conventions
- 13.4 Beans, maps, or XML?
- 13.5 Summary
- 14 Putting it all together
- 14.1 Design concept
- 14.2 Choosing technologies
- 14.3 Tweaking Struts: the BeanAction
- 14.4 Laying the foundation
- 14.5 Configuring the web.xml
- 14.6 Setting up the presentation
- 14.7 Writing your service
- 14.8 Writing the DAO
- 14.9 Summary
 
iBATIS.NET Quick Start
index