當前位置:首頁 » 數據倉庫 » jfinal多資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jfinal多資料庫

發布時間: 2022-11-18 10:42:53

1. 說說你為什麼不用JFinal

原因有三點:

1、它沒有給我帶來便利, 並且找不到使用它的理由。

2、很難與其他主流框架進行整合。

3、過度封裝並且使用它的同時我很難遵守代碼規范。

先說說第一點, 對比spring系列, 並沒有感覺它有多麼便利, 創建一個Jfinal工程我需要1分鍾, 創建一個Spring工程我也需要1分鍾, 但是在實際開發時, Jfinal所消耗的時間會更多, 因為它不靈活。

並且代碼比較啰嗦, 比如創建一個Controller, 我需要繼承他的一個公共類, 並且需要在配置類里配置好它的路由, 並且需要在介面方法中使用getRequest方法。

JFinal WEB MVC和Struts簡要對比:

JFinal遵循COC原則,零配置,無xml,而struts需要配置來支持action、result、interceptor配置與使用。

JFinal開發效率非常之高,相對Struts開發效率能提升五到十倍。

JFinal代碼量非常省,相對Struts開發能省50%到70%代碼量。

JFinal遵循Restful規范,而struts自身未提供Restful支持。Struts可以通過插件來支持restful,但支持不徹底使用不方便。

JFinal提供資料庫支持,屬於一站式解決方案,而struts僅為WEBMVC框架並未提供資料庫支持。

JFinal學習成本極低,只需兩個小時學習即可上手開發,而Struts學習成本相對較高。

JFinal相對Struts來說更加輕量級,JFinal打包jar文件僅173KB,而struts則為1.8MB。

JFinal ORM和Hibernate簡要對比:

JFinal採用ActiveRecord實現資料庫操作支持,較Hibernate開發效率提升六到十倍。

JFinal ActiveRecord較Hibernate學習成本低,一小時內能上手開發。

JFinal零配置,對資料庫支持五個無特點:無xml、無annotation、無getter、無setter、無attribute,極大降低了代碼量,統計證實代碼量節省70%到95%。

JFinal資料庫操作完全採用原生sql,相對Hibernate採用的HQL學習成本低,功能更強大,性能更高,穩定性好。

2. jfinal如何解決資料庫移植的問題

解決方案:
1、HTML靜態化
效率最高、消耗最小的就是純靜態化的html頁面,所以盡可能使網站上的頁面採用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。但是對於大量內容並且頻繁更新的網站,無法全部手動去挨個實現,於是出現了常見的信息發布系統CMS,像常訪問的各個門戶站點的新聞頻道,甚至他們的其他頻道,都是通過信息發布系統來管理和實現的,信息發布系統可以實現最簡單的信息錄入自動生成靜態頁面,還能具備頻道管理、許可權管理、自動抓取等功能,對於一個大型網站來說,擁有一套高效、可管理的CMS是必不可少的。
2、圖片伺服器分離
對於Web伺服器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,於是有必要將圖片與頁面進行分離,這是基本上大型網站都會採用的策略,他們都有獨立的圖片伺服器,甚至很多台圖片伺服器。這樣的架構可以降低提供頁面訪問請求的伺服器系統壓力,並且可以保證系統不會因為圖片問題而崩潰,在應用伺服器和圖片伺服器上,可以進行不同的配置優化,比如apache在配置ContentType的時候可以盡量少支持,盡可能少的LoadMole,保證更高的系統消耗和執行效率。 這一實現起來是比較容易的一現,如果伺服器集群操作起來更方便,如果是獨立的伺服器,新手可能出現上傳圖片只能在伺服器本地的情況下,可以在令一台伺服器設置的IIS採用網路路徑來實現圖片伺服器,即不用改變程序,又能提高性能,但對於伺服器本身的IO處理性能是沒有任何的改變。

3. jfinal如何直接獲取資料庫所有表名

