A. jfinal怎麼配置jdbcurl
jfinal本身是帶orm映射的,可以用這個框架直接訪問資料庫,不需要配置jdbc的,你可以網路一下「JFinal學習筆記(一) 在Tomcat下的JFinal環境配置」第一個搜索結果中就詳細講了這個orm映射的配置。如果你一定要用jdbc的話那麼就是在你需要鏈接資料庫的地方如controller和jsp中正常配置jdbc就行了,當然你需要引入jdbc的包,這個你也可以網路一下jdbc配置,這個網上文章很多的,很好查的。
B. jfinal如何解決資料庫移植的問題
解決方案:
1、HTML靜態化
效率最高、消耗最小的就是純靜態化的html頁面,所以盡可能使網站上的頁面採用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。但是對於大量內容並且頻繁更新的網站,無法全部手動去挨個實現,於是出現了常見的信息發布系統CMS,像常訪問的各個門戶站點的新聞頻道,甚至他們的其他頻道,都是通過信息發布系統來管理和實現的,信息發布系統可以實現最簡單的信息錄入自動生成靜態頁面,還能具備頻道管理、許可權管理、自動抓取等功能,對於一個大型網站來說,擁有一套高效、可管理的CMS是必不可少的。
2、圖片伺服器分離
對於Web伺服器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,於是有必要將圖片與頁面進行分離,這是基本上大型網站都會採用的策略,他們都有獨立的圖片伺服器,甚至很多台圖片伺服器。這樣的架構可以降低提供頁面訪問請求的伺服器系統壓力,並且可以保證系統不會因為圖片問題而崩潰,在應用伺服器和圖片伺服器上,可以進行不同的配置優化,比如apache在配置ContentType的時候可以盡量少支持,盡可能少的LoadMole,保證更高的系統消耗和執行效率。 這一實現起來是比較容易的一現,如果伺服器集群操作起來更方便,如果是獨立的伺服器,新手可能出現上傳圖片只能在伺服器本地的情況下,可以在令一台伺服器設置的IIS採用網路路徑來實現圖片伺服器,即不用改變程序,又能提高性能,但對於伺服器本身的IO處理性能是沒有任何的改變。
C. 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
D. 求教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"則可連接到配置的資料庫
E. jfinal聲明式事務怎樣配置
5.7 聲明式事務
ActiveRecord支持聲明式事務,聲明式事務需要使用ActiveRecordPlugin提供的攔截器來實現,攔截器的配置方法見Interceptor有關章節。以下代碼是聲明式事務示例:
//本例僅為示例,並未嚴格考慮賬戶狀態等業務邏輯
@Before(Tx.class)
publicvoidtrans_demo(){
//獲取轉賬金額
IntegertransAmount=getParaToInt("transAmount");
//獲取轉出賬戶id
IntegerfromAccountId=getParaToInt("fromAccountId");
//獲取轉入賬戶id
IntegertoAccountId=getParaToInt("toAccountId");
//轉出操作
Db.update("updateaccountsetcash=cash-?whereid=?",
transAmount,fromAccountId);
//轉入操作
Db.update("updateaccountsetcash=cash+?whereid=?",
transAmount,toAccountId);
}
以上代碼中,僅聲明了一個Tx攔截器即為action添加了事務支持。除此之外ActiveRecord還配備了TxByActionKeys、TxByActionKeyRegex、TxByMethods、TxByMethodRegex,分別支持actionKeys、actionKey正則、actionMethods、actionMethod正則聲明式事務,以下是示例代碼:
publicvoidconfigInterceptor(Interceptorsme){
me.add(newTxByMethodRegex("(.*save.*|.*update.*)"));
me.add(newTxByMethods("save","update"));
me.add(newTxByActionKeyRegex("/trans.*"));
me.add(newTxByActionKeys("/tx/save","/tx/update"));
}
上例中的TxByRegex攔截器可通過傳入正則表達式對action進行攔截,當actionKey被正則匹配上將開啟事務。TxByActionKeys可以對指定的actionKey進行攔截並開啟事務,TxByMethods可以對指定的method進行攔截並開啟事務。
注意:MySql資料庫表必須設置為InnoDB引擎時才支持事務,MyISAM並不支持事務。
網頁鏈接
F. jfinal如何動態載入資料庫配置
獨立使用ActiveRecord
ActiveRecordPlugin可以獨立於java web 環境運行在任何普通的java程序中,使用方式極度簡單,相對於web項目只需要手動調用一下其start() 方法即可立即使用。以下是代碼示例:
publicclassActiveRecordTest{
publicstaticvoidmain(String[]args){
DruidPlugindp=newDruidPlugin("localhost","userName","password");
ActiveRecordPluginarp=newActiveRecordPlugin(dp);
arp.addMapping("blog",Blog.class);
//與jfinalweb環境唯一的不同是要手動調用一次相關插件的start()方法
dp.start();
arp.start();
//通過上面簡單的幾行代碼,即可立即開始使用
newBlog().set("title","title").set("content","cxttext").save();
Blog..findById(123);
}
}
注意:ActiveRecordPlugin所依賴的其它插件也必須手動調用一下start()方法,如上例中的dp.start()。網頁鏈接
把上面代碼寫在Controller中,動態請求,進行管理即可:參考代碼:網頁鏈接
G. jfinal怎麼連接資料庫操作
先創建個jdbc.properties在裡面寫上連接資料庫的信息
H. JFinal 如何將操作日誌存入到資料庫中
操作日誌,也分粗細顆粒.
比如常見的 配置JFinal的Handler,配置LogHandler的處理器,Handler可以接管所有web請求,這里可以做粗顆粒的處理,對每一個請求做入庫處理,如果訪問量大時,入庫操作做列隊處理就可以了.
細顆粒的,如在JAVA代碼中的Loglog = Log.getLog("JAVA類描述或類名");
這個一般做入庫的還是少,畢竟已經有很成熟的日誌分析查看工具了,可以直接查文件了.
如果業務需要做這個,那也很簡單:
1:需要實現一個介面ILogFactory :
/**
*JdkLogFactory.
*/
{
publicLoggetLog(Class<?>clazz){
returnnewDbLog(clazz);
}
publicLoggetLog(Stringname){
returnnewDbLog(name);
}
}
2: DbLog參考jfinal代碼中 com.jfinal.log.Log4jLog 把這個類復制一下,在每個方法中增加一個入庫的操作,當然量大時,入庫操作做列隊處理就可以了.
3:在JFinalConfig中:
@Override
publicvoidconfigConstant(Constantsme){
//先啟動資料庫
ActiveRecordPlugin可以獨立於javaweb環境運行在任何普通的java程序中,使用方式極度簡單,相對於web項目只需要手動調用一下其start()方法即可立即使用。
//設置為你的工廠DbLogFactory
me.setLogFactory(newDbLogFactory());
}