jfinalsql
❶ jfinal在做一些大型項目上,也是寫全sql嗎
2:非web項目
JFinal ORM 部分可以單拿出來用於非 web 項目。JFinal ORM設計靈感來自於 Rails 的 ActiveRecord,可以極大減少Db操作部分代碼量,由於是對JDBC極薄封裝,所以性能接近JDBC,另外 JFinal ActiveRecrod 使用的是原汁原味的 sql 語句,所以靈活性較 Hibernate 大得多。此外JFinal 其它插件如 C3p0Plugin也可以獨立於 JFinal 之外單獨使用。
3:移動設備項目
目前已有童鞋將 JFinal ActiveRecordPlugin 用於 android設備項目中的 sqlite 資料庫。
❷ jfinal 怎麼防止sql注入
數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原
在顯示的時候對非法字元進行轉義
如果項目還處在起步階段,建議使用第二種,直接使用jstl的<c:out>標簽即可解決非法字元的問題。當然,對於javascript還需要自己處理一下,寫一個方法,在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。
❸ jfinal中動態sql是一般是怎麼使用的
動態sql一般用在存儲過程中,可以在存儲過程中使用DDL或DML語句,如創建刪除操作。 語法:execute immediate 'DDL或DML語句'
❹ Jfinal 中怎麼輸出執行的sql語句
以mysql為例子吧,比如現在寫了一個sql語句 select* from table 把這個sql語句復制到sqlyong上,執行就ok了 , 還是不懂的話 你先安裝一個sql資料庫,再安裝一個客戶端 ,把客戶端跟資料庫鏈接上,網路下怎麼執行就清楚了。
❺ JFinal怎麼執行SQL刪除符合要求的集合數據
JFinal怎麼執行SQL刪除符合要求的集合數據
User..find("select * from user where name in (?, ?, ... ,? ) ", n1, n2... ,nn)。但jdbc 貌似不支持 in 語句的preparestatement,目前還沒有想到好的辦法。建議用 StringBuilder 拼裝好 sql 再查詢,只需先拼裝好 in 裡面的 sql 就成了。
❻ sql在工具上運行正常,在jfinal里該怎麼改
以下是代碼和示例性使用代碼:
[java] view plain
/**
*
* 調用方式】 QueryHelper helper = new QueryHelper(Reply.class, "r")//
* .addCondition("r.topic=?", topic)// .addOrderProperty("r.postTime", true);
*
* PageBean pageBean = replyService.getPageBean(pageNum, pageSize, helper);
* 或者添加condition和orderby之後直接調用preparePageBean
*/
/**
*
* 用於生成 select .... 必須select,from前面的 需要查找哪些欄位,如果全部就用*表示
*
❼ pgSql里運行sql語句沒錯,但在JFinal報錯
PostgreSQL的PL/pgSQL語言是支持動態SQL語句的(說execute immediate的是ECPG所支持的)。但是,要記得重要的一點: 是在PL/pgSQL語言中支持。而PL/pgSQL語言一個塊結構的語言,它以begin ... end為塊的開始與結束標識。這也就是說,要執行動態SQL語句,就必須放到begin ... end塊中,而不要想實現一個單獨的動態SQL語句。在SQL Server中,倒是可以輕松的實現,我們可以直接執行一個這樣的動態SQL:
1execute sp_executesql N'select 1 as val'
而在PostgreSQL中,就不要有此想法了。當然,SQL Server的這種動態SQL語句的執行方法也有其局限與不便的地方。
在PL/pgSQL中,執行動態SQL的格式如下(摘錄自說明文檔):
1EXECUTE command-string [ INTO [STRICT] target ] [ USING expression [, ... ] ];
其中,
command-string就是要執行的動態SQL語句(一定要記住:這里是SQL語句,不是PL/pgSQL語句,像raise notice就不能使用);
INTO子句是把SQL查詢到的值賦給INTO指定的變數;
USING子句是前面的command-string中替代變數($1, $2, ...)的賦值;
示例:
123456789do $$declarev_c1 integer;v_c2 integer;beginexecute 'select count(*) as c1, count(*) as c2 from (select 1 as idx union select 11 as idx union select 21 as idx) s where idx > $1' into v_c1, v_c2using 10;raise notice '%, %', v_c1, v_c2;
❽ jfinal怎麼取出出sql server中的流文件
public void save(){
/**
* 如果上傳時,表單類型為multipart/form-data 需要調用getFile方法
* 摘文檔:
* 3.4 getFile 文件上傳
* Controller 提供了 getFile 系列方法支持文件上傳。
* 特別注意:如果客戶端請求為 multipart request(form 表單使用了 enctype="multipart/form-data"),
* 那麼必須先調用 getFile 系列方法才 能使 getPara 系列方法正常工作,
* 因為 multipart request 需要通過 getFile 系列方法解析請求體中 的數據,包括參數。
*/
try {
getFile();
}catch (Exception e){
logger.error(e.getLocalizedMessage(), e);
}
/*驗證是否重復提交*/
if(!checkFormToken()) return;
BizTips eo=getModel(BizTips.class,"m");
// eo.set(BizTips.COL_CREATETIME, DateTimeKit.getDate());
boolean status = eo.save();
JsonView json=new JsonView();
json.setStatus(status);
json.setMsg(status? OperateType.SAVE_SUCCESS:OperateType.SAVE_FAIL);
renderJson(json);
}
❾ 大家暢所欲言,當jFinal遇到XSS和SQL注入怎麼處理
數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原
在顯示的時候對非法字元進行轉義
如果項目還處在起步階段,建議使用第二種,直接使用jstl的<c:out>標簽即可解決非法字元的問題。當然,對於Javascript還需要自己處理一下,寫一個方法,在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。
附:Javascript方法:
String.prototype.escapeHTML = function () {
return this.replace(/&/g, 『&』).replace(/>/g, 『>』).replace(/</g, 『<』).replace(/」/g, 『"』);
}
如果項目已經開發完成了,又不想大批量改動頁面的話,可以採用第一種方法,此時需要藉助Spring MVC的@InitBinder以及org.apache.commons.lang.PropertyEditorSupport、org.apache.commons.lang.StringEscapeUtils
public class StringEscapeEditor extends PropertyEditorSupport {
private boolean escapeHTML;
private boolean escapeJavaScript;
private boolean escapeSQL;
public StringEscapeEditor() { super(); }
public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript, boolean escapeSQL) {
super();
this.escapeHTML = escapeHTML;
this.escapeJavaScript = escapeJavaScript;
this.escapeSQL = escapeSQL;
}
@Override
public void setAsText(String text) {
if (text == null) {
setValue(null);
❿ jfinal怎麼實現不寫sql語句,操作資料庫
executeQuery是專門用於執行sql查詢的方法,從你的sql來開不是查詢,而是執行的見表和插入語句,這種操作應該使用executeUpdate方法,同時不要把見表語句和insert語句拼成一個整個的語句去執行,這種方式在資料庫直接執行ok沒問題,但通過代碼走...