Skynet

          ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks

          和網(wǎng)上的相比 ,就是 linux使用
          http://www.jython.org/Project/download.html
          下載 jython 包,(安裝!不,就直接解壓jar 就可以用了,我 linux 沒有窗口!可憐 )
          jar   -xvf  jython_install.jar

          使用 root
          vim /etc/profile #添加
          export JAVA_HOME=/usr/local/jdk1.5.0_17
          export CLASSPATH
          =.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/home/xj_liukaiyi/src/java/lib/ojdbc14-1.0.jar:/home/xj_liukaiyi/src/jython/evn_lib/jython.jar
          export PATH
          =$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
          alias jython
          ='java org.python.util.jython '

          測試 oracle
          #!jython
          from oracle.jdbc.driver import OracleDriver
          from java.sql import DriverManager
          def connect(un='dbuser', pw='pass123', sid='ora10g', host='192.168.102.223', port='1688'):
              driver 
          = OracleDriver()
              DriverManager.registerDriver(driver)
              connection 
          = "jdbc:oracle:thin:@%s:%s:%s" % (host, port, sid)
              
          return DriverManager.getConnection(connection, un, pw)


          def doSelect(strSql,func=None,doConn=None):
              is_now_conn
          =None
              
          if not doConn :
                  is_now_conn
          =True
                  doConn
          =connect()
              stmt 
          = doConn.createStatement()
              datas
          =[]
              rows
          =0
              
          try:
                  
          try:
                          rset 
          = stmt.executeQuery(strSql)
                          ccount
          =rset.getMetaData().getColumnCount()
                          data
          =[]
                          
          while (rset.next()):
                                  rows
          =rows+1
                                  
          #print rset.getObject(1)
                                  for ii in range(ccount):
                                          data.append(rset.getObject(ii
          +1))
                          
          if func :
                                  func(data,rows)
                          datas.append(data)
                  
          except:
                          
          pass
              
          finally:
                  
          try:
                          stmt.close()
                  
          finally:
                          
          if is_now_conn   :
                                  doConn.close()
                                  
          print "-conn close-"
              
          return datas

          def runRow(data,rows):
                  
          print "runRow row=%s data=%s " % (rows,data)

          if __name__ == "__main__":
              
          #模式1 定義一次 conn close
              #可插拔式 定義方法使用 runRow (羅嗦下java 要達到只能寫接口 !)
              doSelect('select count(*) from MN05_TBL_BIZ  ',runRow)

              
          #模式2 外部定義 conn 并,可多次使用 后 conn close
              conn=connect()
              
          print doSelect('select count(*) from MN05_TBL_COPYRIGHT  ',doConn=conn)
              
          print doSelect('select count(*) from MN05_TBL_BIZ  ',doConn=conn)
             

             from java.lang import *
             print tts[2]
             #梁詠琪   #有換行 這 使用 java.lang.String.trim 
             #
             sql="""
              select tb.NAME 
              from MN05_TBL_BIZ tb , MN05_TBL_COPYRIGHT  tc 
              where 
                  tb.copyright_id=tc.COPYRIGHT_ID and 
                  tb.actor = '%s'
                  
              """ %String(tts[2]).trim()  )
             
          #中文匹配問題這 使用 decode('utf8') 變成unicod 就可以了
             

              arr=db.doSelect(sql.decode(
          'utf8'),doConn=conn)
             
          for t in arr[0]:
                 print t.encode('utf-8')

             
          conn.close()



          jython 結果
          -bash-3.00$ jython  db.py
          runRow row=1 data=[3487033]
          -conn close-

          [[1563479]]
          [[3487033]]




          整理 www.aygfsteel.com/Good-Game
          posted on 2008-12-19 19:17 劉凱毅 閱讀(1119) 評論(0)  編輯  收藏 所屬分類: python
          主站蜘蛛池模板: 逊克县| 无棣县| 醴陵市| 珠海市| 达日县| 淮北市| 岫岩| 民丰县| 定日县| 陆川县| 芜湖县| 关岭| 廉江市| 左云县| 博爱县| 垣曲县| 苍梧县| 金昌市| 临沭县| 巴南区| 吐鲁番市| 宁陵县| 山阳县| 临夏市| 故城县| 连州市| 弥渡县| 葫芦岛市| 曲阜市| 修文县| 图木舒克市| 钟山县| 淅川县| 北票市| 溧水县| 隆林| 巴楚县| 南涧| 合川市| 漳平市| 承德市|