Persistence4J - Java對象持久化
Persistence4j 是一個非常簡單的類庫,用于持久化數據至關系數據庫中。它個類庫可以不需要數據傳輸對象。只需創建一個POJO,然后利用這個類庫簡單的保存。這個類庫還集成了Java transaction API。支持的數據庫包括:Apache Derby ;H2 Database ;HSQLDB ;MySQL ;PostgreSQL。
//First lets create a simple pojo which you like to persist. @Entity(schema="library",table="book") public class Book{ @Column(isPrimaryKey=true) private String isbn; @Column private String title; @Column private int authorid; public Book(){} public Book(String isbn, String title, int authorid){ this.isbn = isbn; this.title = title; this.authorid = authorid; } // getters }
DataProviderFactory dataProviderFactory = new DataProviderFactoryImpl(config); String databaseName = "library"; String dbmsName = "mysql" boolean isTransactional = false; DataProvider dataProvider = dataProviderFactory.getDataProvider(databaseName, dbmsName, isTransactional);
// Now lets create a object of Book class and persist it Book book = new Book("123432","TestBook",5); TransferUtil.registerClass(Book.class); GenericDAO<Book> genericDAO = new GenericDaoImpl<Book>(dataProvider.getDataFetcher());
//Persist Book genericDAO.createEntity(book);
//Remove Book genericDAO.deleteEntity(book);
//Test if Entity Exists genericDAO.isEntityExists(book);
// findByPrimaryKey Object obj[] = new Object[1]; obj[0] = "123432"; genericDAO.findByPrimaryKey(Book.class, obj);
//If you want to use transactions.This how to get TransactionService. //Make sure isTransactional variable should be true and underlying dbms supports ACID. TransactionService ts = dataProvider.getTransactionService(); try{ ts.beginTransaction(); genericDAO.createEntity(book); ts.commitTransaction(); }catch(Exception exp){ ts.rollbackTransaction(); }
// Check the GenericDAO interface for all the available methods.. You can extend GenericDAOImpl and override the methods and add your own methods.</pre>