我现在有一个jsp写的网站,数据库用的是sqlserver2000,现在想改成oracle8i数据库,程序方面都需要改动那些地方啊,数据库操作添加,删除,更新,等等都需要怎么改变呢,呵呵,有源码程序更好了,谢谢!!!

解决方案 »

  1.   

    下面是操作ORACLE的SQL,希望对你有帮助
    public boolean  addNewZyhjyshzb(Zyhjyshzb pobjZyhjyshzb,int RecordFileid) throws Exception
    {
    boolean pblnFlag = false;    
    mstrSQL = "INSERT INTO H_Zyhjyshzb(CreateIP,CreateTime,message,createUserID) VALUES ('"+pobjZyhjyshzb.getCreateIP()+"',to_date('"+pobjZyhjyshzb.getCreateTime()+"','yyyy-mm-dd hh24:mi:ss'),'"+pobjZyhjyshzb.getMessage()+"',"+pobjZyhjyshzb.getCreateUser().getSysUserID()+")";
     if(mobjDatabase.executeUpdate(mstrSQL))
     {
    //文件资料ID
    int pintzyhjyshzb = 0;
    mobjRS = mobjDatabase.getResultSet("select ID from H_Zyhjyshzb where ID=(select max(ID) from H_Zyhjyshzb)");
    if(mobjRS.next())
    {
    pintzyhjyshzb = mobjRS.getInt("ID");
     //将审批该文件的用户插入数据库
      mstrSQL = "INSERT INTO H_RECORD(RECORDFILEID,SYSUSERID,CREATEFILEID) VALUES("+RecordFileid+","+pobjZyhjyshzb.getChkSysUser().getSysUserID()+",'"+pintzyhjyshzb+"')";
      pblnFlag = mobjDatabase.executeUpdate(mstrSQL);
    }   
     }
    return pblnFlag;
    } /**
      * Function Detail  : 更新部门名称
      * @param pobjDep  : 部门对象
      * @return         : boolean
      */
    public boolean updateDepartment(Department pobjDep) throws SQLException
    {
      if(pobjDep!=null)
      {
          if(this.chkDepName(pobjDep.getDepartmentName(),pobjDep.getDepartmentId()))
          {
              return false;
          }
          mstrSql = "update H_DepAndSec SET NAME = '"+pobjDep.getDepartmentName()+"'," +
           "INTRODUCE = '"+pobjDep.getDepartmentIntroduce()+"' " +
           "WHERE ID = " + pobjDep.getDepartmentId();
          return mobjDatabase.executeUpdate(mstrSql);
      }
      else
      {
          return false;
      }
    }
    /**
     * Function Detail : 删除部门列表
     * @param parrStr : 被删除的部门ID
     * @return        : boolean
     */
    public boolean delDepartment(String[] parrDepID) throws SQLException
    {
    String pstrDepID = FunLibrary.toString(parrDepID);
    mstrSql = "select * from H_DepAndSec where parentid in ("+pstrDepID+")";
    mobjRs = mobjDatabase.getResultSet(mstrSql);
    if(mobjRs.next())
    {
        return false;
    }
    else
    {
    mstrSql = "delete H_DepAndSec where ID IN ("+pstrDepID+")";
    return mobjDatabase.executeUpdate(mstrSql);
    } }
      

  2.   

    導入Oracle驅動的包,把驅動改為: oracle.jdbc.driver.OracleDriver
    url改為: jdbc:oracle:thin:@192.168.XX.XXX:1521:XXX
    還有user和passwordOracle的數據庫的操作和sql2000差不多,
    增,查,刪,改的sql語法也是差不多,只是區別在某些函數的使用,
    建議樓主去查看一下Oracle的幫助文檔.
      

  3.   

    呵呵,给我印象最深的是oracle没有自动增加列,需用触发器加序列实现
    还有就是对数据库date类型的数据进行操作,要用to_date 和 to_char 还要加格式
    没有top或者limit只能用between and代替其他的应该差别不大~~~
      

  4.   

    //构造函数
    public DatabaseService() throws Exception
    {
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
            String url="jdbc:oracle:thin:@192.168.1.102:1521:database";
            String user="user";   
            String password="password";  
    mobjConn = DriverManager.getConnection(url,user,password); 
    }
    1.建立序列create sequence seq_nbsh
    minvalue 1
    maxvalue 9999999999
    start with 1
    increment by 12.建立触发器create trigger tri_NBSP BEFORE INSERT ON  H_NBSH FOR EACH ROW
    begin
     select seq_nbsh.nextval into :new.ID from dual;
    end;
      

  5.   

    public class DBConnectionPool extends ResourcePool implements javax.servlet.http.HttpSessionBindingListener
    {
        private final String driver, url, user, pwd;
        private int initialConnections;
        private static final int DEFAULT_INIT_CONNS = 5;
        private static final int DEFAULT_MAX_CONNS = 40;
        //private final int finalInitConns;
        private boolean driverLoaded = false;
        private boolean localDB = false;
        
        private Logger logger;
        
        public DBConnectionPool() {
            driver=null;
            url=null;
            user=null;
            pwd=null;
            logger = new WebLogger( this.getClass() ).getLogger();
            logger.fatal("Null pool created.");
            /*
            this(   "oracle.jdbc.driver.OracleDriver",
                    "jdbc:oracle:thin:@10.10.1.188:1521:pdgm",
                    "csi_sample",
                    "csi_sample",
                    java.lang.Integer.toString(DEFAULT_INIT_CONNS),
                    java.lang.Integer.toString(DEFAULT_MAX_CONNS) );*/
        }