java 做项目踩坑,web项目踩坑过程
sql函數(shù)設計:
一開始本來是直接用Java的jdbc直接傳輸操作語句的。但后來學了存儲過程發(fā)現(xiàn)存儲過程可以提高不少的效率。就重構了自己對數(shù)據(jù)庫的操作代碼。包括:開啟,查找,修改,關閉。
開啟:直接使用的構造函數(shù),以后使用的時候可以直接把對象new成一個static的變量,可以一直使用,直到使用關閉函數(shù)。
具體操作(查(find),寫(write),改(change)):編寫的思路是現(xiàn)在mysql數(shù)據(jù)庫里面實現(xiàn)函數(shù)和存儲過程。
巨坑提示1,存儲過程和函數(shù)的區(qū)別是,函數(shù)必須返回一個數(shù)據(jù),return語句必須寫,而存儲過程可以返回,也可以不返回這個數(shù)據(jù)。
一開始我使用的是存儲過程,實現(xiàn)find,但是,有個巨坑的東西(mysql的設計缺陷,那就是IN的變量,即存儲過程名旁邊的參數(shù),不可以直接表示字段,巨坑,還要深入學習動態(tài)的sql才可以表示字段),然后我就多寫了幾個函數(shù),每個函數(shù)實現(xiàn)不同字段的查詢,比如,findbyemail函數(shù)就是通過where email(email是字段)=參數(shù);實現(xiàn)查找。
然后為了讓功能齊全,就設計了多個函數(shù),比如findbyname,findbyphone這些函數(shù)存在數(shù)據(jù)庫里。然后數(shù)據(jù)庫編譯好。等著Java直接調(diào)用(這里比較方便的就是我們的調(diào)用直接用的是調(diào)用語句 "{call 函數(shù)名(?)}",這里的?問號,是指的你的參數(shù)。也意味著你的存儲過程或者函數(shù)有多少參數(shù)就必須用多少個問號,然后發(fā)送給數(shù)據(jù)庫。性能提高不少)
巨坑提示2,在發(fā)送調(diào)用存儲過程的sql語句的過程中,有可能會出現(xiàn)引號(')解析錯位的尷尬錯誤,而且我還沒辦法糾正。比如writeuser存儲過程,發(fā)送過去的語句被解析錯了,就是引號錯位??宋乙簧衔绲臅r間。然后就使用的函數(shù),放棄使用存儲過程。性能影響比較小。還可以返回一個數(shù)據(jù)可以判斷一下。比如我的writeuser函數(shù),我可以這樣寫,就不會出現(xiàn)這樣尷尬的錯誤了
string? sql = “{?=call writeuser(?????)}”;
1 public String WriteUser(String name,String phone,String email,String pwd,String status) throwsSQLException {2 //使用方法:比如寫入用戶數(shù)據(jù)name,phone,email,pwd,status,我們可以這樣寫write('張三','110','[email?protected]','999','1')
3
4 String sql = "{? = call writeuser(?,?,?,?,?)}";5
6 CallableStatement cs =connection.prepareCall(sql);7
8 cs.registerOutParameter(1,Types.CHAR);//這里實在規(guī)定你函數(shù)里面返回的數(shù)據(jù)類型9
10 cs.setString(2,name);//以下都是在向問號里面?zhèn)鬟f參數(shù)
11
12 cs.setString(3,phone);13
14 cs.setString(4,email);15
16 cs.setString(5,pwd);17
18 cs.setString(6,status);19
20 cs.execute();21
22 String value = cs.getString(1);23 if (value=="1"){24 cs.close();25 return "ok";26 }27 cs.close();28 return "no";29 }
這就是微學網(wǎng)-程序員之家為你提供的"web項目踩坑過程"希望對你有所幫助.本文來自網(wǎng)絡,轉(zhuǎn)載請注明出處:http://www.weixuecn.cn/article/8489.html
總結
以上是生活随笔為你收集整理的java 做项目踩坑,web项目踩坑过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOS Network一月项目月报
- 下一篇: XYZ DOWN-电子书