Java DAO 框架:robotarm-dao

openkk 12年前發布 | 32K 次閱讀 Java DAO Java開發

一、描述:

它是一個新穎的、輕量級的、獨立的、易于使用的Java DAO Framework 

二、目的:

  • 定義簡單
    1. 寫DAO層不必像Hibernate或ibatis那樣為每個數據實體都創建一個新的配置文件。:)
    2. 只需定義一個接口,集中了對數據庫的操作、程序的調用、數據源的使用等。:)
  • 使用簡單
    1. 使用時只需為數據實體創建一個接口,不需對其實現 :)
    2. 使用主或從主庫,指定數據源都在此接口中。 :)
  • 不用拼寫復雜的sql
    1. 不用程序拼寫sql將參數加入進來,框架對參數自動填充處理。:)
    2. 除支持標準sql外,另外增加了動態操作語法:if/else、for 循環等。:)
  • 主從分離
    1. 根據查找或更新操作自動的判斷使用主或從庫。 :)
    2. 執行sql時動態的切換主從數據庫,不必為分庫煩惱。 :)
    3. 也可在執行強制的使用主或從(暫未實現)。 :(
 @DAO(catalog = "c1")
 public interface MailDAO {
        // 查詢
        @SQL(value = "select * from mail")
        public List<Mail> queryAll() throws Throwable;


      @SQL(value = "select * from mail where id=:1")
        public List<Mail> queryById(long id) throws Throwable;


      @SQL(value = "select * from mail where id in (:1)")
        public List<Mail> queryInIds(List<Long> ids) throws Throwable;


      @SQL(value = "select * from mail where mail_user = :1.mailUser and mail_smtp=:1.mailSmtp")
        public List<Mail> queryByUser(Mail mail) throws Throwable;


      // 更新
        @SQL(value = "update mail set mail_user=:1, mail_password=:2")
        public UpdateResult upAll(String mailUser, String mailPassword) throws Throwable;


      @SQL(value = "update mail set mail_user='sunnymoon', mail_password='passwordhe' where id=:1")
        public UpdateResult upById(long id) throws Throwable;


      @SQL(value = "update mail set mail_password='passwordhe' where mail_name=:1")
        public UpdateResult upByName(String name) throws Throwable;


      // 插入
        @SQL(value = "insert into mail (mail_user,mail_password,mail_smtp,mail_ssl) values ('ad','ff','dd','1')")
        public UpdateResult addMail() throws Throwable;


      @SQL(value = "insert into mail (mail_user,mail_password,mail_smtp) values (:1.mailUser, :1.mailPassword, :1.mailSmtp)")
        public UpdateResult addMail(Mail mail) throws Throwable;


      @SQL(value = "insert into mail (mail_user,mail_password,mail_smtp) values #for(mail in :1) { #if(:current){,} (:mail.mailUser, :mail.mailPassword, :mail.mailSmtp)}")
        public UpdateResult addMails(Collection<Mail> mails) throws Throwable;


      // 刪除
        @SQL(value = "delete from mail where id=:1")
        public UpdateResult delById(long id) throws Throwable;


      @SQL(value = "delete from mail where id in (:1)")
        public UpdateResult delInIds(List<Long> ids) throws Throwable;


}

項目主頁:http://www.baiduhome.net/lib/view/home/1331298834968

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!