DruidPlugin可以獨立於java
web
環境運行在任何普通的java程序中,使用方式極度簡單,相對於web項目只需要手動調用一下其start()
方法即可立即使用。以下是代碼示例:
public class ActiveRecordTest {
public static void main(String[] args) {
DruidPlugin dp = new DruidPlugin("localhost", "userName", "password");
// 與 jfinal web 環境唯一的不同是要手動調用一次相關插件的start()方法
dp.start();
MetaBuilder metaBuilder = new MetaBuilder(dp.getDataSource());
// 添加不需要獲取的數據表
// metaBuilder.addExcludedTable(excludedTables);
// TableMeta 資料庫的表
List<TableMeta> tableMetas = metaBuilder.build();
for (TableMeta tableMeta : tableMetas) {
System.out.println("表名:" + tableMeta.name);
}

}
}

4. jfinal多數據源事務問題,現在有什麼好的方案嗎

聲明式事務

特別注意:聲明式事務默認只針對主數據源進行回滾,如果希望針對 「非主數據源」 進行回滾,需要使用註解進行配置,以下是示例:

@TxConfig("otherConfigName")
@Before(Tx.class)
publicvoiddoIt(){
...
}

以上代碼中的 @TxConfig 註解可以配置針對 otherConfigName 進行回滾。

注意:MySql資料庫表必須設置為InnoDB引擎時才支持事務,MyISAM並不支持事務。

Db.tx 事務

與聲明式事務一樣,Db.tx 方法默認針對主數據源進行事務處理,如果希望對其它數據源開啟事務,使用Db.use(configName).tx(...)即可。

5. 求教JFinal如何連接Informix資料庫

打開DbVisualizer軟體,點擊"Tools"菜單,選擇"Connection wizard"選項,進入配置窗口"New Connection Wizard"

在"New Connection Wizard"窗口中,輸入一個連接名稱,可隨意取名,之後點擊"Next"

在"Select Database Driver"驅動選擇步驟中選擇Informix驅動,前提是在DbVisualizer安裝目錄下的lib目錄有ifxjdbc.jar驅動包,沒有可在網上下載。點擊"Next"

在主設置界面設置資料庫信息。從上至下依次為:
Database Userid 資料庫連接名,必須設置
Database Passwoed 資料庫連接密碼,必須設置
Database Server 資料庫伺服器IP,必須設置
Database Port 資料庫伺服器埠,必須設置
Database 資料庫名,必須設置
Database Server 資料庫實例名,必須設置

在上一步的設置窗口中,點擊"Ping Server"按鈕,測試是否能ping通資料庫伺服器,測試通過則點擊"Finish"完成按鈕,失敗則檢查配置情況
6
配置通過後,在主界面的右側則會顯示出配置的連接,右鍵選擇"Connect"則可連接到配置的資料庫

6. jfinal如何連接多個資料庫

如果你是用Model的方式進行save,可以在插入數據之後調用Model.g虎窢港喝蕃估歌台攻郡et(String attr);方法即可獲得,attr是你表的id的列的名稱
如果你是用Db.save方法,可以在該方法之後調用record.get(String column)方法,column是你表的id的列的名稱

7. jfinal怎麼連接資料庫操作

先創建個jdbc.properties在裡面寫上連接資料庫的信息

8. JFinal中怎麼獲得當前資料庫連接的資料庫類型

網頁鏈接

ActiveRecord是作為JFinal的Plugin而存在的,所以使用時需要在JFinalConfig中配置ActiveRecordPlugin。以下是Plugin配置示例代碼:

{
publicvoidconfigPlugin(Pluginsme){
DruidPlugindp=newDruidPlugin("jdbc:mysql://localhost/db_name","userName","password");
me.add(dp);
ActiveRecordPluginarp=newActiveRecordPlugin(dp);
me.add(arp);
arp.addMapping("user",User.class);
arp.addMapping("article","article_id",Article.class);
}
}

解析連接地址:如jdbc:mysql://
就知道是mysql