1,關於資料庫的操作
在j2se,連線資料庫中 有個statement類 通過產生該類的物件,我們可以進而執行相應的sql語句
一般我們如果要進行增加一條語句到table中,例如string sql="insert into pet values(nameid,***,owner)";
這裡的nameid,***,owner均是我們自己從其他地方動態獲取的資料,
例如stmt.executeupdate(sql)是絕對出問題的,因為我們的sql裡面的格式嚴重有問題,必須要自己利用+配合 新增相應的' ' 這種單引號,否則傳進去語法報錯。
這裡我們引入statement的子類,preparedstatement;,再進行相應的資料庫操作就變的簡單一點
**如下:pstmt=conn.preparedstatement("insert into pet values (?,?,?)");//裡面就是我們的sql語句
pstmt.setint(1,nameid);//設定第乙個問號為int 其值為nameid
pstmt.setstring(2,***);
pstmt.setstring(3,owner);
pstmt.executeupdate();
這樣就避免了我的sql字串中的單引號的,之類的很繁瑣的操作
2關於資料庫中的transaction
在關於sql語句執行的過程中,肯定會遇到 乙個資料從乙個表提取出來,在存在另乙個表中,這裡需要保持他們的一致性,我們稱為transaction
一旦其中某個操作有問題,則不會進行下個操作。這樣就是成功操作的前提的兩個操作必須都是成功操作
而我們在jdbc中如何用**實現:在他的**中有個方法setautocommit(true)是自動commit,為此我們必須認為的設定為false, 等我們的sql語句就位後 集中提交,一旦出現exception方便處理。
**如下:cnn.setautocommit(false);
stmt=cnn.createstatement();
stmt.addbatch(sql);
stmt.addbatch(sql);
stmt.executebatch();
cnn.commit();
cnn.setautocommit(true);
通過上面的操作,我們人工的集中commit(),然後給jdbc復原他本什麼的自動提交策略。
在集中提交過程中,一旦出現任何異常,try
}catch(sqlexception e1)
3關於點取資料庫的某條記錄,在傳統的resultset 中,我們一般呼叫next()方法,從上到下逐條提取。
這裡,我們通過在stmt=conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);
第乙個引數是對滾動不敏感,第二個引數是併發的時候 唯讀。
rs=stmt.executequery(sql); 通過設定好了語句物件,在結果集中可以秒取任意行記錄了。
12 1 19進步一小點
1,關於html的一些基礎知識 在表單中,action的值代表伺服器的哪個程式接受你的資訊,而method則是客戶端是通過什麼方式提交的,一般有get,post get則是一般當我們提交的時候,所寫的內容會跟在url後面,有兩個缺點 一是不安全,二是有長度限制 post則相對克服了上面的兩個缺點 2...
天天練習程式設計,每天進步一小點。
1 給定兩個整形變數的值,將兩個值的內容進行交換。define crt secure no warnings include include int main 2.不允許建立臨時變數,交換兩個數的內容。define crt secure no warnings include include int...
IT菜鳥的一小點感想
最近在整專案中的聯合登陸,給了我不小的感觸。看文件,理解需求,弄明白介面需要什麼樣的,什麼型別的引數。要善於和對接人員的進行溝通,遇到問題及時反饋等。這些是應該做的。我呢?文件我看了,不過不是全部,只看了需要用到的地方,對於需求的理解不是很深刻,一些需求是按照自己的想法來弄的,所以在上線前的最後一次...