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