1.Java數(shù)據(jù)庫操作基本流程
          a .數(shù)據(jù)庫連接1.Drivermanager 鏈接數(shù)據(jù)庫
          String className,url,uid,pwd;
          className="Oracle.jdbc.driver.OracleDriver";
          uid="scott";
          pwd="tiger";
          url="jdbc:oracle:thin:@localhost:1521:ora92";
          Class.forName(classname);
          Connection conn=DriverManager.getConnection(url,uid,pwd);
          2.JNDI鏈接數(shù)據(jù)庫
          String jndi ="jdbc/db"; //  e20-040 9L0-609 數(shù)據(jù)源的名稱
          //context是一組名稱到對(duì)象的綁定組成
          Hashtable env=new Hashtable ();
          Context ctx=(Context)new InitialContext.lookup("env");// 獲得數(shù)據(jù)源所在的上下文點(diǎn)的對(duì)象
          DataSource ds=(DataSource)ctx.lookup(jndi);//找到數(shù)據(jù)源

           


          Connection conn=ds.getConnection();//
          b.執(zhí)行 sql語句
          String sql;
          StateMent stat=conn.createStatement();
          ResultSet rs=stat.executeQuery(sql);//執(zhí)行數(shù)據(jù)的查詢語句(select);
          stat.executeUpdate(sql);//執(zhí)行數(shù)據(jù)的更新語句(inset into ,delete ,update ,drop)
          stat.close();
          c.用preparedStatement 來執(zhí)行sql語句
          String sql="inset into table(id,name) values(?,?)";
          PreparedStatement ps=conn.prepareStatement(sql);
          ps.setInt(1,001);
          ps.setString(2,"zhangmanli");

          ps.executeQuery();
          int count=ps.executeUpdate();
          d.處理執(zhí)行結(jié)果
          查詢語句,返回記錄集ResultSet對(duì)象
          更新語句,返回?cái)?shù)字,表示該更新影響的記錄數(shù)
          javax.sql.*
          javax.naming.*;
          數(shù)據(jù)處理:
          1關(guān)閉connection 的自動(dòng)提交
          conn.setAutoCommit(false);
          2執(zhí)行一系列sql 語句,
          Statement sm;
          sm=conn.createStatement(sql);
          sm.executeUpdate();
          sm.close();

          3.提交:
          conn.commit();
          4.回滾機(jī)制;
          conn.rollback();
          e:線程處理:
          D:jndi和dataSource 來獲得數(shù)據(jù)庫的鏈接:
          import java.sql.ResultSet ;
          import java.sql.*;
          import javax.sql.DataSource;
          import javax.naming.Context;
          import javax.naming.InitialContext;
          import java.util.Hashtable;
          import java.util.Properties;
          import java.io.*;
          public class BasicExample{
           public static void main(String args[]){
            Connection conn=null;
            try{
             Properties prop =new Properties();
             prop.load(new FileInputStream("simple.properties"));
             Hashtable env =new Hashtable();
             env.put(Context.INITIAL_CONTEXT_FACTORY,prop.getProperty("INITIAL_CONTEXT_FACTORY"));
             env.put(Context.PROVIDER_URL,prop.getProperty("PROVIDER_URL"));
             InitialContext ctx=new InitialContext(env);
            DataSource ds=(DataSource)ctx.lookup("Book");


             Conn=ds.getConnection();
             Statement stat=conn.createStatement();;
             ResultSet rs=stmt.executeQuery(sql);
             while(rs.next()){
              int id=Integer.parseInt(rs.getString("userId"));
              String userName=rs.getString ("username");

             }
            }catch(SQLException e){
             e.printStackTrace();
            }finally{
             try{
              if(conn!=null){
               conn.close();
              }
             }catch(SQLException e){
              e.printStackTrace();
             }
            }
           }
          };
          posted on 2008-04-24 10:36 LifeNote 閱讀(6039) 評(píng)論(5)  編輯  收藏 所屬分類: JavaHibernate
          Comments
          • # re: Java數(shù)據(jù)庫操作基本流程
            YODA
            Posted @ 2008-04-24 11:20
            最關(guān)鍵一點(diǎn)應(yīng)該著重指出:
            一定在finally字句中順序關(guān)閉JDBC的資源,通常包括ResultSet, Statement, PreparedStatement, Connection  回復(fù)  更多評(píng)論   
          • # re: Java數(shù)據(jù)庫操作基本流程
            LifeNote
            Posted @ 2008-04-24 11:22
            對(duì) 對(duì)這個(gè)十分重要  回復(fù)  更多評(píng)論   
          • # re: Java數(shù)據(jù)庫操作基本流程
            dsj
            Posted @ 2008-04-24 14:04
            我以為你要分析下內(nèi)部原理和過程的。。。。。。  回復(fù)  更多評(píng)論   
          • # re: Java數(shù)據(jù)庫操作基本流程
            chorsg
            Posted @ 2008-04-27 09:38
            內(nèi)涵文章。。。  回復(fù)  更多評(píng)論   
          • # re: Java數(shù)據(jù)庫操作基本流程[未登錄]
            過客
            Posted @ 2009-08-18 09:45
            stat.executeUpdate(sql);//執(zhí)行數(shù)據(jù)的更新語句(inset into ,delete ,update ,drop)

            這里的insert應(yīng)該是這個(gè)吧。  回復(fù)  更多評(píng)論   
           
          主站蜘蛛池模板: 盐池县| 定州市| 锡林郭勒盟| 疏附县| 苏尼特左旗| 内黄县| 柳州市| 连州市| 大关县| 文安县| 朝阳市| 乐业县| 廉江市| 洛扎县| 怀远县| 耒阳市| 绵阳市| 资阳市| 惠来县| 五河县| 安达市| 黄浦区| 南阳市| 晋州市| 故城县| 平舆县| 清水河县| 大宁县| 永兴县| 吕梁市| 德州市| 页游| 丹江口市| 周口市| 蒙山县| 恭城| 图木舒克市| 太康县| 洛阳市| 青海省| 酒泉市|