QuickDAO4.0バージョンが正式にリリースされました。バージョン3.0と比較して、アーキテクチャが再設計され、コード構造がより明確になり、外部インターフェイスはあまり変更されていません。バージョン3.0を使用している場合は、QuickDAO3.0ウェアハウスのホームページで移行チュートリアルを確認できます。
QuickDAO4
QuickDAOは、シンプルで使いやすく便利なJava ORMフレームワークであり、次の利点があります。
- 初期化操作を完了するためにDAOを注入する必要があるだけです
- 自動テーブル作成、自動新しいデータベースフィールド
- APIレベルは、外部キー関連のクエリをサポートし、複雑な外部キー関連のクエリをサポートします
- 組み込みのデータベースダイアレクトサポート
- エンティティクラスの注釈、カスタムフィールド名、タイプ、インデックスを作成するかどうかのサポート、および外部キーの関連付けの確立
サポートデータベース
- MySQL(5.0以降)
- SQLite
- H2
- Postgre(9.0.0以降)
- SQL Server(2012バージョン以降)
クイックスタート
1QuickDAOをインポートします
QuickDAOはJDBCに基づいています。効率を向上させるために、デフォルトではデータベース接続プールのみをサポートします。
- commons-dbcp(または他のDataSource実装)をインポートします
- QuickDAOの最新バージョンをインポートします
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>cn.schoolwow</groupId>
<artifactId>QuickDAO</artifactId>
<version>4.0</version>
</dependency>
2QuickDAOを構成します
BasicDataSource mysqlDataSource = new BasicDataSource();
mysqlDataSource.setDriverClassName("com.mysql.jdbc.Driver");
mysqlDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/quickdao");
mysqlDataSource.setUsername("root");
mysqlDataSource.setPassword("123456");
//指定实体所在包名
cn.schoolwow.quickdao.dao.DAO dao = QuickDAO.newInstance()
.dataSource(mysqlDataSource)
.packageName("cn.schoolwow.quickdao.entity")
.build();
//之后所有的操作使用dao对象完成
3QuickDAOを使用する
- IDによるクエリ
User user = dao.fetch(User.class,1);
- 単一の属性に基づくクエリ
User user = dao.fetch(User.class,"username","quickdao");
- オブジェクトを挿入
dao.insert(user);
- オブジェクトを更新します
dao.update(user);
- オブジェクトを保存します(存在する場合は更新し、存在しない場合は挿入します)
dao.save(user);
- IDに従って削除
dao.delete(User.class,1);
- 属性値に基づいて削除
dao.delete(User.class,"username","quickdao");
- 複雑なクエリ
List<User> userList = dao.query(User.class)
.addQuery("name","quickdao")
.addNotNullQuery("password")
.page(1,10)
.orderBy("id")
.execute()
.getList();
- 外部キーの関連付けクエリ
List<User> userList = dao.query(User.class)
.joinTable(Address.class,"addressId","id")
.addQuery("name","BeiJing")
.done()
.addQuery("name","quickdao")
.page(1,10)
.orderBy("id")
.compositField()
.execute()
.getList();