日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

JAVA實現(xiàn)數(shù)據(jù)庫基本操作指南_JSP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:Java與其他語言數(shù)據(jù)類型之間的轉(zhuǎn)換方法
Java與其他語言數(shù)據(jù)類型之間的轉(zhuǎn)換方法實例程序 /*** 通信格式轉(zhuǎn)換** Java和一些windows編程語言如c、c 、delphi所寫的網(wǎng)絡(luò)程序進(jìn)行通訊時,需要進(jìn)行相應(yīng)的轉(zhuǎn)換* 高、低字節(jié)之間的轉(zhuǎn)

一、Java數(shù)據(jù)庫操作基本流程

二、幾個常用的重要技巧:

·可滾動、更新的記錄集

·批量更新

·事務(wù)處理

Java數(shù)據(jù)庫操作基本流程:

取得數(shù)據(jù)庫連接 - 執(zhí)行sql語句 - 處理執(zhí)行結(jié)果 - 釋放數(shù)據(jù)庫連接

1、取得數(shù)據(jù)庫連接

1)用DriverManager取數(shù)據(jù)庫連接

例子


String className,url,uid,pwd;

  className = "oracle.jdbc.driver.OracleDriver";

  url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;

  uid = "system";

  pwd = "manager";

  Class.forName(className);

  Connection cn = DriverManager.getConnection(url,uid,pwd);
2)用jndi(java的命名和目錄服務(wù))方式

例子


String jndi = "jdbc/db";

  Context ctx = (Context) new InitialContext().lookup("java:comp/env");

  DataSource ds = (DataSource) ctx.lookup(jndi);

  Connection cn = ds.getConnection();
多用于jsp中

2、執(zhí)行sql語句

1)用Statement來執(zhí)行sql語句


String sql;

Statement sm = cn.createStatement();

sm.executeQuery(sql); // 執(zhí)行數(shù)據(jù)查詢語句(select)

  sm.executeUpdate(sql); // 執(zhí)行數(shù)據(jù)更新語句(delete、update、insert、drop等)

statement.close();
2)用PreparedStatement來執(zhí)行sql語句


String sql;

  sql = "insert into user (id,name) values (?,?)";

  PreparedStatement ps = cn.prepareStatement(sql);

  ps.setInt(1,xxx);

  ps.setString(2,xxx);

  ...

  ResultSet rs = ps.executeQuery(); // 查詢

  int c = ps.executeUpdate(); // 更新
3、處理執(zhí)行結(jié)果

查詢語句,返回記錄集ResultSet

更新語句,返回數(shù)字,表示該更新影響的記錄數(shù)

ResultSet的方法

1、next(),將游標(biāo)往后移動一行,如果成功返回true;否則返回false

2、getInt("id")或getSting("name"),返回當(dāng)前游標(biāo)下某個字段的值

4、釋放連接

cn.close();

一般,先關(guān)閉ResultSet,然后關(guān)閉Statement(或者PreparedStatement);最后關(guān)閉Connection

幾個常用的技巧:

·可滾動、更新的記錄集

1、創(chuàng)建可滾動、更新的Statement

Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);

該Statement取得的ResultSet就是可滾動的

2、創(chuàng)建PreparedStatement時指定參數(shù)

PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

ResultSet.absolute(9000);

·批量更新

1、Statement


Statement sm = cn.createStatement();

  sm.addBatch(sql1);

  sm.addBatch(sql2);

  ...

  sm.executeBatch()
一個Statement對象,可以執(zhí)行多個sql語句以后,批量更新。這多個語句可以是delete、update、insert等或兼有

2、PreparedStatement


PreparedStatement ps = cn.preparedStatement(sql);

  {

  ps.setXXX(1,xxx);

  ...

  ps.addBatch();

  }

  ps.executeBatch();
一個PreparedStatement,可以把一個sql語句,變換參數(shù)多次執(zhí)行,一次更新。

·事務(wù)的處理

1、關(guān)閉Connection的自動提交

cn.setAutoCommit(false);

2、執(zhí)行一系列sql語句

要點:執(zhí)行每一個新的sql語句前,上一次執(zhí)行sql語句的Statement(或者PreparedStatemet)必須先close


Statement sm ;

  sm = cn.createStatement(insert into user...);

  sm.executeUpdate();

  sm.close();

  sm = cn.createStatement("insert into corp...);

  sm.executeUpdate();

  sm.close();
3、提交

cn.commit();

4、如果發(fā)生異常,那么回滾

cn.rollback();

分享:Java多媒體框架設(shè)計自動播放機(jī)
如果把Java媒體框架(http://java.sun.com/jmf)看作客戶端安裝的媒體播放機(jī)的話,那么這種框架并不是非常激動人心。它只支持少量媒體類型,并且事實上這些媒體類型都被象Windows媒體播放機(jī)以

來源:模板無憂//所屬分類:JSP教程/更新時間:2008-08-22
相關(guān)JSP教程